diff --git a/README.md b/README.md
deleted file mode 100644
index 1cf83a2..0000000
--- a/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-lunifera-runtime
-================
-
-Runtime components for lunifera.org. Like persistence, server integration, OSGi services for BPM, Rules,...
\ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF b/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF
index 26d8ac8..6a7821e 100644
--- a/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.runtime.common/META-INF/MANIFEST.MF
@@ -27,6 +27,7 @@
  org.eclipse.osbp.runtime.common.state;version="0.9.0",
  org.eclipse.osbp.runtime.common.state.impl;version="0.9.0";x-internal:=true,
  org.eclipse.osbp.runtime.common.types;version="0.9.0",
+ org.eclipse.osbp.runtime.common.ui,
  org.eclipse.osbp.runtime.common.user;version="0.9.0";uses:="org.osgi.service.prefs",
  org.eclipse.osbp.runtime.common.util;version="0.9.0",
  org.eclipse.osbp.runtime.common.validation;version="0.9.0"
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java
index 5fc2fd9..fc4572c 100644
--- a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java
+++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/annotations/DtoUtils.java
@@ -256,6 +256,20 @@
 	}
 
 	/**
+	 * Returns true, if the given field is a domainkey field.
+	 *
+	 * @param clazz
+	 *            the clazz
+	 * @param fieldName
+	 *            the field name
+	 * @return true, if is domainkey field
+	 */
+	public static boolean isDomainkeyField(Class<?> clazz, String fieldName) {
+		Field dkField = getDomainKeyField(clazz);
+		return dkField != null && dkField.getName().equals(fieldName);
+	}
+
+	/**
 	 * Returns true, if the given field is a version field.
 	 *
 	 * @param clazz
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/EventDispatcherEvent.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/EventDispatcherEvent.java
index 86f8284..585fda5 100644
--- a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/EventDispatcherEvent.java
+++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/event/EventDispatcherEvent.java
@@ -38,8 +38,16 @@
 		DELETE,
 		/** The user started an action. */
 		ACTION,
-		/** Process finished so remove progressbar. */
-		REMOVE_PROGRESSBAR
+		/** Process finished. */
+		FINISHED,
+		/** Answer is yes. */
+		YES,
+		/** Answer is no. */
+		NO,
+		/** Close window. */
+		CLOSE,
+		/** Answer is ok. */
+		OK
 	}
 
 	/**
@@ -55,7 +63,11 @@
 		/** The list of objects. */
 		LIST,
 		/** a filled dto object. */
-		DTO
+		DTO,
+		/** an IUser object. */
+		USER,
+		/** any object. */
+		OBJECT
 	}
 
 	/** The command. */
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/session/impl/SessionManager.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/session/impl/SessionManager.java
index dfcdf50..685f9a8 100644
--- a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/session/impl/SessionManager.java
+++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/session/impl/SessionManager.java
@@ -65,7 +65,7 @@
 		} else {
 			List<ISession> result = new ArrayList<>();
 			for (ISession session : sessions.toArray(new ISession[sessions.size()])) {
-				if (filter != null && !filter.test(session)) {
+				if (!filter.test(session)) {
 					continue;
 				}
 				result.add(session);
@@ -166,7 +166,7 @@
 			}
 		} else {
 			// register master
-			List<ISession> temp = getSessions((s) -> ((Boolean)s.get(ISession.IS_SLAVE)));
+			List<ISession> temp = getSessions((s) -> ((Boolean)s.get(ISession.IS_SLAVE)!=null));
 			for (ISession s : temp) {
 				session.addSlave(s);
 			}
diff --git a/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/ui/IWorkbenchAvailable.java b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/ui/IWorkbenchAvailable.java
new file mode 100644
index 0000000..3fa8112
--- /dev/null
+++ b/org.eclipse.osbp.runtime.common/src/org/eclipse/osbp/runtime/common/ui/IWorkbenchAvailable.java
@@ -0,0 +1,11 @@
+package org.eclipse.osbp.runtime.common.ui;
+
+/**
+ * A marker interface which is registered as soon as the
+ * org.eclipse.e4.ui.workbench.IWorkbench is registered as an OSGi-service.<br>
+ * This prevents that services requiring this service are only started, if the
+ * swt.Display has been created.
+ */
+public interface IWorkbenchAvailable {
+
+}
diff --git a/pom.xml b/pom.xml
index 6d91483..af70a6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,13 +59,6 @@
 		<module>org.eclipse.osbp.runtime.feature.resolverhooks</module>
 	</modules>
 
-	<repositories>
-		<repository>
-			<id>osbp-nexus-thirdparty</id>
-			<url>http://download.osbee.org:8086/nexus/content/repositories/osbee-thirdparty/</url>
-		</repository>
-	</repositories>
-
 	<build>
 		<pluginManagement>
 			<plugins>
