diff --git a/src/main/java/de/ids_mannheim/korap/resource/LayerMapper.java b/src/main/java/de/ids_mannheim/korap/resource/LayerMapper.java
index 7c0bc50..3eb7f38 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/LayerMapper.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/LayerMapper.java
@@ -33,7 +33,6 @@
     //todo: make mapping configurable!
     public String findFoundry(String layer) {
         if (settings != null) {
-
             switch (translateLayer(layer.toLowerCase().trim())) {
                 case "d":
                     return (String) settings
diff --git a/src/main/java/de/ids_mannheim/korap/security/ac/PolicyDao.java b/src/main/java/de/ids_mannheim/korap/security/ac/PolicyDao.java
index 12bee9f..e006d87 100644
--- a/src/main/java/de/ids_mannheim/korap/security/ac/PolicyDao.java
+++ b/src/main/java/de/ids_mannheim/korap/security/ac/PolicyDao.java
@@ -623,7 +623,7 @@
         }
     }
 
-    //
+    //todo: check for unique constraint exception and exclude from throw!
     @Override
     public int addToCondition(String username, PolicyCondition condition,
             boolean admin) throws KustvaktException {
diff --git a/src/main/java/de/ids_mannheim/korap/user/Usersettings.java b/src/main/java/de/ids_mannheim/korap/user/Usersettings.java
index 1d0c758..077c869 100644
--- a/src/main/java/de/ids_mannheim/korap/user/Usersettings.java
+++ b/src/main/java/de/ids_mannheim/korap/user/Usersettings.java
@@ -6,20 +6,22 @@
  */
 public class UserSettings extends Userdata {
 
-
     public UserSettings(Integer userid) {
         super(userid);
     }
 
     @Override
     public String[] requiredFields() {
-        return new String[0];
+        return new String[] {};
     }
 
-
     //todo: define default fields and values --> so they can never be null!
     @Override
     public String[] defaultFields() {
-        return new String[0];
+        return new String[] { Attributes.DEFAULT_REL_FOUNDRY,
+                Attributes.DEFAULT_POS_FOUNDRY,
+                Attributes.DEFAULT_CONST_FOUNDRY,
+                Attributes.DEFAULT_LEMMA_FOUNDRY, Attributes.QUERY_LANGUAGE,
+                Attributes.PAGE_LENGTH };
     }
 }
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/full/UserService.java b/src/main/java/de/ids_mannheim/korap/web/service/full/UserService.java
index dc65cc7..2f4e4de 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/full/UserService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/full/UserService.java
@@ -299,8 +299,7 @@
             jlog.error("Exception encountered!", e);
             throw KustvaktResponseHandler.throwit(e);
         }
-//        return Response.ok(result).build();
-        return null;
+        return Response.ok(result).build();
     }
 
     @POST
