diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java
index d7cb4ac3697d616d0300a6127b0f3cd8590c5600..2647a00599257804340e2b6db04cfc4a23121071 100644
--- a/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java
+++ b/src/main/java/de/ozgcloud/operator/keycloak/user/KeycloakUserReconciler.java
@@ -50,54 +50,40 @@ public class KeycloakUserReconciler implements Reconciler<OzgKeycloakUser>, Clea
 
 	@Override
 	public UpdateControl<OzgKeycloakUser> reconcile(OzgKeycloakUser resource, Context<OzgKeycloakUser> context) {
-		try {
-			log.info(String.format("Reconciling user %s...", resource.getMetadata().getName()));
+		var userName = resource.getMetadata().getName();
+		var namespace = resource.getMetadata().getNamespace();
 
+		log.info(String.format("Reconciling user %s...", userName));
+
+		try {
 			var preconditionError = preconditionService.getPreconditionErrors(resource);
 			if (preconditionError.isPresent()) {
-				return buildStatusInProgress(resource, preconditionError.get());
-			}
+				var errorMessage = preconditionError.get();
 
-			keycloakUserService.createOrUpdateUser(resource.getSpec(), resource.getMetadata().getNamespace());
+				log.warning(String.format("Could not reconcile user %s in namespace %s: %s", userName, namespace, errorMessage));
 
-			resource.setStatus(buildOzgKeycloakUserOkStatus());
-			return UpdateControl.updateStatus(resource);
-
-		} catch (Exception e) {
-			log.log(Level.SEVERE, String.format("Could not reconcile user %s for namespace %s: %s", resource.getMetadata().getName(),
-					resource.getMetadata().getNamespace(), e.getMessage()), e);
-
-			resource.setStatus(buildOzgKeycloakUserErrorStatus(e.getMessage()));
-			return createRescheduleUpdateControl(resource);
-		}
-	}
-
-	private OzgKeycloakUserStatus buildOzgKeycloakUserOkStatus() {
-		return buildOzgKeycloakUserStatus(OzgCustomResourceStatus.OK, null);
-	}
-
-	private OzgKeycloakUserStatus buildOzgKeycloakUserErrorStatus(String message) {
-		return buildOzgKeycloakUserStatus(OzgCustomResourceStatus.ERROR, message);
-	}
+				return UserUpdateControlBuilder.fromResource(resource)
+						.withStatus(OzgCustomResourceStatus.IN_PROGRESS)
+						.withMessage(errorMessage)
+						.withReschedule(Config.RECONCILER_RETRY_SECONDS)
+						.build();
+			}
 
-	private UpdateControl<OzgKeycloakUser> buildStatusInProgress(OzgKeycloakUser resource, String errorMessage) {
-		log.log(Level.WARNING, String.format("Could not reconcile user %s in namespace %s: %s", resource.getMetadata().getName(),
-				resource.getMetadata().getNamespace(), errorMessage));
+			keycloakUserService.createOrUpdateUser(resource.getSpec(), namespace);
 
-		resource.setStatus(buildOzgKeycloakUserInProgressStatus(errorMessage));
-		return createRescheduleUpdateControl(resource);
-	}
+			return UserUpdateControlBuilder.fromResource(resource).withStatus(OzgCustomResourceStatus.OK).build();
 
-	private OzgKeycloakUserStatus buildOzgKeycloakUserInProgressStatus(String message) {
-		return buildOzgKeycloakUserStatus(OzgCustomResourceStatus.IN_PROGRESS, message);
-	}
+		} catch (Exception e) {
+			var errorMessage = e.getMessage();
 
-	private OzgKeycloakUserStatus buildOzgKeycloakUserStatus(OzgCustomResourceStatus status, String message) {
-		return OzgKeycloakUserStatus.builder().status(status).message(message).build();
-	}
+			log.log(Level.SEVERE, String.format("Could not reconcile user %s for namespace %s: %s", userName, namespace, errorMessage), e);
 
-	private UpdateControl<OzgKeycloakUser> createRescheduleUpdateControl(OzgKeycloakUser userResource) {
-		return UpdateControl.updateStatus(userResource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+			return UserUpdateControlBuilder.fromResource(resource)
+					.withStatus(OzgCustomResourceStatus.ERROR)
+					.withMessage(errorMessage)
+					.withReschedule(Config.RECONCILER_RETRY_SECONDS_ON_ERROR)
+					.build();
+		}
 	}
 
 	@Override
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java b/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java
index 3997b4a80c99da0ec5b39ba469d1e2147cc05d31..4dde6588ef379c2560ca3cc54dc6f12a7e6cb351 100644
--- a/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java
+++ b/src/main/java/de/ozgcloud/operator/keycloak/user/UserSecretService.java
@@ -13,7 +13,7 @@ import io.fabric8.kubernetes.client.extension.ResourceAdapter;
 class UserSecretService {
 
 	@Autowired
-	private UserNameConverter userNameMapper;
+	private UserNameConverter userNameConverter;
 	@Autowired
 	private UserSecretBuilder secretBuilder;
 	@Autowired
@@ -24,7 +24,7 @@ class UserSecretService {
 	}
 
 	public void create(OzgKeycloakUserSpec userSpec, String namespace) {
-		var secretName = userNameMapper.toSecretName(userSpec.getKeycloakUser());
+		var secretName = userNameConverter.toSecretName(userSpec.getKeycloakUser());
 
 		var credentialsSecret = secretBuilder.build(secretName, userSpec.getKeycloakUser(), namespace);
 
@@ -37,7 +37,7 @@ class UserSecretService {
 	}
 
 	Resource<Secret> getUserSecret(OzgKeycloakUserSpec userSpec, String namespace) {
-		var secretName = userNameMapper.toSecretName(userSpec.getKeycloakUser());
+		var secretName = userNameConverter.toSecretName(userSpec.getKeycloakUser());
 
 		return kubernetesRemoteService.getSecret(namespace, secretName);
 	}
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java b/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
index 50af3159b3edf1dbccb0de8a036f7e7adfe963e0..3b7ff063627c961b0065688716533094935d45f9 100644
--- a/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
+++ b/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
@@ -42,7 +42,7 @@ class UserUpdateControlBuilder {
 
 	public UpdateControl<OzgKeycloakUser> build() {
 		resource.setStatus(buildOzgKeycloakUserStatus());
-		
+
 		return buildUpdateControl();
 	}
 
@@ -55,7 +55,7 @@ class UserUpdateControlBuilder {
 
 	private UpdateControl<OzgKeycloakUser> buildUpdateControl() {
 		if (reschedule) {
-			UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
+			return UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
 		}
 		return UpdateControl.updateStatus(resource);
 	}