diff --git a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java
index e8bd5b858006ed1baa9e5a0f91d5095660d51983..1e195ea354d2166fda6663fc5443a8f3d702787e 100644
--- a/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java
+++ b/src/main/java/de/ozgcloud/operator/elstertransfer/user/OzgCloudElsterTransferUserService.java
@@ -91,7 +91,9 @@ public class OzgCloudElsterTransferUserService {
 		if (Objects.isNull(configMap)) {
 		return false;
 		}
-		return getUsersFromConfigMap(configMap).existsUser(userLogin);
+		OzgCloudElsterTransferConfigMapUserList users = getUsersFromConfigMap(configMap);
+		LOG.debug("userExists is '{}' in namespace '{}'", users.existsUser(userLogin), userLogin);
+		return users.existsUser(userLogin);
 		
 	}
 
@@ -113,6 +115,10 @@ public class OzgCloudElsterTransferUserService {
 
 	OzgCloudElsterTransferConfigMapUserList getUsersFromConfigMap(ConfigMap configMap) {
 		String usersYaml = configMap.getData().get(Constants.USERS_KEY);
+		if (Objects.isNull(usersYaml)) {
+			LOG.debug("userYaml is empty");
+			return new OzgCloudElsterTransferConfigMapUserList(new ArrayList<>());
+		}
 		Map<String, Object> load = new Yaml().load(usersYaml);
 		List<Map<String, Object>> usersList = (List<Map<String, Object>>) load.get("users");
 		return new OzgCloudElsterTransferConfigMapUserList(usersList);
@@ -123,25 +129,25 @@ public class OzgCloudElsterTransferUserService {
 	}
 
 	String constructYamlEntries(OzgCloudElsterTransferConfigMapUserList userList) {
+		LOG.info("constructYamlEntries");
 		List<Map<String, Object>> usersList = userList.getUsersList();
 		StringBuilder usersYaml = new StringBuilder();
 		usersYaml.append("fileFormat: 1\nusers:\n");
 
 		for (Map<String, Object> userEntry : usersList) {
 			usersYaml.append(getYamlForUser(userEntry));
+			usersYaml.append(System.lineSeparator());
 		}
 		return usersYaml.toString();
 	}
 
 	String getYamlForUser(Map<String, Object> userEntry) {
-		StringBuilder sb = new StringBuilder();
-		sb.append("  - { login: \"").append(userEntry.get("login"))
-				.append("\", rolle: \"").append(userEntry.get("rolle"))
-				.append("\", credentials: { passwortHash: \"")
-				.append(((Map<String, String>) userEntry.get("credentials")).get("passwortHash"))
-				.append("\" }, gruppe: \"").append(userEntry.get("gruppe")).append("\" }\n");
-		return sb.toString();
+		MustacheFactory mf = new DefaultMustacheFactory();
+        Mustache mustache = mf.compile("users.tmpl");
 
+        StringWriter writer = new StringWriter();
+        mustache.execute(writer, userEntry); 
+        return writer.toString();
 	}
 
 	String generatePassword() {
diff --git a/src/main/resources/users.tmpl b/src/main/resources/users.tmpl
index 1a8f29b6293d20fb49688c7b2f6e9b1e449f7492..7e4b5c497b25ae2c44c523d0ed2a954bb8b17575 100644
--- a/src/main/resources/users.tmpl
+++ b/src/main/resources/users.tmpl
@@ -1 +1 @@
-- { login: "{{login}}", rolle: "{{rolle}}", credentials: { passwortHash: "{{passwortHash}}" }, gruppe: "{{gruppe}}" }
\ No newline at end of file
+  - { login: "{{login}}", rolle: "{{rolle}}", credentials: { passwortHash: "{{credentials.passwortHash}}" }, gruppe: "{{gruppe}}" }
\ No newline at end of file