catch up with development
diff --git a/.artifactVersions b/.artifactVersions
deleted file mode 100644
index 9a17bde..0000000
--- a/.artifactVersions
+++ /dev/null
@@ -1,4 +0,0 @@
-version=0.9.1-SNAPSHOT
-relengVersion=0.12.5-SNAPSHOT
-relengP2Version=0.12.5-SNAPSHOT
-relengGroupId=org.lunifera.releng.maven
\ No newline at end of file
diff --git a/.depVersions b/.depVersions
deleted file mode 100644
index 549470f..0000000
--- a/.depVersions
+++ /dev/null
@@ -1,9 +0,0 @@
-org.eclipse.xtend;min=2.7.3;max=2.8.0
-org.eclipse.xtext;min=2.7.3;max=2.8.0
-org.semanticsoft;min=2.7.3;max=3.0.0
-org.lunifera.dsl;min=0.9.0;max=0.10.0
-org.lunifera;min=0.9.0;max=0.10.0
-com.google.guava;min=10.0.0;max=19.0.0
-com.vaadin.external.atmosphere.runtime;min=2.1.2;max=2.1.3
-com.vaadin.external.org.slf4j;min=1.6.1;max=1.6.2
-com.vaadin;min=7.3.8;max=7.3.9
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5867086
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,35 @@
+**git.properties
+
+**/target/
+**/.metadata/
+
+**/emf-gen/**/.gitignore
+**/src-gen/**/.gitignore
+**/git.properties
+**/*.java._trace
+**/*.log
+**/*.log.properties
+
+**/bin/
+**/build/
+*.class
+*.ctrl
+**/Debug/
+.DS_Store
+*.ear
+*.war
+
+**/*.actionbin
+**/*.blipbin
+**/*.chartbin
+**/*.cubebin
+**/*.datatypebin
+**/*.dtobin
+**/*.entitybin
+**/*.servicebin
+**/*.tablebin
+**/*.uibin
+**/*.uisemanticbin
+**/*.xtendbin
+**/*.xtextbin
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/README.md b/README.md
deleted file mode 100644
index e69de29..0000000
--- a/README.md
+++ /dev/null
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
index 32d535d..53c6be5 100644
--- a/jenkins.build.config.xml
+++ b/jenkins.build.config.xml
@@ -17,5 +17,6 @@
         <jenkins.build.dependencies>
                 <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
                 <jenkins.build.dependency>org.eclipse.osbp.ecview.core</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.oxtype</jenkins.build.dependency>
         </jenkins.build.dependencies>
 </jenkins>
diff --git a/org.eclipse.osbp.ide.core.api/.classpath b/org.eclipse.osbp.ide.core.api/.classpath
new file mode 100644
index 0000000..b9a5b1e
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.core.api/.gitignore b/org.eclipse.osbp.ide.core.api/.gitignore
new file mode 100644
index 0000000..e89d4af
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.gitignore
@@ -0,0 +1,2 @@
+/target/
+.DS_Store
diff --git a/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..b9718ae
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,9 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.core.api/src/license/THIRD-PARTY.properties b/org.eclipse.osbp.ide.core.api/src/license/THIRD-PARTY.properties
new file mode 100644
index 0000000..c79559a
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.api/src/license/THIRD-PARTY.properties
@@ -0,0 +1,42 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache License
+# - Apache License 2.0
+# - Apache License Version 2.0
+# - Apache License, Version 2.0
+# - Apache Software License - Version 2.0
+# - BSD License
+# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+#										(CDDL)
+#										Version
+#										1.0
+# - Commercial Vaadin Add-On License version 3.0
+# - Common Development and Distribution license - v1.0.1
+# - Eclipse Public License - Version 1.0
+# - Eclipse Public License v1.0
+# - GNU LGPL 3
+# - GNU Lesser General Public License
+# - ICU License
+# - Indiana University Extreme! Lab Software
+#										License,
+#										vesion 1.1.1
+# - Lesser General Public License (LGPL)
+# - Lesser General Public License (LPGL)
+# - Lesser General Public License (LPGL) v 2.1
+# - MIT License
+# - The Apache Software License, Version 2.0
+# - The MIT License
+# - The SAX License
+# - The W3C License
+# - The W3C Software License
+# - W3C Software Copyright Notice and License
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Thu Aug 28 19:18:26 CEST 2014
+ant--ant-launcher--1.6.5=Apache License Version 2.0
+commons-collections--commons-collections--3.1=Apache License Version 2.0
+javax.servlet--servlet-api--2.5=Common Development and Distribution license - v1.0.1
+org.jdesktop--swing-worker--1.1=Lesser General Public License (LGPL)
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.classpath b/org.eclipse.osbp.ide.core.ui.shared/.classpath
new file mode 100644
index 0000000..b9a5b1e
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.gitignore b/org.eclipse.osbp.ide.core.ui.shared/.gitignore
new file mode 100644
index 0000000..e89d4af
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.gitignore
@@ -0,0 +1,2 @@
+/target/
+.DS_Store
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.core.ui.shared/META-INF/MANIFEST.MF b/org.eclipse.osbp.ide.core.ui.shared/META-INF/MANIFEST.MF
index 70375b5..3120cae 100644
--- a/org.eclipse.osbp.ide.core.ui.shared/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.ide.core.ui.shared/META-INF/MANIFEST.MF
@@ -12,12 +12,12 @@
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.core.resources;bundle-version="3.9.0",
  org.eclipse.core.runtime;bundle-version="3.10.0",
- org.eclipse.xtext.builder;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.builder;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.ui.workbench,
  org.eclipse.ui;bundle-version="3.106.0",
  org.eclipse.osbp.ide.core;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.xtext.ui;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.ui.shared;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.ui;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.ui.shared;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.osbp.ide.core.api;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.ide.core.ui;bundle-version="[0.9.0,0.10.0)"
 Export-Package: org.eclipse.osbp.ide.core.ui.shared;version="0.9.0",
diff --git a/org.eclipse.osbp.ide.core.ui.shared/src/license/THIRD-PARTY.properties b/org.eclipse.osbp.ide.core.ui.shared/src/license/THIRD-PARTY.properties
new file mode 100644
index 0000000..0f7af5d
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui.shared/src/license/THIRD-PARTY.properties
@@ -0,0 +1,42 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache License
+# - Apache License 2.0
+# - Apache License Version 2.0
+# - Apache License, Version 2.0
+# - Apache Software License - Version 2.0
+# - BSD License
+# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+#										(CDDL)
+#										Version
+#										1.0
+# - Commercial Vaadin Add-On License version 3.0
+# - Common Development and Distribution license - v1.0.1
+# - Eclipse Public License - Version 1.0
+# - Eclipse Public License v1.0
+# - GNU LGPL 3
+# - GNU Lesser General Public License
+# - ICU License
+# - Indiana University Extreme! Lab Software
+#										License,
+#										vesion 1.1.1
+# - Lesser General Public License (LGPL)
+# - Lesser General Public License (LPGL)
+# - Lesser General Public License (LPGL) v 2.1
+# - MIT License
+# - The Apache Software License, Version 2.0
+# - The MIT License
+# - The SAX License
+# - The W3C License
+# - The W3C Software License
+# - W3C Software Copyright Notice and License
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Thu Aug 28 14:08:37 CEST 2014
+ant--ant-launcher--1.6.5=Apache License Version 2.0
+commons-collections--commons-collections--3.1=Apache License Version 2.0
+javax.servlet--servlet-api--2.5=Common Development and Distribution license - v1.0.1
+org.jdesktop--swing-worker--1.1=Lesser General Public License (LGPL)
diff --git a/org.eclipse.osbp.ide.core.ui/.classpath b/org.eclipse.osbp.ide.core.ui/.classpath
new file mode 100644
index 0000000..43b9862
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.core.ui/.gitignore b/org.eclipse.osbp.ide.core.ui/.gitignore
new file mode 100644
index 0000000..c3d705e
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.gitignore
@@ -0,0 +1,3 @@
+/target/
+.DS_Store
+/xtend-gen/
diff --git a/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.core.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.ide.core.ui/META-INF/MANIFEST.MF
index acb945c..a85d6b0 100644
--- a/org.eclipse.osbp.ide.core.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.ide.core.ui/META-INF/MANIFEST.MF
@@ -12,14 +12,14 @@
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.core.resources;bundle-version="3.9.0",
  org.eclipse.core.runtime;bundle-version="3.10.0",
- org.eclipse.xtext.builder;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.builder;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.ui.workbench,
  org.eclipse.ui;bundle-version="3.106.0",
  org.eclipse.osbp.ide.core;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.xtext.ui;bundle-version="[2.7.3,2.8.0)",
- org.eclipse.xtext.ui.shared;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.ui;bundle-version="[2.11.0,2.12.0)",
+ org.eclipse.xtext.ui.shared;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.osbp.ide.core.api;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.xtext.common.types.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.common.types.ui;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.jdt.core,
  org.eclipse.osbp.xtext.builder.ui.access;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.ui.ide;bundle-version="3.10.0",
@@ -27,14 +27,14 @@
  org.eclipse.search,
  org.eclipse.ui.console,
  org.eclipse.jdt.launching,
- org.eclipse.osbp.dsl.xtext.lazyresolver.api;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.ecview.core.common.model;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.pde.ui,
  org.eclipse.equinox.p2.metadata,
  org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.dsl.dto.xtext;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.osbp.dsl.services.xtext;bundle-version="[0.9.0,0.10.0)"
+ org.eclipse.osbp.dsl.services.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)"
 Export-Package: org.eclipse.osbp.ide.core.ui;x-internal:=true;version="0.9.0",
  org.eclipse.osbp.ide.core.ui.builder;x-internal:=true;version="0.9.0",
  org.eclipse.osbp.ide.core.ui.i18n;x-internal:=true;version="0.9.0",
diff --git a/org.eclipse.osbp.ide.core.ui/pom.xml b/org.eclipse.osbp.ide.core.ui/pom.xml
index 88095f5..89455d1 100644
--- a/org.eclipse.osbp.ide.core.ui/pom.xml
+++ b/org.eclipse.osbp.ide.core.ui/pom.xml
@@ -33,7 +33,6 @@
             <plugin>
                 <groupId>org.eclipse.tycho</groupId>
                 <artifactId>tycho-compiler-plugin</artifactId>
-                <version>0.21.0</version>
                 <configuration>
                     <compilerVersion>1.8</compilerVersion>
                     <encoding>UTF-8</encoding>
diff --git a/org.eclipse.osbp.ide.core.ui/src/license/THIRD-PARTY.properties b/org.eclipse.osbp.ide.core.ui/src/license/THIRD-PARTY.properties
new file mode 100644
index 0000000..0f7af5d
--- /dev/null
+++ b/org.eclipse.osbp.ide.core.ui/src/license/THIRD-PARTY.properties
@@ -0,0 +1,42 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache License
+# - Apache License 2.0
+# - Apache License Version 2.0
+# - Apache License, Version 2.0
+# - Apache Software License - Version 2.0
+# - BSD License
+# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+#										(CDDL)
+#										Version
+#										1.0
+# - Commercial Vaadin Add-On License version 3.0
+# - Common Development and Distribution license - v1.0.1
+# - Eclipse Public License - Version 1.0
+# - Eclipse Public License v1.0
+# - GNU LGPL 3
+# - GNU Lesser General Public License
+# - ICU License
+# - Indiana University Extreme! Lab Software
+#										License,
+#										vesion 1.1.1
+# - Lesser General Public License (LGPL)
+# - Lesser General Public License (LPGL)
+# - Lesser General Public License (LPGL) v 2.1
+# - MIT License
+# - The Apache Software License, Version 2.0
+# - The MIT License
+# - The SAX License
+# - The W3C License
+# - The W3C Software License
+# - W3C Software Copyright Notice and License
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Thu Aug 28 14:08:37 CEST 2014
+ant--ant-launcher--1.6.5=Apache License Version 2.0
+commons-collections--commons-collections--3.1=Apache License Version 2.0
+javax.servlet--servlet-api--2.5=Common Development and Distribution license - v1.0.1
+org.jdesktop--swing-worker--1.1=Lesser General Public License (LGPL)
diff --git a/org.eclipse.osbp.ide.core.ui/src/org/eclipse/osbp/ide/core/ui/builder/OSBPModelEnhancingBuilder.java b/org.eclipse.osbp.ide.core.ui/src/org/eclipse/osbp/ide/core/ui/builder/OSBPModelEnhancingBuilder.java
index f5ba1ac..981d4ec 100644
--- a/org.eclipse.osbp.ide.core.ui/src/org/eclipse/osbp/ide/core/ui/builder/OSBPModelEnhancingBuilder.java
+++ b/org.eclipse.osbp.ide.core.ui/src/org/eclipse/osbp/ide/core/ui/builder/OSBPModelEnhancingBuilder.java
@@ -50,8 +50,8 @@
 import org.eclipse.osbp.dsl.semantic.common.types.LAttribute;
 import org.eclipse.osbp.dsl.semantic.common.types.LEnum;
 import org.eclipse.osbp.dsl.semantic.common.types.LEnumLiteral;
-import org.eclipse.osbp.dsl.semantic.common.types.LImport;
 import org.eclipse.osbp.dsl.semantic.common.types.LReference;
+import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
 import org.eclipse.osbp.dsl.semantic.common.types.LType;
 import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage;
 import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesFactory;
@@ -78,19 +78,23 @@
 import org.eclipse.osbp.dsl.semantic.service.LServiceModel;
 import org.eclipse.osbp.dsl.semantic.service.OSBPServiceFactory;
 import org.eclipse.osbp.dsl.semantic.service.OSBPServicePackage;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.ISemanticLoadingResource;
-import org.eclipse.osbp.dsl.xtext.lazyresolver.api.logger.TimeLogger;
 import org.eclipse.osbp.ide.core.api.i18n.CoreUtil;
 import org.eclipse.osbp.ide.core.ui.CoreUiActivator;
 import org.eclipse.osbp.ide.core.ui.nature.OSBPNature;
 import org.eclipse.osbp.xtext.builder.ui.access.IXtextUtilService;
+import org.eclipse.osbp.xtext.oxtype.logger.TimeLogger;
+import org.eclipse.osbp.xtext.oxtype.oxtype.OXImportDeclaration;
+import org.eclipse.osbp.xtext.oxtype.oxtype.OXtypeFactory;
+import org.eclipse.osbp.xtext.oxtype.resource.ISemanticLoadingResource;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.xtext.builder.builderState.IBuilderState;
 import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.resource.IEObjectDescription;
 import org.eclipse.xtext.resource.IReferenceDescription;
 import org.eclipse.xtext.resource.IResourceDescription;
 import org.eclipse.xtext.resource.IResourceDescription.Delta;
+import org.eclipse.xtext.resource.IResourceServiceProvider;
 import org.eclipse.xtext.resource.SaveOptions;
 import org.eclipse.xtext.resource.XtextResourceSet;
 import org.eclipse.xtext.ui.editor.findrefs.IReferenceFinder;
@@ -99,6 +103,9 @@
 import org.eclipse.xtext.util.IAcceptor;
 import org.eclipse.xtext.util.Pair;
 import org.eclipse.xtext.util.concurrent.IUnitOfWork;
+import org.eclipse.xtext.xtype.XImportDeclaration;
+import org.eclipse.xtext.xtype.XImportSection;
+import org.eclipse.xtext.xtype.XtypeFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -123,8 +130,7 @@
 	public final static String SOURCE_BASE_SRC_DIRECTORY = "src";
 
 	/** The Constant LOGGER. */
