diff --git a/README.md b/README.md
index 7b649c7..dce8d43 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
 # Setup
 
 
-Prerequisites: Jdk 1.8, Git, Maven 3, MySQL (optional), Postfix (optional).
+Prerequisites: Jdk 1.8, Git, Maven 3
 
 Clone the latest version of Kustvakt
 <pre>
@@ -60,29 +60,58 @@
 mvn clean package -DskipTests=true
 </pre>
 
-# Setting kustvakt configuration file
+## Customizing Kustvakt configuration
 
 Copy the default Kustvakt configuration file (e.g. ```full/src/main/resources/kustvakt.conf``` or ```lite/src/main/resources/kustvakt-lite.conf```), to the same  folder as the Kustvakt jar files  (```/target```). Please do not change the name of the configuration file.
 
-Set krill.indexDir in the configuration file to the location of your Krill index (relative path). In Kustvakt root directory, there is a sample index, e.g.
+### Setting Index Directory
+
+Set krill.indexDir in the configuration file to the location of your Krill index (relative path to the jar). In Kustvakt root directory, there is a sample index, e.g.
 <pre>krill.indexDir = ../../sample-index</pre>
 
-Set the location of the LDAP configuration file for Kustvakt full version. The file should contain an admin password to access an LDAP system. Without LDAP, user authentication functions and services cannot be used. However, the authentication mechanism can be extended by implementing other authentication methods e.g. using a database. 
+### Setting LDAP
+
+Set the location of the LDAP configuration file for Kustvakt full version. The file should contain an admin password to access an LDAP system. Without LDAP, user authentication functions and services cannot be used. Authentication mechanism can be extended by implementing other authentication methods e.g. using a database. 
+
+	ldap.config = path-to-ldap-password
+
+### Setting BasicAuthentication for Testing
+
+For testing, you can use/activate BasicAuthentication, see Spring XML configuration file for testing at ```/full/src/test/resources/test-config.xml```. BasicAuthentication uses a dummy UserDao allowing all users to be authenticated users. You can implement UserDao by connecting it to a user table in a database and checking username and password for authentication. 
+
+	<bean id="basic_auth"
+		class="de.ids_mannheim.korap.authentication.BasicAuthentication" />
+		
+	<util:list id="kustvakt_authproviders"
+		value-type="de.ids_mannheim.korap.interfaces.AuthenticationIface">
+		<ref bean="basic_auth" />
+		...
+	</util:list>
 
 
-<b>Optional custom configuration</b>
 
-Changing Kustvakt server port and host
-<pre>
-Server.port = 8089
-Server.host = localhost
-</pre>
+## Optional Custom Configuration
 
