diff --git a/README.md b/README.md
index 66f70c6..cfbdb78 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,11 @@
  
 ## available realms
 
+
+
 ## 1. Glassfish Login Realm (org.eclipse.mdm.realm.login.glassfish)
 
-  
-The command 'gradlew install' at org.eclipse.mdm.realms/org.eclipse.mdm.realm.login.glassfish creates the jar file for this login module.
+The command 'gradlew install' at org.eclipse.mdm.realms creates the jar file for this login module.
 
 The jar file will be generated at **org.eclipse.mdm.realms/org.eclipse.mdm.realm.login.glassfish/build/libs/org.eclipse.mdm.realm.login.glassfish-1.0.0.jar**
 
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..84ca6f6
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,42 @@
+/*******************************************************************************
+  * Copyright (c) 2016 Gigatronik Ingolstadt GmbH
+  * All rights reserved. This program and the accompanying materials
+  * are made available under the terms of the Eclipse Public License v1.0
+  * which accompanies this distribution, and is available at
+  * http://www.eclipse.org/legal/epl-v10.html
+  *
+  * Contributors:
+  * Sebastian Dirsch - initial configuration
+  *******************************************************************************/ 
+
+description = 'mdm realms'
+apply plugin: 'maven'
+apply plugin: 'eclipse'
+version = '1.0.0'
+
+repositories {
+	mavenLocal()
+	mavenCentral()
+}
+
+subprojects {
+	group = 'org.eclipse.mdm'
+	
+	apply plugin: 'eclipse'
+	apply plugin: 'java'
+	apply plugin: 'maven'
+	sourceCompatibility = 1.8
+    
+    repositories {
+        mavenLocal()
+        mavenCentral()
+        jcenter()
+    }
+
+    dependencies {    	
+        testCompile 'junit:junit:4.12'
+        testCompile 'org.mockito:mockito-core:1.+'
+    }
+}
+ 
+
diff --git a/org.eclipse.mdm.realm.login.glassfish/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
similarity index 85%
rename from org.eclipse.mdm.realm.login.glassfish/gradle/wrapper/gradle-wrapper.jar
rename to gradle/wrapper/gradle-wrapper.jar
index 5ccda13..ca78035 100644
--- a/org.eclipse.mdm.realm.login.glassfish/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/org.eclipse.mdm.realm.login.glassfish/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
similarity index 79%
rename from org.eclipse.mdm.realm.login.glassfish/gradle/wrapper/gradle-wrapper.properties
rename to gradle/wrapper/gradle-wrapper.properties
index d758724..f1b7544 100644
--- a/org.eclipse.mdm.realm.login.glassfish/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Tue Mar 29 11:04:16 CEST 2016
+#Tue Jul 05 09:07:13 CEST 2016
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip
diff --git a/org.eclipse.mdm.realm.login.glassfish/gradlew b/gradlew
similarity index 96%
rename from org.eclipse.mdm.realm.login.glassfish/gradlew
rename to gradlew
index 9d82f78..27309d9 100644
--- a/org.eclipse.mdm.realm.login.glassfish/gradlew
+++ b/gradlew
@@ -6,12 +6,30 @@
 ##
 ##############################################################################
 
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
 
 APP_NAME="Gradle"
 APP_BASE_NAME=`basename "$0"`
 
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
 
@@ -30,6 +48,7 @@
 cygwin=false
 msys=false
 darwin=false
+nonstop=false
 case "`uname`" in
   CYGWIN* )
     cygwin=true
@@ -40,26 +59,11 @@
   MINGW* )
     msys=true
     ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
 esac
 
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
 # Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@
 fi
 
 # Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
     MAX_FD_LIMIT=`ulimit -H -n`
     if [ $? -eq 0 ] ; then
         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
diff --git a/org.eclipse.mdm.realm.login.glassfish/gradlew.bat b/gradlew.bat
similarity index 99%
rename from org.eclipse.mdm.realm.login.glassfish/gradlew.bat
rename to gradlew.bat
index 5f19212..832fdb6 100644
--- a/org.eclipse.mdm.realm.login.glassfish/gradlew.bat
+++ b/gradlew.bat
@@ -8,14 +8,14 @@
 @rem Set local scope for the variables with windows NT shell
 if "%OS%"=="Windows_NT" setlocal
 
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
 set DIRNAME=%~dp0
 if "%DIRNAME%" == "" set DIRNAME=.
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
 @rem Find java.exe
 if defined JAVA_HOME goto findJavaFromJavaHome
 
diff --git a/org.eclipse.mdm.realm.login.glassfish/settings.gradle b/settings.gradle
similarity index 81%
rename from org.eclipse.mdm.realm.login.glassfish/settings.gradle
rename to settings.gradle
index 8b271ea..27b7d42 100644
--- a/org.eclipse.mdm.realm.login.glassfish/settings.gradle
+++ b/settings.gradle
@@ -7,6 +7,8 @@
   *
   * Contributors:
   * Sebastian Dirsch - initial configuration
-  *******************************************************************************/
-  
-rootProject.name = 'org.eclipse.mdm.realm.login.glassfish'
+  *******************************************************************************/ 
+ 
+rootProject.name = 'org.eclipse.mdm.realms'
+
+include 'org.eclipse.mdm.realm.login.glassfish'