-	private static final Logger LOGGER = LoggerFactory
-			.getLogger(OSBPModelEnhancingBuilder.class);
+	private static final Logger LOGGER = LoggerFactory.getLogger(OSBPModelEnhancingBuilder.class);
 
 	/** The state. */
 	@Inject
@@ -147,6 +153,9 @@
 	private List<Pending> pending = new ArrayList<Pending>();
 	private boolean firstBuild = true;
 
+	private IQualifiedNameProvider entityNameProvider;
+	private IQualifiedNameProvider dtoNameProvider;
+
 	/**
 	 * Instantiates a new OSBP model enhancing builder.
 	 */
@@ -162,8 +171,7 @@
 	 *            the event
 	 */
 	@Override
-	public void descriptionsChanged(
-			org.eclipse.xtext.resource.IResourceDescription.Event event) {
+	public void descriptionsChanged(org.eclipse.xtext.resource.IResourceDescription.Event event) {
 		for (Delta delta : event.getDeltas()) {
 			// do not check for changes in the eobject description. Causes
 			// confusion for the user
@@ -217,15 +225,13 @@
 		if (platformResourcePath == null) {
 			return false;
 		}
-		IFile file = ResourcesPlugin.getWorkspace().getRoot()
-				.getFile(new Path(platformResourcePath));
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformResourcePath));
 		if (file == null || !file.exists()) {
 			// if resource is not in workspace continue
 			return false;
 		}
 
-		Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper
-				.getStorages(uri);
+		Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper.getStorages(uri);
 		if (pairs.iterator().hasNext()) {
 			Pair<IStorage, IProject> pair = pairs.iterator().next();
 			IProject dtoProject = pair.getSecond();
@@ -243,8 +249,7 @@
 	 * java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	@Override
-	protected IProject[] build(int kind, Map<String, String> args,
-			IProgressMonitor monitor) throws CoreException {
+	protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor) throws CoreException {
 		ensureParticipants();
 
 		if (kind == FULL_BUILD || firstBuild) {
@@ -267,8 +272,7 @@
 			});
 
 			boolean processed = false;
-			for (Iterator<Pending> iterator = pending.iterator(); iterator
-					.hasNext() && !processed;) {
+			for (Iterator<Pending> iterator = pending.iterator(); iterator.hasNext() && !processed;) {
 				Pending pending = iterator.next();
 				try {
 
@@ -282,8 +286,7 @@
 					String fileExtension = pending.uri.fileExtension();
 					switch (fileExtension) {
 					case "entity":
-						LEntityModel lentity = dtoBuilder
-								.loadSemanticModel(pending.uri);
+						LEntityModel lentity = dtoBuilder.loadSemanticModel(pending.uri);
 						if (lentity != null) {
 							dtoBuilder.buildDtos(lentity);
 							processed = true;
@@ -291,8 +294,7 @@
 						}
 						break;
 					case "dto":
-						LDtoModel lDtoModel = serviceBuilder
-								.loadSemanticModel(pending.uri);
+						LDtoModel lDtoModel = serviceBuilder.loadSemanticModel(pending.uri);
 						if (lDtoModel != null) {
 							// touch the ui and dialog models
 							try {
@@ -342,8 +344,7 @@
 					IFile file = (IFile) resource;
 
 					org.eclipse.emf.common.util.URI uri = org.eclipse.emf.common.util.URI
-							.createPlatformResourceURI(file.getFullPath()
-									.toString(), false);
+							.createPlatformResourceURI(file.getFullPath().toString(), false);
 					if (shouldUse(uri)) {
 						String fileExtension = uri.fileExtension();
 						switch (fileExtension) {
@@ -392,6 +393,18 @@
 			serviceBuilder = new ServiceEnhancer();
 			injector.injectMembers(serviceBuilder);
 		}
+
+		if (entityNameProvider == null) {
+			entityNameProvider = IResourceServiceProvider.Registry.INSTANCE
+					.getResourceServiceProvider(URI.createURI("osbp_builder:/my.entity"))
+					.get(IQualifiedNameProvider.class);
+		}
+
+		if (dtoNameProvider == null) {
+			dtoNameProvider = IResourceServiceProvider.Registry.INSTANCE
+					.getResourceServiceProvider(URI.createURI("osbp_builder:/my.dto"))
+					.get(IQualifiedNameProvider.class);
+		}
 	}
 
 	/**
@@ -430,8 +443,7 @@
 		 *            the temp l entity model
 		 */
 		public void buildDtos(LEntityModel tempLEntityModel) {
-			IXtextUtilService service = CoreUiActivator.getDefault()
-					.getUtilService();
+			IXtextUtilService service = CoreUiActivator.getDefault().getUtilService();
 			if (service == null) {
 				LOGGER.error("Skipping dto build since IXtextUtilService is not available!");
 				return;
@@ -444,21 +456,18 @@
 			//
 			// find referencing dto model
 			Set<URI> entityURIs = findEntityURIs(tempLEntityModel);
-			final List<IReferenceDescription> targetDtoReferences = findTargetDtoReferences(
-					entityURIs, tempLEntityModel.eResource().getResourceSet());
+			final List<IReferenceDescription> targetDtoReferences = findTargetDtoReferences(entityURIs,
+					tempLEntityModel.eResource().getResourceSet());
 
 			// ------- create the build context -------
-			DtoEnhancerContext context = createDtoBuildContext(
-					tempLEntityModel, targetDtoReferences);
+			DtoEnhancerContext context = createDtoBuildContext(tempLEntityModel, targetDtoReferences);
 
 			ISemanticLoadingResource entityResource = (ISemanticLoadingResource) context.writeableResourceSet
 					.getResource(tempLEntityModel.eResource().getURI(), true);
 
-			List<LType> sourceArtifacts = collectEntities((LEntityModel) entityResource
-					.getSemanticElement());
+			List<LType> sourceArtifacts = collectEntities((LEntityModel) entityResource.getSemanticElement());
 
-			List<LType> tempDtos = collectDtos((LDtoModel) context.dtoResource
-					.getSemanticElement());
+			List<LType> tempDtos = collectDtos((LDtoModel) context.dtoResource.getSemanticElement());
 
 			List<SourceTypeStore> sourceTypeStores = new ArrayList<SourceTypeStore>();
 			List<LType> dtosToPersist = new ArrayList<LType>();
@@ -472,8 +481,7 @@
 					LDto lDto = (LDto) findDtoType(lEntity, tempDtos);
 					if (lDto == null) {
 						lDto = OSBPDtoFactory.eINSTANCE.createLAutoInheritDto();
-						lDto.setAnnotationInfo(OSBPDtoFactory.eINSTANCE
-								.createLDto());
+						lDto.setAnnotationInfo(OSBPDtoFactory.eINSTANCE.createLDto());
 						tempDtos.add(lDto);
 					} else {
 						// remove from package for a while
@@ -496,8 +504,7 @@
 					LDto lDto = (LDto) findDtoType(lBean, tempDtos);
 					if (lDto == null) {
 						lDto = OSBPDtoFactory.eINSTANCE.createLAutoInheritDto();
-						lDto.setAnnotationInfo(OSBPDtoFactory.eINSTANCE
-								.createLDto());
+						lDto.setAnnotationInfo(OSBPDtoFactory.eINSTANCE.createLDto());
 						tempDtos.add(lDto);
 					} else {
 						// remove from package for a while
@@ -525,22 +532,19 @@
 						tempDtos.add(lDtoType);
 					} else {
 						// remove from package for a while
-						LTypedPackage lPkg = (LTypedPackage) lDtoType
-								.eContainer();
+						LTypedPackage lPkg = (LTypedPackage) lDtoType.eContainer();
 						lPkg.getTypes().remove(lDtoType);
 
 						// collect all touched packages -> They need cleanup
 						// later
 						touchedPackages.add(lPkg);
 					}
-					lDtoType.setName(NamingConventionsUtil
-							.toDtoName(lSourceType));
+					lDtoType.setName(NamingConventionsUtil.toDtoName(lSourceType));
 
 					dtosToPersist.add(lDtoType);
 
 					// store the source type of the new enum
-					sourceTypeStores.add(new SourceTypeStore(lSourceType,
-							lDtoType));
+					sourceTypeStores.add(new SourceTypeStore(lSourceType, lDtoType));
 
 				}
 			}
@@ -549,13 +553,12 @@
 			// an
 			// entity anymore
 			for (LTypedPackage lPkg : touchedPackages) {
-				for (Iterator<LType> iterator = lPkg.getTypes().iterator(); iterator
-						.hasNext();) {
+				for (Iterator<LType> iterator = lPkg.getTypes().iterator(); iterator.hasNext();) {
 					LType lType = (LType) iterator.next();
 					if (lType instanceof LAutoInheritDto) {
 						LDto lDto = (LDto) lType;
-						if (lDto.getWrappedType() == null
-								|| lDto.getWrappedType().eIsProxy()) {
+						if (lDto.getWrappedType() == null || lDto.getWrappedType().eIsProxy()) {
+							lDto.setSuperType(null);
 							iterator.remove();
 						}
 					}
@@ -567,8 +570,7 @@
 			for (LType lType : new ArrayList<>(tempDtos)) {
 				if (lType instanceof LAutoInheritDto) {
 					LDto lDto = (LDto) lType;
-					if (lDto.getWrappedType() == null
-							|| lDto.getWrappedType().eIsProxy()) {
+					if (lDto.getWrappedType() == null || lDto.getWrappedType().eIsProxy()) {
 						tempDtos.remove(lDto);
 					}
 				}
@@ -588,22 +590,18 @@
 			for (LType lType : sourceArtifacts) {
 				if (lType instanceof LEntity) {
 					LEntity lEntity = (LEntity) lType;
-					if (lEntity.getSuperType() != null
-							&& !lEntity.getSuperType().eIsProxy()) {
+					if (lEntity.getSuperType() != null && !lEntity.getSuperType().eIsProxy()) {
 						LEntity lEntitySuperType = lEntity.getSuperType();
 						LDto lDto = (LDto) findDtoType(lEntity, tempDtos);
-						LDto lDtoSuperType = (LDto) findDtoType(
-								lEntitySuperType, tempDtos);
+						LDto lDtoSuperType = (LDto) findDtoType(lEntitySuperType, tempDtos);
 						lDto.setSuperType(lDtoSuperType);
 					}
 				} else if (lType instanceof LBean) {
 					LBean lBean = (LBean) lType;
-					if (lBean.getSuperType() != null
-							&& !lBean.getSuperType().eIsProxy()) {
+					if (lBean.getSuperType() != null && !lBean.getSuperType().eIsProxy()) {
 						LBean lBeanSuperType = lBean.getSuperType();
 						LDto lDto = (LDto) findDtoType(lBean, tempDtos);
-						LDto lDtoSuperType = (LDto) findDtoType(lBeanSuperType,
-								tempDtos);
+						LDto lDtoSuperType = (LDto) findDtoType(lBeanSuperType, tempDtos);
 						lDto.setSuperType(lDtoSuperType);
 					}
 				}
@@ -639,14 +637,10 @@
 						}
 						dtoNames.add(lDto.getName());
 
-						LTypedPackage lSourceTypePkg = (LTypedPackage) lDto
-								.getWrappedType().eContainer();
-						addDtoToPackage(
-								NamingConventionsUtil
-										.toDtoPackage(lSourceTypePkg),
-								lDto, (LDtoModel) context.dtoResource
-										.getSemanticElement(), lSourceTypePkg
-										.getName());
+						LType wrappedType = lDto.getWrappedType();
+						LTypedPackage lSourceTypePkg = (LTypedPackage) wrappedType.eContainer();
+						addDtoToPackage(NamingConventionsUtil.toDtoPackage(lSourceTypePkg), lDto,
+								(LDtoModel) context.dtoResource.getSemanticElement(), wrappedType);
 					} else if (lType instanceof LEnum) {
 						LEnum lEnum = (LEnum) lType;
 						// filter dtos
@@ -656,16 +650,10 @@
 						}
 						dtoNames.add(lEnum.getName());
 
-						LEnum sourceType = (LEnum) SourceTypeStore
-								.findSourceType(lEnum);
-						LTypedPackage lSourceTypePkg = (LTypedPackage) sourceType
-								.eContainer();
-						addDtoToPackage(
-								NamingConventionsUtil
-										.toDtoPackage(lSourceTypePkg),
-								lEnum, (LDtoModel) context.dtoResource
-										.getSemanticElement(), lSourceTypePkg
-										.getName());
+						LEnum sourceType = (LEnum) SourceTypeStore.findSourceType(lEnum);
+						LTypedPackage lSourceTypePkg = (LTypedPackage) sourceType.eContainer();
+						addDtoToPackage(NamingConventionsUtil.toDtoPackage(lSourceTypePkg), lEnum,
+								(LDtoModel) context.dtoResource.getSemanticElement(), sourceType);
 					}
 				}
 
@@ -678,12 +666,10 @@
 				// save the dtos
 				//
 				try {
-					Diagnostic diagnostic = Diagnostician.INSTANCE
-							.validate(context.dtoResource.getSemanticElement());
+					Diagnostic diagnostic = Diagnostician.INSTANCE.validate(context.dtoResource.getSemanticElement());
 					int sev = diagnostic.getSeverity();
 					if (sev <= Diagnostic.WARNING) {
-						context.dtoResource.save(SaveOptions.newBuilder()
-								.format().getOptions().toOptionsMap());
+						context.dtoResource.save(SaveOptions.newBuilder().format().getOptions().toOptionsMap());
 					} else {
 						if (!context.dtoResource.getErrors().isEmpty()) {
 							String message = context.dtoResource.getErrors()
@@ -735,8 +721,7 @@
 		 *            the target dto references
 		 * @return the dto enhancer context
 		 */
-		private DtoEnhancerContext createDtoBuildContext(
-				LEntityModel tempLEntityModel,
+		private DtoEnhancerContext createDtoBuildContext(LEntityModel tempLEntityModel,
 				final List<IReferenceDescription> targetDtoReferences) {
 			DtoEnhancerContext context = new DtoEnhancerContext();
 			if (!targetDtoReferences.isEmpty()) {
@@ -747,24 +732,19 @@
 				//
 
 				// access entity resource
-				ISemanticLoadingResource tempEntityResource = (ISemanticLoadingResource) tempLEntityModel
-						.eResource();
-				ResourceSet readonlyResourceSet = tempEntityResource
-						.getResourceSet();
+				ISemanticLoadingResource tempEntityResource = (ISemanticLoadingResource) tempLEntityModel.eResource();
+				ResourceSet readonlyResourceSet = tempEntityResource.getResourceSet();
 
 				// access dto resource based on entityResourceSet
 				IReferenceDescription firstDesc = targetDtoReferences.get(0);
-				LDto tempDto = (LDto) readonlyResourceSet.getEObject(
-						firstDesc.getSourceEObjectUri(), true);
+				LDto tempDto = (LDto) readonlyResourceSet.getEObject(firstDesc.getSourceEObjectUri(), true);
 
 				// create the proper dto resourceSet to save the dto
-				context.writeableResourceSet = getProjectResourceSet(EcoreUtil
-						.getURI(tempDto));
+				context.writeableResourceSet = getProjectResourceSet(EcoreUtil.getURI(tempDto));
 
 				// load the dtoResource based on the dto resourceSet
 				context.dtoResource = (ISemanticLoadingResource) context.writeableResourceSet
-						.getResource(EcoreUtil.getURI(tempDto).trimFragment(),
-								true);
+						.getResource(EcoreUtil.getURI(tempDto).trimFragment(), true);
 			} else {
 
 				URI entityURI = EcoreUtil.getURI(tempLEntityModel);
@@ -788,27 +768,22 @@
 					// "org/my/foo/entity/MyEntity.entity"
 					// to
 					// "org/my/foo/entity/MyEntity.dtos"
-					dtoResourcePath = NamingConventionsUtil
-							.toDtoPackage(entityURI.path().replace("/resource",
-									""));
+					dtoResourcePath = NamingConventionsUtil.toDtoPackage(entityURI.path().replace("/resource", ""));
 				}
 
 				// now create a dtoResource
 
-				URI dtoModelURI = URI.createPlatformResourceURI(
-						dtoResourcePath, true);
+				URI dtoModelURI = URI.createPlatformResourceURI(dtoResourcePath, true);
 				context.dtoResource = (ISemanticLoadingResource) context.writeableResourceSet
 						.createResource(dtoModelURI);
-				context.dtoResource.getContents().add(
-						OSBPDtoFactory.eINSTANCE.createLDtoModel());
+				context.dtoResource.getContents().add(OSBPDtoFactory.eINSTANCE.createLDtoModel());
 			}
 			return context;
 		}
 
 		private IResource findDtoFile(URI entityURI) {
-			String dtoFileName = entityURI.path()
-					.substring(entityURI.path().lastIndexOf("/") + 1)
-					.replace(".entity", ".dto");
+			String dtoFileName = entityURI.path().substring(entityURI.path().lastIndexOf("/") + 1).replace(".entity",
+					".dto");
 
 			IResource[] temp = new IResource[1];
 			try {
@@ -820,8 +795,7 @@
 							}
 							return true;
 						} else if (res instanceof IFolder) {
-							if (res.getName().equals("bin")
-									|| res.getName().equals("target")) {
+							if (res.getName().equals("bin") || res.getName().equals("target")) {
 								return false;
 							}
 							return true;
@@ -877,8 +851,13 @@
 		 * @param entityPackage
 		 *            the entity package
 		 */
-		private void addDtoToPackage(String packageName, LType newDto,
-				LDtoModel lDtoModel, String entityPackage) {
+		private void addDtoToPackage(String packageName, LType newDto, LDtoModel lDtoModel, LType wrappedType) {
+
+			XImportSection section = lDtoModel.getImportSection();
+			if (section == null) {
+				section = XtypeFactory.eINSTANCE.createXImportSection();
+				lDtoModel.setImportSection(section);
+			}
 
 			Optional<LTypedPackage> optPkg = lDtoModel.getPackages().stream()
 					.filter(p -> p.getName().equals(packageName)).findFirst();
@@ -892,11 +871,14 @@
 				lDtoModel.getPackages().add(pkg);
 			}
 
-			// check if entityPackage is imported
-			if (!containsImport(pkg, entityPackage + ".*")) {
-				LImport lImport = OSBPTypesFactory.eINSTANCE.createLImport();
-				lImport.setImportedNamespace(entityPackage + ".*");
-				pkg.getImports().add(lImport);
+			String typeName = entityNameProvider.getFullyQualifiedName(wrappedType).toString();
+
+			// check if typeName is imported
+			if (!containsImport(lDtoModel, typeName)) {
+				OXImportDeclaration lImport = OXtypeFactory.eINSTANCE.createOXImportDeclaration();
+				lImport.setFqnImport(true);
+				lImport.setImportedFullyQualifiedName(typeName);
+				section.getImportDeclarations().add(lImport);
 			}
 
 			pkg.getTypes().add(newDto);
@@ -905,17 +887,23 @@
 		/**
 		 * Contains import.
 		 *
-		 * @param pkg
+		 * @param model
 		 *            the pkg
 		 * @param entityPackageImport
 		 *            the entity package import
 		 * @return true, if successful
 		 */
-		private boolean containsImport(LTypedPackage pkg,
-				String entityPackageImport) {
-			for (LImport lImport : pkg.getImports()) {
-				if (lImport.getImportedNamespace().equals(entityPackageImport)) {
-					return true;
+		private boolean containsImport(LDtoModel model, String typeFqn) {
+			if (model.getImportSection() == null) {
+				return false;
+			}
+
+			for (XImportDeclaration lImport : model.getImportSection().getImportDeclarations()) {
+				OXImportDeclaration decl = (OXImportDeclaration) lImport;
+				if (decl.isFqnImport()) {
+					if (decl.getImportedFullyQualifiedName().equals(typeFqn.toString())) {
+						return true;
+					}
 				}
 			}
 			return false;
@@ -965,32 +953,38 @@
 
 				// also add features from supertype, if dto does not
 				// extend any dto.
-				List<LEntityFeature> features = lDto.getSuperType() == null ? currentEntity
-						.getAllFeatures() : currentEntity.getFeatures();
+				List<LEntityFeature> features = lDto.getSuperType() == null ? currentEntity.getAllFeatures()
+						: currentEntity.getFeatures();
 				for (LEntityFeature lEntityFeature : features) {
 					if (lEntityFeature instanceof LEntityAttribute) {
-						LDtoInheritedAttribute lNewAtt = OSBPDtoFactory.eINSTANCE
-								.createLDtoInheritedAttribute();
+						LDtoInheritedAttribute lNewAtt = OSBPDtoFactory.eINSTANCE.createLDtoInheritedAttribute();
 						lNewAtt.setInheritedFeature((LAttribute) lEntityFeature);
-						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE
-								.createLDtoFeature();
+						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE.createLDtoFeature();
 						lNewAtt.setAnnotationInfo(lAnnTarget);
+
+						LAttribute att = (LAttribute) lEntityFeature;
+						if (att.getType() instanceof LBean) {
+							// Mapped dto
+							LDto mapToDto = getMapToDto((LEntityAttribute) lEntityFeature, dtos);
+							if (mapToDto == null) {
+								LOGGER.error("No Mapping-DTO could be found for " + lEntityFeature.getEntity());
+								continue;
+							}
+							lNewAtt.setType(mapToDto);
+						}
+
 						lDto.getFeatures().add(lNewAtt);
 					} else if (lEntityFeature instanceof LEntityReference) {
 						// Mapped dto
-						LDto mapToDto = getMapToDto(
-								(LEntityReference) lEntityFeature, dtos);
+						LDto mapToDto = getMapToDto((LEntityReference) lEntityFeature, dtos);
 						if (mapToDto == null) {
-							LOGGER.error("No Mapping-DTO could be found for "
-									+ lEntityFeature.getEntity());
+							LOGGER.error("No Mapping-DTO could be found for " + lEntityFeature.getEntity());
 							continue;
 						}
 
-						LDtoInheritedReference lNewRef = OSBPDtoFactory.eINSTANCE
-								.createLDtoInheritedReference();
+						LDtoInheritedReference lNewRef = OSBPDtoFactory.eINSTANCE.createLDtoInheritedReference();
 						lNewRef.setInheritedFeature((LReference) lEntityFeature);
-						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE
-								.createLDtoFeature();
+						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE.createLDtoFeature();
 						lNewRef.setAnnotationInfo(lAnnTarget);
 						lDto.getFeatures().add(lNewRef);
 						lNewRef.setType(mapToDto);
@@ -1003,48 +997,50 @@
 
 				// also add features from supertype, if dto does not
 				// extend any dto.
-				List<LBeanFeature> features = lDto.getSuperType() == null ? currentBean
-						.getAllFeatures() : currentBean.getFeatures();
+				List<LBeanFeature> features = lDto.getSuperType() == null ? currentBean.getAllFeatures()
+						: currentBean.getFeatures();
 				for (LBeanFeature lBeanFeature : features) {
 					if (lBeanFeature instanceof LBeanAttribute) {
-						LDtoInheritedAttribute lNewAtt = OSBPDtoFactory.eINSTANCE
-								.createLDtoInheritedAttribute();
+						LDtoInheritedAttribute lNewAtt = OSBPDtoFactory.eINSTANCE.createLDtoInheritedAttribute();
 						lNewAtt.setInheritedFeature((LAttribute) lBeanFeature);
-						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE
-								.createLDtoFeature();
+						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE.createLDtoFeature();
 						lNewAtt.setAnnotationInfo(lAnnTarget);
+
+						LAttribute att = (LAttribute) lBeanFeature;
+						if (att.getType() instanceof LBean) {
+							// Mapped dto
+							LDto mapToDto = getMapToDto((LAttribute) lBeanFeature, dtos);
+							if (mapToDto == null) {
+								LOGGER.error("No Mapping-DTO could be found for " + att.getType());
+								continue;
+							}
+							lNewAtt.setType(mapToDto);
+						}
+
 						lDto.getFeatures().add(lNewAtt);
 					} else if (lBeanFeature instanceof LEntityReference) {
-						LDto mapToDto = getMapToDto(
-								(LEntityReference) lBeanFeature, dtos);
+						LDto mapToDto = getMapToDto((LEntityReference) lBeanFeature, dtos);
 						if (mapToDto == null) {
-							LOGGER.error("No Mapping-DTO could be found for "
-									+ lBeanFeature.getBean());
+							LOGGER.error("No Mapping-DTO could be found for " + lBeanFeature.getBean());
 							continue;
 						}
 
-						LDtoInheritedReference lNewRef = OSBPDtoFactory.eINSTANCE
-								.createLDtoInheritedReference();
+						LDtoInheritedReference lNewRef = OSBPDtoFactory.eINSTANCE.createLDtoInheritedReference();
 						lNewRef.setInheritedFeature((LReference) lBeanFeature);
-						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE
-								.createLDtoFeature();
+						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE.createLDtoFeature();
 						lNewRef.setAnnotationInfo(lAnnTarget);
 						lDto.getFeatures().add(lNewRef);
 						lNewRef.setType(mapToDto);
 					} else if (lBeanFeature instanceof LBeanReference) {
-						LDto mapToDto = getMapToDto(
-								(LBeanReference) lBeanFeature, dtos);
+						LDto mapToDto = getMapToDto((LBeanReference) lBeanFeature, dtos);
 						if (mapToDto == null) {
-							LOGGER.error("No Mapping-DTO could be found for "
-									+ lBeanFeature.getBean());
+							LOGGER.error("No Mapping-DTO could be found for " + lBeanFeature.getBean());
 							continue;
 						}
 
-						LDtoInheritedReference lNewRef = OSBPDtoFactory.eINSTANCE
-								.createLDtoInheritedReference();
+						LDtoInheritedReference lNewRef = OSBPDtoFactory.eINSTANCE.createLDtoInheritedReference();
 						lNewRef.setInheritedFeature((LReference) lBeanFeature);
-						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE
-								.createLDtoFeature();
+						LDtoFeature lAnnTarget = OSBPDtoFactory.eINSTANCE.createLDtoFeature();
 						lNewRef.setAnnotationInfo(lAnnTarget);
 						lDto.getFeatures().add(lNewRef);
 						lNewRef.setType(mapToDto);
@@ -1060,11 +1056,9 @@
 		 *            the l dto
 		 */
 		private void removeAllInheritedFeatures(LDto lDto) {
-			for (Iterator<LDtoFeature> iterator = lDto.getFeatures().iterator(); iterator
-					.hasNext();) {
+			for (Iterator<LDtoFeature> iterator = lDto.getFeatures().iterator(); iterator.hasNext();) {
 				LDtoFeature lFeature = iterator.next();
-				if ((lFeature instanceof LDtoInheritedAttribute)
-						|| (lFeature instanceof LDtoInheritedReference)) {
+				if ((lFeature instanceof LDtoInheritedAttribute) || (lFeature instanceof LDtoInheritedReference)) {
 					iterator.remove();
 				}
 			}
@@ -1079,8 +1073,7 @@
 		 */
 		private XtextResourceSet getProjectResourceSet(URI uri) {
 			IProject dtoProject = null;
-			Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper
-					.getStorages(uri);
+			Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper.getStorages(uri);
 			if (pairs.iterator().hasNext()) {
 				dtoProject = pairs.iterator().next().getSecond();
 			}
@@ -1090,8 +1083,7 @@
 				return null;
 			}
 
-			XtextResourceSet resourceSet = (XtextResourceSet) rsProvider
-					.get(dtoProject);
+			XtextResourceSet resourceSet = (XtextResourceSet) rsProvider.get(dtoProject);
 			return resourceSet;
 		}
 
@@ -1125,8 +1117,7 @@
 			List<LType> entities = new ArrayList<LType>();
 			for (LTypedPackage lPkg : lEntityModel.getPackages()) {
 				for (LType lType : lPkg.getTypes()) {
-					if (lType instanceof LEntity || lType instanceof LBean
-							|| lType instanceof LEnum) {
+					if (lType instanceof LEntity || lType instanceof LBean || lType instanceof LEnum) {
 						entities.add(lType);
 					}
 				}
@@ -1167,11 +1158,9 @@
 		 *            the resource set
 		 * @return the list
 		 */
-		private List<IReferenceDescription> findTargetDtoReferences(
-				Set<URI> entityURIs, ResourceSet resourceSet) {
+		private List<IReferenceDescription> findTargetDtoReferences(Set<URI> entityURIs, ResourceSet resourceSet) {
 			final List<IReferenceDescription> targetDtoReferences = new ArrayList<IReferenceDescription>();
-			referenceFinder.findAllReferences(entityURIs,
-					new LocalResourceAccess(resourceSet),
+			referenceFinder.findAllReferences(entityURIs, new LocalResourceAccess(resourceSet),
 					new IAcceptor<IReferenceDescription>() {
 						@Override
 						public void accept(IReferenceDescription t) {
@@ -1211,12 +1200,16 @@
 		 *            the dtos
 		 * @return the map to dto
 		 */
-		private LDto getMapToDto(LEntityReference lEntityFeature,
-				List<LType> dtos) {
+		private LDto getMapToDto(LEntityReference lEntityFeature, List<LType> dtos) {
 			LEntity entity = lEntityFeature.getType();
 			return (LDto) findDtoType(entity, dtos);
 		}
 
+		private LDto getMapToDto(LAttribute lEntityFeature, List<LType> dtos) {
+			LScalarType entity = lEntityFeature.getType();
+			return (LDto) findDtoType(entity, dtos);
+		}
+
 		/**
 		 * Returns the mapped DTO or <code>null</code>.
 		 *
@@ -1252,8 +1245,7 @@
 			// org.eclipse.emf.common.util.URI
 			// .createPlatformResourceURI(file.getFullPath().toString(),
 			// false);
-			XtextResourceSet rs = (XtextResourceSet) rsProvider
-					.get(getProject());
+			XtextResourceSet rs = (XtextResourceSet) rsProvider.get(getProject());
 			Resource resource = rs.getResource(modelURI, true);
 			try {
 				resource.load(null);
@@ -1263,8 +1255,7 @@
 			}
 			A semanticModel = null;
 			if (resource instanceof ISemanticLoadingResource) {
-				semanticModel = (A) ((ISemanticLoadingResource) resource)
-						.getSemanticElement();
+				semanticModel = (A) ((ISemanticLoadingResource) resource).getSemanticElement();
 			} else {
 				semanticModel = (A) resource.getContents().get(0);
 			}
@@ -1334,26 +1325,20 @@
 				// create the proper dto resourceSet to save the dto
 				ResourceSet writeableResourceSet = resourceSets.get(uiModelURI);
 				if (writeableResourceSet == null) {
-					LOGGER.error(
-							"Can not save {} since resource set not available",
-							uiModelURI);
+					LOGGER.error("Can not save {} since resource set not available", uiModelURI);
 					continue;
 				}
 
-				Resource uiModelResource = (Resource) writeableResourceSet
-						.getResource(uiModelURI, true);
+				Resource uiModelResource = (Resource) writeableResourceSet.getResource(uiModelURI, true);
 				// ensures that the inferrer is invoked
 				uiModelResource.getContents();
 				try {
-					Diagnostic diagnostic = Diagnostician.INSTANCE
-							.validate(uiModelResource.getContents().get(0));
+					Diagnostic diagnostic = Diagnostician.INSTANCE.validate(uiModelResource.getContents().get(0));
 					int sev = diagnostic.getSeverity();
 					if (sev <= Diagnostic.WARNING) {
-						uiModelResource.save(SaveOptions.newBuilder().format()
-								.getOptions().toOptionsMap());
+						uiModelResource.save(SaveOptions.newBuilder().format().getOptions().toOptionsMap());
 					} else {
-						LOGGER.error(uiModelResource.getErrors().get(0)
-								.toString());
+						LOGGER.error(uiModelResource.getErrors().get(0).toString());
 					}
 					uiModelResource.unload();
 				} catch (IOException e) {
@@ -1361,8 +1346,7 @@
 				}
 			}
 
-			timeLogger.stop(LOGGER,
-					"Finished OSBPServiceBuilder#buildUiModels in ");
+			timeLogger.stop(LOGGER, "Finished OSBPServiceBuilder#buildUiModels in ");
 		}
 
 		/**
@@ -1378,8 +1362,7 @@
 		private Set<URI> findTargetUiAndDialogModelReferences(
 				Set<URI> dtoJvmTypeURIs, ResourceSet resourceSet) {
 			final Set<URI> targetUiModelReferences = new HashSet<>();
-			referenceFinder.findAllReferences(dtoJvmTypeURIs,
-					new LocalResourceAccess(resourceSet),
+			referenceFinder.findAllReferences(dtoJvmTypeURIs, new LocalResourceAccess(resourceSet),
 					new IAcceptor<IReferenceDescription>() {
 						@Override
 						public void accept(IReferenceDescription t) {
@@ -1403,8 +1386,7 @@
 		 *            the temp l dto model
 		 */
 		public void buildServices(LDtoModel tempLDtoModel) {
-			IXtextUtilService service = CoreUiActivator.getDefault()
-					.getUtilService();
+			IXtextUtilService service = CoreUiActivator.getDefault().getUtilService();
 			if (service == null) {
 				LOGGER.error("Skipping dto build since IXtextUtilService is not available!");
 				return;
@@ -1417,21 +1399,18 @@
 			//
 			// find referencing service model
 			Set<URI> dtoURIs = findDtoURIs(tempLDtoModel);
-			final List<IReferenceDescription> targetServiceReferences = findTargetServiceReferences(
-					dtoURIs, tempLDtoModel.eResource().getResourceSet());
+			final List<IReferenceDescription> targetServiceReferences = findTargetServiceReferences(dtoURIs,
+					tempLDtoModel.eResource().getResourceSet());
 
 			// ------- create the build context -------
-			ServiceEnhancerContext context = createServiceBuildContext(
-					tempLDtoModel, targetServiceReferences);
+			ServiceEnhancerContext context = createServiceBuildContext(tempLDtoModel, targetServiceReferences);
 
 			ISemanticLoadingResource dtoResource = (ISemanticLoadingResource) context.writeableResourceSet
 					.getResource(tempLDtoModel.eResource().getURI(), true);
 
-			List<LType> sourceArtifacts = collectDtos((LDtoModel) dtoResource
-					.getSemanticElement());
+			List<LType> sourceArtifacts = collectDtos((LDtoModel) dtoResource.getSemanticElement());
 
-			List<LType> tempServices = collectServices((LServiceModel) context.serviceResource
-					.getSemanticElement());
+			List<LType> tempServices = collectServices((LServiceModel) context.serviceResource.getSemanticElement());
 
 			List<LType> servicesToPersist = new ArrayList<LType>();
 
@@ -1452,17 +1431,13 @@
 
 					LDTOService lService = findService(lDto, tempServices);
 					if (lService == null) {
-						lService = OSBPServiceFactory.eINSTANCE
-								.createLDTOService();
-						lService.setAnnotationInfo(OSBPServiceFactory.eINSTANCE
-								.createLDTOService());
-						lService.setInjectedServices(OSBPServiceFactory.eINSTANCE
-								.createLInjectedServices());
+						lService = OSBPServiceFactory.eINSTANCE.createLDTOService();
+						lService.setAnnotationInfo(OSBPServiceFactory.eINSTANCE.createLDTOService());
+						lService.setInjectedServices(OSBPServiceFactory.eINSTANCE.createLInjectedServices());
 						tempServices.add(lService);
 					} else {
 						// remove from package for a while
-						LTypedPackage lPkg = (LTypedPackage) lService
-								.eContainer();
+						LTypedPackage lPkg = (LTypedPackage) lService.eContainer();
 						lPkg.getTypes().remove(lService);
 						// collect all touched packages -> They need cleanup
 						// later
@@ -1479,13 +1454,11 @@
 			// on
 			// an dto anymore
 			for (LTypedPackage lPkg : touchedPackages) {
-				for (Iterator<LType> iterator = lPkg.getTypes().iterator(); iterator
-						.hasNext();) {
+				for (Iterator<LType> iterator = lPkg.getTypes().iterator(); iterator.hasNext();) {
 					LType lType = (LType) iterator.next();
 					if (lType instanceof LDTOService) {
 						LDTOService lService = (LDTOService) lType;
-						if (lService.getDto() == null
-								|| lService.getDto().eIsProxy()
+						if (lService.getDto() == null || lService.getDto().eIsProxy()
 								|| !(lService.getDto().getWrappedType() instanceof LEntity)) {
 							iterator.remove();
 						}
@@ -1535,26 +1508,19 @@
 					}
 					serviceNames.add(lService.getName());
 
-					LTypedPackage lSourceTypePkg = (LTypedPackage) lService
-							.getDto().eContainer();
-					addServicesToPackage(getServicePackageName(lSourceTypePkg),
-							lService,
-							(LServiceModel) context.serviceResource
-									.getSemanticElement(),
-							lSourceTypePkg.getName());
+					LTypedPackage lSourceTypePkg = (LTypedPackage) lService.getDto().eContainer();
+					addServicesToPackage(getServicePackageName(lSourceTypePkg), lService,
+							(LServiceModel) context.serviceResource.getSemanticElement(), lService.getDto());
 				}
 
 				try {
 					Diagnostic diagnostic = Diagnostician.INSTANCE
-							.validate(context.serviceResource
-									.getSemanticElement());
+							.validate(context.serviceResource.getSemanticElement());
 					int sev = diagnostic.getSeverity();
 					if (sev <= Diagnostic.WARNING) {
-						context.serviceResource.save(SaveOptions.newBuilder()
-								.format().getOptions().toOptionsMap());
+						context.serviceResource.save(SaveOptions.newBuilder().format().getOptions().toOptionsMap());
 					} else {
-						LOGGER.error(context.serviceResource.getErrors().get(0)
-								.toString());
+						LOGGER.error(context.serviceResource.getErrors().get(0).toString());
 					}
 					context.serviceResource.unload();
 
@@ -1565,8 +1531,7 @@
 					LOGGER.error("{}", e);
 				}
 
-				timeLogger.stop(LOGGER,
-						"Finished OSBPServiceBuilder#buildServices in ");
+				timeLogger.stop(LOGGER, "Finished OSBPServiceBuilder#buildServices in ");
 			}
 		}
 
@@ -1579,8 +1544,7 @@
 		 *            the target service references
 		 * @return the service enhancer context
 		 */
-		private ServiceEnhancerContext createServiceBuildContext(
-				LDtoModel tempLDtoModel,
+		private ServiceEnhancerContext createServiceBuildContext(LDtoModel tempLDtoModel,
 				final List<IReferenceDescription> targetServiceReferences) {
 			ServiceEnhancerContext context = new ServiceEnhancerContext();
 			if (!targetServiceReferences.isEmpty()) {
@@ -1591,25 +1555,19 @@
 				//
 
 				// access entity resource
-				ISemanticLoadingResource tempDtoResource = (ISemanticLoadingResource) tempLDtoModel
-						.eResource();
-				ResourceSet readonlyResourceSet = tempDtoResource
-						.getResourceSet();
+				ISemanticLoadingResource tempDtoResource = (ISemanticLoadingResource) tempLDtoModel.eResource();
+				ResourceSet readonlyResourceSet = tempDtoResource.getResourceSet();
 
 				// access dto resource based on entityResourceSet
-				IReferenceDescription firstDesc = targetServiceReferences
-						.get(0);
-				LService tempService = (LService) readonlyResourceSet
-						.getEObject(firstDesc.getSourceEObjectUri(), true);
+				IReferenceDescription firstDesc = targetServiceReferences.get(0);
+				LService tempService = (LService) readonlyResourceSet.getEObject(firstDesc.getSourceEObjectUri(), true);
 
 				// create the proper dto resourceSet to save the dto
-				context.writeableResourceSet = getProjectResourceSet(EcoreUtil
-						.getURI(tempService));
+				context.writeableResourceSet = getProjectResourceSet(EcoreUtil.getURI(tempService));
 
 				// load the dtoResource based on the dto resourceSet
 				context.serviceResource = (ISemanticLoadingResource) context.writeableResourceSet
-						.getResource(EcoreUtil.getURI(tempService)
-								.trimFragment(), true);
+						.getResource(EcoreUtil.getURI(tempService).trimFragment(), true);
 			} else {
 				URI dtoURI = EcoreUtil.getURI(tempLDtoModel);
 				// create the proper dto resourceSet to save the dto
@@ -1630,24 +1588,20 @@
 					// now create a dtoResource
 
 					serviceResourcePath = org.eclipse.osbp.dsl.semantic.service.util.NamingConventionsUtil
-							.toServicePackage(dtoURI.path().replace(
-									"/resource", ""));
+							.toServicePackage(dtoURI.path().replace("/resource", ""));
 				}
 
-				URI serviceModelURI = URI.createPlatformResourceURI(
-						serviceResourcePath, true);
+				URI serviceModelURI = URI.createPlatformResourceURI(serviceResourcePath, true);
 				context.serviceResource = (ISemanticLoadingResource) context.writeableResourceSet
 						.createResource(serviceModelURI);
-				context.serviceResource.getContents().add(
-						OSBPServiceFactory.eINSTANCE.createLServiceModel());
+				context.serviceResource.getContents().add(OSBPServiceFactory.eINSTANCE.createLServiceModel());
 			}
 			return context;
 		}
 
 		private IResource findServiceFile(URI entityURI) {
-			String dtoFileName = entityURI.path()
-					.substring(entityURI.path().lastIndexOf("/") + 1)
-					.replace(".dto", ".service");
+			String dtoFileName = entityURI.path().substring(entityURI.path().lastIndexOf("/") + 1).replace(".dto",
+					".service");
 
 			IResource[] temp = new IResource[1];
 			try {
@@ -1659,8 +1613,7 @@
 							}
 							return true;
 						} else if (res instanceof IFolder) {
-							if (res.getName().equals("bin")
-									|| res.getName().equals("target")) {
+							if (res.getName().equals("bin") || res.getName().equals("target")) {
 								return false;
 							}
 							return true;
@@ -1722,11 +1675,17 @@
 		 * @param dtoPackage
 		 *            the dto package
 		 */
-		private void addServicesToPackage(String packageName,
-				LService newService, LServiceModel lModel, String dtoPackage) {
+		private void addServicesToPackage(String packageName, LService newService, LServiceModel lModel,
+				LType dtoType) {
 
-			Optional<LTypedPackage> optPkg = lModel.getPackages().stream()
-					.filter(p -> p.getName().equals(packageName)).findFirst();
+			XImportSection section = lModel.getImportSection();
+			if (section == null) {
+				section = XtypeFactory.eINSTANCE.createXImportSection();
+				lModel.setImportSection(section);
+			}
+
+			Optional<LTypedPackage> optPkg = lModel.getPackages().stream().filter(p -> p.getName().equals(packageName))
+					.findFirst();
 			LTypedPackage pkg = null;
 			if (optPkg.isPresent()) {
 				pkg = optPkg.get();
@@ -1737,11 +1696,14 @@
 				lModel.getPackages().add(pkg);
 			}
 
+			String typeName = dtoNameProvider.getFullyQualifiedName(dtoType).toString();
+
 			// check if entityPackage is imported
-			if (!containsImport(pkg, dtoPackage + ".*")) {
-				LImport lImport = OSBPTypesFactory.eINSTANCE.createLImport();
-				lImport.setImportedNamespace(dtoPackage + ".*");
-				pkg.getImports().add(lImport);
+			if (!containsImport(lModel, typeName)) {
+				OXImportDeclaration lImport = OXtypeFactory.eINSTANCE.createOXImportDeclaration();
+				lImport.setFqnImport(true);
+				lImport.setImportedFullyQualifiedName(typeName);
+				section.getImportDeclarations().add(lImport);
 			}
 
 			pkg.getTypes().add(newService);
@@ -1750,17 +1712,23 @@
 		/**
 		 * Contains import.
 		 *
-		 * @param pkg
+		 * @param model
 		 *            the pkg
 		 * @param entityPackageImport
 		 *            the entity package import
 		 * @return true, if successful
 		 */
-		private boolean containsImport(LTypedPackage pkg,
-				String entityPackageImport) {
-			for (LImport lImport : pkg.getImports()) {
-				if (lImport.getImportedNamespace().equals(entityPackageImport)) {
-					return true;
+		private boolean containsImport(LServiceModel model, String typeFqn) {
+			if (model.getImportSection() == null) {
+				return false;
+			}
+
+			for (XImportDeclaration lImport : model.getImportSection().getImportDeclarations()) {
+				OXImportDeclaration decl = (OXImportDeclaration) lImport;
+				if (decl.isFqnImport()) {
+					if (decl.getImportedFullyQualifiedName().equals(typeFqn.toString())) {
+						return true;
+					}
 				}
 			}
 			return false;
@@ -1774,8 +1742,7 @@
 		 * @return the service name
 		 */
 		private String getServiceName(LDto lType) {
-			return org.eclipse.osbp.dsl.semantic.service.util.NamingConventionsUtil
-					.toServiceName(lType);
+			return org.eclipse.osbp.dsl.semantic.service.util.NamingConventionsUtil.toServiceName(lType);
 		}
 
 		/**
@@ -1787,8 +1754,7 @@
 		 */
 		private XtextResourceSet getProjectResourceSet(URI uri) {
 			IProject dtoProject = null;
-			Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper
-					.getStorages(uri);
+			Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper.getStorages(uri);
 			if (pairs.iterator().hasNext()) {
 				dtoProject = pairs.iterator().next().getSecond();
 			}
@@ -1798,8 +1764,7 @@
 				return null;
 			}
 
-			XtextResourceSet resourceSet = (XtextResourceSet) rsProvider
-					.get(dtoProject);
+			XtextResourceSet resourceSet = (XtextResourceSet) rsProvider.get(dtoProject);
 			return resourceSet;
 		}
 
@@ -1811,14 +1776,12 @@
 		 *            the uris
 		 * @return the project resource set map
 		 */
-		private Map<URI, XtextResourceSet> getProjectResourceSetMap(
-				Set<URI> uris) {
+		private Map<URI, XtextResourceSet> getProjectResourceSetMap(Set<URI> uris) {
 			IProject project = null;
 			Map<IProject, XtextResourceSet> byProject = new HashMap<>();
 			Map<URI, XtextResourceSet> result = new HashMap<>();
 			for (URI uri : uris) {
-				Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper
-						.getStorages(uri);
+				Iterable<Pair<IStorage, IProject>> pairs = uriStorageMapper.getStorages(uri);
 				if (pairs.iterator().hasNext()) {
 					project = pairs.iterator().next().getSecond();
 				}
@@ -1832,8 +1795,7 @@
 					// same projects use shared resource set
 					result.put(uri, byProject.get(project));
 				} else {
-					XtextResourceSet resourceSet = (XtextResourceSet) rsProvider
-							.get(project);
+					XtextResourceSet resourceSet = (XtextResourceSet) rsProvider.get(project);
 					byProject.put(project, resourceSet);
 					result.put(uri, resourceSet);
 				}
@@ -1871,15 +1833,12 @@
 		private Set<URI> findDtoJvmTypeURIs(LDtoModel lDtoModel) {
 			Set<URI> dtoURIs = new HashSet<URI>();
 
-			IXtextUtilService service = CoreUiActivator.getDefault()
-					.getUtilService();
+			IXtextUtilService service = CoreUiActivator.getDefault().getUtilService();
 			for (LTypedPackage lPkg : lDtoModel.getPackages()) {
 				for (LType lType : lPkg.getTypes()) {
 					if (lType instanceof LDto) {
-						for (IEObjectDescription desc : service
-								.getEObjectDescriptions(
-										TypesPackage.Literals.JVM_TYPE,
-										toFqn(lType))) {
+						for (IEObjectDescription desc : service.getEObjectDescriptions(TypesPackage.Literals.JVM_TYPE,
+								toFqn(lType))) {
 							dtoURIs.add(desc.getEObjectURI());
 						}
 					}
@@ -1950,18 +1909,17 @@
 		 *            the resource set
 		 * @return the list
 		 */
-		private List<IReferenceDescription> findTargetServiceReferences(
-				Set<URI> dtoURIs, ResourceSet resourceSet) {
+		private List<IReferenceDescription> findTargetServiceReferences(Set<URI> dtoURIs, ResourceSet resourceSet) {
 			final List<IReferenceDescription> targetServiceReferences = new ArrayList<IReferenceDescription>();
-			referenceFinder.findAllReferences(dtoURIs, new LocalResourceAccess(
-					resourceSet), new IAcceptor<IReferenceDescription>() {
-				@Override
-				public void accept(IReferenceDescription t) {
-					if (t.getEReference() == OSBPServicePackage.Literals.LDTO_SERVICE__DTO) {
-						targetServiceReferences.add(t);
-					}
-				}
-			}, null);
+			referenceFinder.findAllReferences(dtoURIs, new LocalResourceAccess(resourceSet),
+					new IAcceptor<IReferenceDescription>() {
+						@Override
+						public void accept(IReferenceDescription t) {
+							if (t.getEReference() == OSBPServicePackage.Literals.LDTO_SERVICE__DTO) {
+								targetServiceReferences.add(t);
+							}
+						}
+					}, null);
 			return targetServiceReferences;
 		}
 
@@ -1976,8 +1934,7 @@
 		 */
 		@SuppressWarnings("unchecked")
 		private <A extends EObject> A loadSemanticModel(URI modelURI) {
-			XtextResourceSet rs = (XtextResourceSet) rsProvider
-					.get(getProject());
+			XtextResourceSet rs = (XtextResourceSet) rsProvider.get(getProject());
 			Resource resource = rs.getResource(modelURI, true);
 			try {
 				resource.load(null);
@@ -1987,8 +1944,7 @@
 			}
 			A semanticModel = null;
 			if (resource instanceof ISemanticLoadingResource) {
-				semanticModel = (A) ((ISemanticLoadingResource) resource)
-						.getSemanticElement();
+				semanticModel = (A) ((ISemanticLoadingResource) resource).getSemanticElement();
 			} else {
 				semanticModel = (A) resource.getContents().get(0);
 			}
@@ -2065,8 +2021,7 @@
 	/**
 	 * The Class LocalResourceAccess.
 	 */
-	public static class LocalResourceAccess implements
-			IReferenceFinder.ILocalResourceAccess {
+	public static class LocalResourceAccess implements IReferenceFinder.ILocalResourceAccess {
 
 		/** The resource set. */
 		private ResourceSet resourceSet;
diff --git a/org.eclipse.osbp.ide.core/.classpath b/org.eclipse.osbp.ide.core/.classpath
new file mode 100644
index 0000000..b9a5b1e
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.core/.gitignore b/org.eclipse.osbp.ide.core/.gitignore
new file mode 100644
index 0000000..7c9106d
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.gitignore
@@ -0,0 +1,3 @@
+/target/
+/bin/
+.DS_Store
diff --git a/org.eclipse.osbp.ide.core/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.core/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/org.eclipse.osbp.ide.core/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.core/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.core/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osbp.ide.core/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osbp.ide.core/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.core/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.core/src/license/THIRD-PARTY.properties b/org.eclipse.osbp.ide.core/src/license/THIRD-PARTY.properties
new file mode 100644
index 0000000..0f7af5d
--- /dev/null
+++ b/org.eclipse.osbp.ide.core/src/license/THIRD-PARTY.properties
@@ -0,0 +1,42 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache License
+# - Apache License 2.0
+# - Apache License Version 2.0
+# - Apache License, Version 2.0
+# - Apache Software License - Version 2.0
+# - BSD License
+# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+#										(CDDL)
+#										Version
+#										1.0
+# - Commercial Vaadin Add-On License version 3.0
+# - Common Development and Distribution license - v1.0.1
+# - Eclipse Public License - Version 1.0
+# - Eclipse Public License v1.0
+# - GNU LGPL 3
+# - GNU Lesser General Public License
+# - ICU License
+# - Indiana University Extreme! Lab Software
+#										License,
+#										vesion 1.1.1
+# - Lesser General Public License (LGPL)
+# - Lesser General Public License (LPGL)
+# - Lesser General Public License (LPGL) v 2.1
+# - MIT License
+# - The Apache Software License, Version 2.0
+# - The MIT License
+# - The SAX License
+# - The W3C License
+# - The W3C Software License
+# - W3C Software Copyright Notice and License
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Thu Aug 28 14:08:37 CEST 2014
+ant--ant-launcher--1.6.5=Apache License Version 2.0
+commons-collections--commons-collections--3.1=Apache License Version 2.0
+javax.servlet--servlet-api--2.5=Common Development and Distribution license - v1.0.1
+org.jdesktop--swing-worker--1.1=Lesser General Public License (LGPL)
diff --git a/org.eclipse.osbp.ide.feature.headless/.gitignore b/org.eclipse.osbp.ide.feature.headless/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.headless/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.headless/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.feature.headless/feature.xml b/org.eclipse.osbp.ide.feature.headless/feature.xml
index 3972901..457a6cc 100644
--- a/org.eclipse.osbp.ide.feature.headless/feature.xml
+++ b/org.eclipse.osbp.ide.feature.headless/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.ide.feature.headless"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.ide.core">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.ide.feature.tools/.gitignore b/org.eclipse.osbp.ide.feature.tools/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.tools/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.tools/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.feature.tools/feature.xml b/org.eclipse.osbp.ide.feature.tools/feature.xml
index 8bc43a3..5d5355f 100644
--- a/org.eclipse.osbp.ide.feature.tools/feature.xml
+++ b/org.eclipse.osbp.ide.feature.tools/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.ide.feature.tools"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.ide.tools.developer">
         
     <description>
         %description
diff --git a/org.eclipse.osbp.ide.feature.ui/.gitignore b/org.eclipse.osbp.ide.feature.ui/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.ui/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.feature.ui/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.feature.ui/feature.xml b/org.eclipse.osbp.ide.feature.ui/feature.xml
index b743200..ab41e71 100644
--- a/org.eclipse.osbp.ide.feature.ui/feature.xml
+++ b/org.eclipse.osbp.ide.feature.ui/feature.xml
@@ -14,7 +14,8 @@
         id="org.eclipse.osbp.ide.feature.ui"
         label="%featureName"
         version="0.9.0.qualifier"
-        provider-name="%providerName">
+        provider-name="%providerName"
+		plugin="org.eclipse.osbp.ide.core.ui">
         
     <description>
         %description
@@ -46,4 +47,4 @@
         version="0.0.0"
         unpack="false"/>
         
-</feature>
+</feature>
\ No newline at end of file
diff --git a/org.eclipse.osbp.ide.tools.developer/.classpath b/org.eclipse.osbp.ide.tools.developer/.classpath
new file mode 100644
index 0000000..b9a5b1e
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.tools.developer/.gitignore b/org.eclipse.osbp.ide.tools.developer/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.tools.developer/src/license/THIRD-PARTY.properties b/org.eclipse.osbp.ide.tools.developer/src/license/THIRD-PARTY.properties
new file mode 100644
index 0000000..84841b5
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.developer/src/license/THIRD-PARTY.properties
@@ -0,0 +1,41 @@
+# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
+#-------------------------------------------------------------------------------
+# Already used licenses in project :
+# - Apache License
+# - Apache License 2.0
+# - Apache License Version 2.0
+# - Apache License, Version 2.0
+# - Apache Software License - Version 2.0
+# - BSD License
+# - COMMON DEVELOPMENT AND DISTRIBUTION LICENSE
+#										(CDDL)
+#										Version
+#										1.0
+# - Commercial Vaadin Add-On License version 3.0
+# - Eclipse Public License - Version 1.0
+# - Eclipse Public License v1.0
+# - GNU LGPL 3
+# - GNU Lesser General Public License
+# - ICU License
+# - Indiana University Extreme! Lab Software
+#										License,
+#										vesion 1.1.1
+# - JSON License
+# - Lesser General Public License (LPGL)
+# - Lesser General Public License (LPGL) v 2.1
+# - MIT License
+# - The Apache Software License, Version 2.0
+# - The MIT License
+# - The SAX License
+# - The W3C License
+# - The W3C Software License
+# - W3C Software Copyright Notice and License
+#-------------------------------------------------------------------------------
+# Please fill the missing licenses for dependencies :
+#
+#
+#Wed Feb 25 15:17:21 CET 2015
+ant--ant-launcher--1.6.5=
+commons-collections--commons-collections--3.1=
+javax.servlet--servlet-api--2.5=
+org.jdesktop--swing-worker--1.1=
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror.product/.classpath b/org.eclipse.osbp.ide.tools.p2.mirror.product/.classpath
new file mode 100644
index 0000000..b9a5b1e
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror.product/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror.product/.gitignore b/org.eclipse.osbp.ide.tools.p2.mirror.product/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror.product/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror.product/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror/.classpath b/org.eclipse.osbp.ide.tools.p2.mirror/.classpath
new file mode 100644
index 0000000..b9a5b1e
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror/.gitignore b/org.eclipse.osbp.ide.tools.p2.mirror/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..f6a7c78
--- /dev/null
+++ b/org.eclipse.osbp.ide.tools.p2.mirror/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+BuilderConfiguration.is_project_specific=true
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/pom.xml b/pom.xml
index e2e3c5d..02fae28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,7 +40,6 @@
 
     <properties>
         <osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
-        <xtext.version>2.7.3</xtext.version>
     </properties>
 
     <modules>