-Changing Kustvakt service base URI
-<pre>
-kustvakt.base.url=/kustvakt/*
-</pre>
-By default, Kustvakt service base URI refers to /api/*
+### Changing Kustvakt Server Port and Host
+
+	Server.port = 8089
+	Server.host = localhost
+
+### Changing Kustvakt Service Base URL
+
+The default base URL is
+
+	kustvakt.base.url=/kustvakt/api/*
+
+### Setting Default Layers
+
+The values of the following properties are foundries. 
+
+	default.layer.partOfSpeech = tt
+	default.layer.lemma = tt
+	default.layer.orthography = opennlp
+	default.layer.dependency = mate
+	default.layer.constituent = corenlp
 
 
 # Running Kustvakt Server
@@ -96,153 +125,9 @@
 </pre>
 
 
-# Futher Setup for Developer
+# Futher Setup
 
-Installing lombok is necessary when working with an IDE. Go to the directory of your lombok.jar, e.g ```~/.m2/repository/org/projectlombok/lombok/1.16.6``` and run
-<pre>
-java -jar lombok-1.16.6.jar
-</pre>
-
-Restart your IDE and clean your project.
-
-Copy ```kustvakt.conf``` or ```kustvakt-lite.conf``` from  ```src/main/resources``` to the ```full/``` or ```lite/``` folder. Then the properties the configuration file can be customized.
-
-In an IDE, you can run ```KustvaktLiteServer``` or ```KustvaktServer``` as a normal Java application.
-
-## Changing Database
-
-The default Sqlite database can be switch to a MySQL database.
-
-Copy ```jdbc.properties``` from ```full/src/main/resources``` to the ```full/``` directory. Do not change the filename.
-<pre>
-cp full/src/main/resources/jdbc.properties full/
-</pre>
-
-Remove or comment the Sqlite Setting.
-
-Uncomment the MySQL Setting and fill in the correct values for the ```jdbc.url```,
- ```jdbc.username```
-  and ```jdbc.password```.
-
-The default setting for ```jdbc.schemaPath```
-includes test data defined in ```full/src/main/resources/db/insert```
-and some user roles defined in ```full/src/main/resources/db/predefined```. You can omit the test data by removing
- ```db.insert```.
-
-Save.
-
-You probably would like to git ignore this file to prevent pushing the database password to github.
-
-
-Open ```full/src/main/resource/default-config.xml``` and search for the 
-Spring bean with id "flyway".
-
-Change the dataSource property to refer to the Spring bean with id "dataSource".
-<pre>
-&lt;property name="dataSource" ref="dataSource" /&gt;
-</pre>
-
-While running ```KustvaktServer``` or ```Kustvakt-full-[version].jar```,
-MySQL tables will be created to the specified database from the SQL files in 
-```full/src/main/resources/db/new-mysql``` and other paths specified in 
-```jdbc.schemaPath```.
-
-## Enabling Mail
-
-Kustvakt supports email notification, for instance of a invitation to a user-group.
-The mail setting is by default configured for a mail server at localhost post 25. 
-You can setup a mail server for example by using [Postfix](http://www.postfix.org/).
-
-In kustvakt.conf or kustvakt-test.conf, set  
-
-	mail.enabled = true
-	mail.sender = noreply@ids-mannheim.de
-	mail.receiver = test@localhost
-	mail.address.retrieval = test
-
-You can change ```mail.sender``` value to any email address (beware 
-of spam in your mail server configuration). ```mail.receiver``` 
-is an email address used for testing. All mails are to be sent to this 
-email address. Change ```test``` to any username available in your system, 
-or create an alias for ```test@localhost```. 
-
-```mail.address.retrieval``` 
-determines how user email addresses are retrieved. By default and 
-for testing, only the ```mail.receiver``` value is used as the 
-email address of all users. For custom implementation, 
-please refer to ```de.ids_mannheim.korap.authentication.KustvaktAuthenticationManager.getUser(String, String)```
- 
-
-To view the mailbox, you can use ```mailx``` 
-
-	$ mailx -u test
-	s-nail version v14.8.6.  Type ? for help.
-	"/var/mail/test": 1 messages 0 unread
-	 O  1 noreply@ids-mannhe Wed Feb 21 18:07   30/1227  Invitation to join
-
-
-### Creating email aliases 
-
-	sudo vi /etc/postfix/main.cf
-	
-In main.cf, set
-
-	"virtual_alias_maps = hash:/etc/postfix/alias"
-
-Create alias file:
-
-	sudo vi /etc/postfix/alias
-
-In the alias file, create an alias for ```test@localhost``` to a user in your system
-
-	test@localhost username
-
-Create alias database
-
-	sudo postmap /etc/postfix/alias
-	
-Restart postfix
-
-	sudo /etc/init.d/postfix restart
-
-
-By default, any emails sent to ```test@localhost``` will be available at 
-```/var/mail/username```.
-
-### Customizing SMTP configuration
-
-To connect to an external/remote mail server instead of using local Postfix,
-copy ```full/src/main/resources/properties/mail.properties``` to 
-the ```full/``` folder. Customize the properties in the file according to
-the mail server setup.  
-
-	mail.host = smtp.host.address
-	mail.port = 123
-	mail.connectiontimeout = 3000
-	mail.auth = true
-	mail.starttls.enable = true
-	mail.username = username
-	mail.password = password
- 
-### Customizing Mail template
-
-Kustvakt uses [Apache Velocity](http://velocity.apache.org/) as the email template engine and searches for templates located at:
-
-```full/src/main/resources/templates```.
-
-For instance, the template for email notification of user-group invitation is 
-
-```full/src/main/resources/templates/notification.vm```
-
-You can change the template according to Velocity Template Language.
-
-In ```kustvakt.conf``` or ```kustvakt-test.conf```, specify which template should be used. 
-	
-	template.group.invitation = notification.vm
-
-
-# Known issues
-Tests are verbose - they do not necessarily imply system errors.
+Advanced setup including database and mailing setting are described in the [wiki](https://github.com/KorAP/Kustvakt/wiki).
 
 
 # Publication
diff --git a/core/Changes b/core/Changes
index 17ae3a2..f1cb067 100644
--- a/core/Changes
+++ b/core/Changes
@@ -1,7 +1,8 @@
 version 0.60
-01/03/2018
+13/03/2018
 	- removed old policy and deprecated code (margaretha)
 	- moved authentication related code to /full (margaretha)
+	- elaborated default layer names in the configuration file. (margaretha)
 
 version 0.59.10 
 20/02/2018
diff --git a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
index 260dcda..563e493 100644
--- a/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
+++ b/core/src/main/java/de/ids_mannheim/korap/config/KustvaktConfiguration.java
@@ -121,11 +121,11 @@
         issuer = new URL(is);
 
         default_const = properties
-                .getProperty("default.layer.c", "mate");
-        default_dep = properties.getProperty("default.layer.d", "mate");
-        default_lemma = properties.getProperty("default.layer.l", "tt");
-        default_pos = properties.getProperty("default.layer.p", "tt");
-        default_token = properties.getProperty("default.layer.o",
+                .getProperty("default.layer.constituent", "mate");
+        default_dep = properties.getProperty("default.layer.dependency", "mate");
+        default_lemma = properties.getProperty("default.layer.lemma", "tt");
+        default_pos = properties.getProperty("default.layer.partOfSpeech", "tt");
+        default_token = properties.getProperty("default.layer.orthography",
                 "opennlp");
 
         // security configuration
@@ -158,8 +158,8 @@
         shortTokenTTL = TimeUtils.convertTimeToSeconds(properties.getProperty(
                 "security.shortTokenTTL", "3H"));
 
-        passcodeSaltField = properties.getProperty("security.passcode.salt",
-                "accountCreation");
+//        passcodeSaltField = properties.getProperty("security.passcode.salt",
+//                "accountCreation");
         
     }
 
diff --git a/full/Changes b/full/Changes
index 8d9febb..02416e2 100644
--- a/full/Changes
+++ b/full/Changes
@@ -1,5 +1,5 @@
 version 0.60 release
-08/03/2018
+13/03/2018
 	- set up mail settings using localhost port 25 (margaretha)
 	- added mail template in kustvakt configuration (margaretha)
 	- added mail settings to readme (margaretha)
diff --git a/full/src/main/java/de/ids_mannheim/korap/web/controller/UserGroupController.java b/full/src/main/java/de/ids_mannheim/korap/web/controller/UserGroupController.java
index f205609..0bb4678 100644
--- a/full/src/main/java/de/ids_mannheim/korap/web/controller/UserGroupController.java
+++ b/full/src/main/java/de/ids_mannheim/korap/web/controller/UserGroupController.java
@@ -119,7 +119,6 @@
      */
     @DELETE
     @Path("delete")
-    @Consumes(MediaType.APPLICATION_JSON)
     public Response deleteUserGroup (@Context SecurityContext securityContext,
             @QueryParam("groupId") int groupId) {
         TokenContext context =
@@ -142,7 +141,6 @@
      */
     @DELETE
     @Path("member/delete")
-    @Consumes(MediaType.APPLICATION_JSON)
     public Response deleteUserFromGroup (
             @Context SecurityContext securityContext,
             @QueryParam("memberId") String memberId,
diff --git a/full/src/main/resources/kustvakt.conf b/full/src/main/resources/kustvakt.conf
index a6b2c1d..31d6f11 100644
--- a/full/src/main/resources/kustvakt.conf
+++ b/full/src/main/resources/kustvakt.conf
@@ -24,11 +24,11 @@
 template.group.invitation = notification.vm
 
 ## default layers
-default.layer.p = tt
-default.layer.l = tt
-default.layer.o = opennlp
-default.layer.d = mate
-default.layer.c = corenlp
+default.layer.partOfSpeech = tt
+default.layer.lemma = tt
+default.layer.orthography = opennlp
+default.layer.dependency = mate
+default.layer.constituent = corenlp
 
 ## delete configuration (default hard)
 # delete.auto.group = hard
diff --git a/full/src/test/resources/kustvakt-test.conf b/full/src/test/resources/kustvakt-test.conf
index 8a9f170..c99ee5e 100644
--- a/full/src/test/resources/kustvakt-test.conf
+++ b/full/src/test/resources/kustvakt-test.conf
@@ -24,11 +24,11 @@
 template.group.invitation = notification.vm
 
 ## default layers
-default.layer.p = tt
-default.layer.l = tt
-default.layer.o = opennlp
-default.layer.d = mate
-default.layer.c = corenlp
+default.layer.partOfSpeech = tt
+default.layer.lemma = tt
+default.layer.orthography = opennlp
+default.layer.dependency = mate
+default.layer.constituent = corenlp
 
 ## delete configuration (default hard)
 # delete.auto.group = hard
