diff --git a/gemoc_studio/tests/org.eclipse.gemoc.studio.tests.system.mwb/src/org/eclipse/gemoc/studio/tests/system/mwb/userstory/DeployOfficialExampleK3FSM_Test.xtend b/gemoc_studio/tests/org.eclipse.gemoc.studio.tests.system.mwb/src/org/eclipse/gemoc/studio/tests/system/mwb/userstory/DeployOfficialExampleK3FSM_Test.xtend
index d2e084fe..a1d613c1 100644
--- a/gemoc_studio/tests/org.eclipse.gemoc.studio.tests.system.mwb/src/org/eclipse/gemoc/studio/tests/system/mwb/userstory/DeployOfficialExampleK3FSM_Test.xtend
+++ b/gemoc_studio/tests/org.eclipse.gemoc.studio.tests.system.mwb/src/org/eclipse/gemoc/studio/tests/system/mwb/userstory/DeployOfficialExampleK3FSM_Test.xtend
@@ -136,7 +136,7 @@ class DeployOfficialExampleK3FSM_Test extends AbstractXtextTests
 		val newExampleBot = bot.shell("New Example").bot
 		newExampleBot.tree().getTreeItem("GEMOC modeling workbench examples").select();
 		newExampleBot.tree().getTreeItem("GEMOC modeling workbench examples").expand();
-		newExampleBot.tree().getTreeItem("GEMOC modeling workbench examples").getNode("GEMOC models for K3FSM Language (Sequential)").select();
+		newExampleBot.tree().getTreeItem("GEMOC modeling workbench examples").getNode("GEMOC models for K3FSM and EventK3FSM languages (Sequential)").select();
 	  	newExampleBot.button("Finish").click();
 	  
 		IResourcesSetupUtil::reallyWaitForAutoBuild
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.classpath
index eca7bdba..e801ebfb 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.classpath
@@ -1,6 +1,6 @@
 <?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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.settings/org.eclipse.jdt.core.prefs
index 87b7a7a3..a58ebdca 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/.settings/org.eclipse.jdt.core.prefs
@@ -1,13 +1,15 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/META-INF/MANIFEST.MF
index 24953f9e..a3a9b641 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.design/META-INF/MANIFEST.MF
@@ -14,7 +14,7 @@ Require-Bundle: org.eclipse.ui,
 Bundle-ManifestVersion: 2
 Bundle-Activator: org.eclipse.gemoc.example.k3fsm.design.Activator
 Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-Vendor: %providerName
 Import-Package: org.eclipse.gemoc.example.k3fsm
 Automatic-Module-Name: org.eclipse.gemoc.example.k3fsm.design
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.classpath
index 858bac42..e9c6eafb 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src-gen"/>
-	<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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..c9545f06
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/META-INF/MANIFEST.MF
index b570a68a..194c44d8 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.edit/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.gemoc.example.k3fsm.provider.K3fsmEditPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.gemoc.example.k3fsm.provider
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.gemoc.example.k3fsm;visibility:=reexport,
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.classpath
index 858bac42..e9c6eafb 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src-gen"/>
-	<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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..c9545f06
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/META-INF/MANIFEST.MF
index 40660ad4..4510a0ce 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.editor/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.gemoc.example.k3fsm.presentation.K3fsmEditorPlugin$Implementation
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.gemoc.example.k3fsm.presentation
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources;visibility:=reexport,
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.classpath
new file mode 100644
index 00000000..ad5e13cc
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.classpath
@@ -0,0 +1,8 @@
+<?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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.project b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.project
new file mode 100644
index 00000000..b8143891
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.project
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.gemoc.example.k3fsm.event.xdsml</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.gemoc.xdsmlframework.ide.ui.GemocLanguageProjectBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.gemoc.xdsmlframework.ide.ui.GemocLanguageProjectNature</nature>
+		<nature>org.eclipse.gemoc.execution.sequential.javaxdsml.ide.ui.GemocSequentialLanguageNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..c9545f06
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/EventK3fsm.dsl b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/EventK3fsm.dsl
new file mode 100644
index 00000000..ed03f2b2
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/EventK3fsm.dsl
@@ -0,0 +1,11 @@
+name = org.eclipse.gemoc.example.k3fsm.event.EventK3fsm
+ecore = platform:/resource/org.eclipse.gemoc.example.k3fsm/model/k3fsm.ecore
+k3 = org.eclipse.gemoc.example.k3fsm.k3dsa.FSMAspect, org.eclipse.gemoc.example.k3fsm.k3dsa.TransitionAspect, org.eclipse.gemoc.example.k3fsm.k3dsa.StateAspect, org.eclipse.gemoc.example.k3fsm.event.k3dsa.FSMAspect
+
+xtext = /org.eclipse.gemoc.example.k3fsm.xtext/bin/org/eclipse/gemoc/example/k3fsm/K3FSM.xtext
+
+sirius = /org.eclipse.gemoc.example.k3fsm.design/description/k3fsm.odesign
+
+metaprog = org.eclipse.gemoc.metaprog.kermeta3
+
+implementation_relationships = org.eclipse.gemoc.example.k3fsm.relationships.implementation_relationship
\ No newline at end of file
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..0580437e
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: org.eclipse.gemoc.example.k3fsm.event.xdsml
+Bundle-SymbolicName: org.eclipse.gemoc.example.k3fsm.event.xdsml; singleton:=true
+Bundle-Name: org.eclipse.gemoc.example.k3fsm.event.xdsml
+Bundle-Version: 1.0.0
+Bundle-ClassPath: .
+Require-Bundle: org.eclipse.xtend.lib;bundle-version="2.7.0";visibility:="private",
+ org.eclipse.xtext.xbase.lib;bundle-version="2.7.0";visibility:="private",
+ com.google.guava;bundle-version="0.0.0";visibility:="private",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.8.0";visibility:="reexport",
+ org.eclipse.emf.ecore;bundle-version="2.8.0";visibility:="reexport",
+ org.eclipse.emf.common;bundle-version="2.8.0";visibility:="reexport",
+ fr.inria.diverse.melange;bundle-version="0.1.0";visibility:="reexport",
+ fr.inria.diverse.melange.lib;bundle-version="0.1.0";visibility:="reexport",
+ fr.inria.diverse.melange.resource;bundle-version="0.1.0";visibility:="reexport",
+ fr.inria.diverse.melange.adapters;bundle-version="0.1.0";visibility:="reexport",
+ fr.inria.diverse.k3.al.annotationprocessor.plugin;bundle-version="0.0.0";visibility:="reexport",
+ org.eclipse.gemoc.xdsmlframework.api;bundle-version="4.0.0";visibility:="reexport",
+ org.eclipse.gemoc.executionframework.engine;bundle-version="4.0.0";visibility:="reexport",
+ org.eclipse.gemoc.executionframework.extensions.sirius;bundle-version="0.0.0";visibility:=reexport,
+ org.eclipse.gemoc.example.k3fsm;bundle-version="0.0.0";visibility:="reexport",
+ org.eclipse.gemoc.example.k3fsm.k3dsa;bundle-version="1.0.0",
+ org.eclipse.gemoc.example.k3fsm.event;bundle-version="1.0.0"
+Bundle-ManifestVersion: 2
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Bundle-ActivationPolicy: lazy
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/build.properties b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/build.properties
new file mode 100644
index 00000000..25f02116
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+           src-gen/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               EventK3fsm.dsl,\
+               .
\ No newline at end of file
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/plugin.xml b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/plugin.xml
new file mode 100644
index 00000000..7a039814
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/plugin.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+  <extension point="org.eclipse.gemoc.gemoc_language_workbench.xdsml">
+    <XDSML_Definition name="org.eclipse.gemoc.example.k3fsm.event.EventK3fsm" xdsmlFilePath="/org.eclipse.gemoc.example.k3fsm.event.xdsml/EventK3fsm.dsl" modelLoader_class="org.eclipse.gemoc.executionframework.extensions.sirius.modelloader.DefaultModelLoader" />
+  </extension>
+</plugin>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/src-gen/.gitkeep b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/src-gen/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/src/.gitkeep b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event.xdsml/src/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.classpath
new file mode 100644
index 00000000..47ce7cd0
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.classpath
@@ -0,0 +1,8 @@
+<?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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.project b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.project
new file mode 100644
index 00000000..36f25d1f
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.gemoc.example.k3fsm.event</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..c9545f06
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/K3Fsm.bi b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/K3Fsm.bi
new file mode 100644
index 00000000..77698961
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/K3Fsm.bi
@@ -0,0 +1,7 @@
+BehavioralInterface K3Fsm
+
+accepted event appendString :
+	parameters = [fsm:org.eclipse.gemoc.example.k3fsm.FSM, string:java.lang.String]
+
+exposed event transitionFired :
+	parameters = [_self:org.eclipse.gemoc.example.k3fsm.Transition]
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..2f5edd65
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: K3FSM Behavioral Interface
+Bundle-SymbolicName: org.eclipse.gemoc.example.k3fsm.event;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Automatic-Module-Name: org.eclipse.gemoc.example.k3fsm.event
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Require-Bundle: fr.inria.diverse.k3.al.annotationprocessor.plugin;bundle-version="3.3.0",
+ org.eclipse.gemoc.executionframework.event.manager,
+ org.eclipse.gemoc.executionframework.behavioralinterface;bundle-version="1.0.0",
+ org.eclipse.gemoc.executionframework.event.model;bundle-version="4.0.0",
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro,
+ org.eclipse.gemoc.example.k3fsm;bundle-version="0.1.0"
+Export-Package: org.eclipse.gemoc.example.k3fsm.event.k3dsa
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/build.properties b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/build.properties
new file mode 100644
index 00000000..e9863e28
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/plugin.xml b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/plugin.xml
new file mode 100644
index 00000000..b1d8aba2
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.gemoc.executionframework.event.implementationrelationship">
+      <implementation_relationship
+            class="org.eclipse.gemoc.example.k3fsm.event.K3FsmImplementationRelationship"
+            id="org.eclipse.gemoc.example.k3fsm.relationships.implementation_relationship"
+            name="K3Fsm Implementation Relationship">
+      </implementation_relationship>
+   </extension>
+
+</plugin>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/src/org/eclipse/gemoc/example/k3fsm/event/K3FsmImplementationRelationship.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/src/org/eclipse/gemoc/example/k3fsm/event/K3FsmImplementationRelationship.java
new file mode 100644
index 00000000..819fa918
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/src/org/eclipse/gemoc/example/k3fsm/event/K3FsmImplementationRelationship.java
@@ -0,0 +1,28 @@
+package org.eclipse.gemoc.example.k3fsm.event;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.gemoc.executionframework.behavioralinterface.behavioralInterface.BehavioralInterface;
+import org.eclipse.gemoc.executionframework.event.manager.IImplementationRelationship;
+import org.eclipse.gemoc.executionframework.event.manager.SimpleImplementationRelationship;
+
+public class K3FsmImplementationRelationship extends SimpleImplementationRelationship {
+
+	private static Map<String, String> computeEventToMethodMap() {
+		final Map<String, String> result = new HashMap<>();
+		result.put("appendString", "org.eclipse.gemoc.example.k3fsm.event.k3dsa.FSMAspect.appendStringToProcess");
+		result.put("transitionFired", "org.eclipse.gemoc.example.k3fsm.Transition.fire");
+		return result;
+	}
+	
+	public K3FsmImplementationRelationship() {
+		this(IImplementationRelationship.loadBehavioralInterface("platform:/plugin/org.eclipse.gemoc.example.k3fsm.event/K3Fsm.bi"));
+	}
+	
+	public K3FsmImplementationRelationship(BehavioralInterface behavioralInterface) {
+		super(behavioralInterface, Collections.emptySet(), computeEventToMethodMap(), "org.eclipse.gemoc.metaprog.kermeta3");
+	}
+
+}
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/src/org/eclipse/gemoc/example/k3fsm/event/k3dsa/k3fsmEventAspects.xtend b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/src/org/eclipse/gemoc/example/k3fsm/event/k3dsa/k3fsmEventAspects.xtend
new file mode 100644
index 00000000..eaf96d8c
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.event/src/org/eclipse/gemoc/example/k3fsm/event/k3dsa/k3fsmEventAspects.xtend
@@ -0,0 +1,16 @@
+package org.eclipse.gemoc.example.k3fsm.event.k3dsa
+
+import fr.inria.diverse.k3.al.annotationprocessor.Aspect
+import fr.inria.diverse.k3.al.annotationprocessor.Step
+import org.eclipse.gemoc.example.k3fsm.FSM
+
+@Aspect(className=FSM)
+class FSMAspect {
+	@Step
+	def void appendStringToProcess(String arg) {
+		val s = _self.unprocessedString
+		_self.unprocessedString = s + arg
+	}
+}
+
+
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.classpath
index 428337e5..47ce7cd0 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.classpath
@@ -1,6 +1,6 @@
 <?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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="xtend-gen"/>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.settings/org.eclipse.jdt.core.prefs
index 0c68a61d..7adc0fb9 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 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.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/META-INF/MANIFEST.MF
index c081d118..3c013e02 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.k3dsa/META-INF/MANIFEST.MF
@@ -14,4 +14,4 @@ Require-Bundle: fr.inria.diverse.k3.al.annotationprocessor.plugin;bundle-version
  org.eclipse.emf.common;bundle-version="2.8.0";visibility:="reexport",
  org.eclipse.gemoc.example.k3fsm;bundle-version="0.0.0";visibility:=private
 Bundle-ManifestVersion: 2
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.classpath
index f0c55498..ad5e13cc 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.classpath
@@ -1,6 +1,6 @@
 <?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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-gen"/>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.settings/org.eclipse.jdt.core.prefs
index 0c68a61d..7adc0fb9 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 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.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/META-INF/MANIFEST.MF
index 247d3714..c016c512 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xdsml/META-INF/MANIFEST.MF
@@ -21,5 +21,5 @@ Require-Bundle: org.eclipse.xtend.lib;bundle-version="2.7.0";visibility:="privat
  org.eclipse.gemoc.example.k3fsm;bundle-version="0.0.0";visibility:="reexport",
  org.eclipse.gemoc.example.k3fsm.k3dsa;bundle-version="1.0.0"
 Bundle-ManifestVersion: 2
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.classpath
index 9081d4f7..95cdcb12 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.classpath
@@ -1,9 +1,9 @@
 <?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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="src" path="xtend-gen"/>
-	<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="output" path="bin"/>
 </classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.gitignore b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.gitignore
new file mode 100644
index 00000000..87844fdc
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.gitignore
@@ -0,0 +1 @@
+/xtend-gen/
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.settings/org.eclipse.jdt.core.prefs
index 0c68a61d..7adc0fb9 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 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.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/META-INF/MANIFEST.MF
index a42cf945..f0784db3 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/META-INF/MANIFEST.MF
@@ -9,9 +9,8 @@ Require-Bundle: org.eclipse.gemoc.example.k3fsm.xtext,
  org.eclipse.gemoc.example.k3fsm,
  org.eclipse.xtext.ide,
  org.eclipse.xtext.xbase.ide,
- org.antlr.runtime
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+ org.antlr.runtime;bundle-version="[3.2.0,3.2.1)"
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.gemoc.example.k3fsm.ide.contentassist.antlr.internal,
  org.eclipse.gemoc.example.k3fsm.ide.contentassist.antlr
 Automatic-Module-Name: org.eclipse.gemoc.example.k3fsm.xtext.ide
-
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/AbstractK3FSMIdeModule.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/AbstractK3FSMIdeModule.java
index 543792a5..13b6ce0e 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/AbstractK3FSMIdeModule.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/AbstractK3FSMIdeModule.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.ide;
 
@@ -15,6 +15,9 @@
 import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.refactoring.IRenameStrategy2;
+import org.eclipse.xtext.ide.server.rename.IRenameService2;
+import org.eclipse.xtext.ide.server.rename.RenameService2;
 
 /**
  * Manual modifications go to {@link K3FSMIdeModule}.
@@ -44,4 +47,14 @@ public Class<? extends IPrefixMatcher> bindIPrefixMatcher() {
 		return FQNPrefixMatcher.class;
 	}
 	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public Class<? extends IRenameService2> bindIRenameService2() {
+		return RenameService2.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public Class<? extends IRenameStrategy2> bindIRenameStrategy2() {
+		return IRenameStrategy2.DefaultImpl.class;
+	}
+	
 }
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/K3FSMParser.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/K3FSMParser.java
index f9febc52..3c4af7d1 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/K3FSMParser.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/K3FSMParser.java
@@ -1,10 +1,11 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.ide.contentassist.antlr;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.inject.Inject;
-import java.util.HashMap;
+import com.google.inject.Singleton;
 import java.util.Map;
 import org.eclipse.gemoc.example.k3fsm.ide.contentassist.antlr.internal.InternalK3FSMParser;
 import org.eclipse.gemoc.example.k3fsm.services.K3FSMGrammarAccess;
@@ -13,10 +14,62 @@
 
 public class K3FSMParser extends AbstractContentAssistParser {
 
+	@Singleton
+	public static final class NameMappings {
+		
+		private final Map<AbstractElement, String> mappings;
+		
+		@Inject
+		public NameMappings(K3FSMGrammarAccess grammarAccess) {
+			ImmutableMap.Builder<AbstractElement, String> builder = ImmutableMap.builder();
+			init(builder, grammarAccess);
+			this.mappings = builder.build();
+		}
+		
+		public String getRuleName(AbstractElement element) {
+			return mappings.get(element);
+		}
+		
+		private static void init(ImmutableMap.Builder<AbstractElement, String> builder, K3FSMGrammarAccess grammarAccess) {
+			builder.put(grammarAccess.getEStringAccess().getAlternatives(), "rule__EString__Alternatives");
+			builder.put(grammarAccess.getFSMAccess().getGroup(), "rule__FSM__Group__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_3(), "rule__FSM__Group_3__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_4(), "rule__FSM__Group_4__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_5(), "rule__FSM__Group_5__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_8(), "rule__FSM__Group_8__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_9(), "rule__FSM__Group_9__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_10(), "rule__FSM__Group_10__0");
+			builder.put(grammarAccess.getFSMAccess().getGroup_10_3(), "rule__FSM__Group_10_3__0");
+			builder.put(grammarAccess.getStateAccess().getGroup(), "rule__State__Group__0");
+			builder.put(grammarAccess.getStateAccess().getGroup_4(), "rule__State__Group_4__0");
+			builder.put(grammarAccess.getStateAccess().getGroup_4_3(), "rule__State__Group_4_3__0");
+			builder.put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0");
+			builder.put(grammarAccess.getTransitionAccess().getGroup_3(), "rule__Transition__Group_3__0");
+			builder.put(grammarAccess.getTransitionAccess().getGroup_4(), "rule__Transition__Group_4__0");
+			builder.put(grammarAccess.getFSMAccess().getNameAssignment_1(), "rule__FSM__NameAssignment_1");
+			builder.put(grammarAccess.getFSMAccess().getUnprocessedStringAssignment_3_1(), "rule__FSM__UnprocessedStringAssignment_3_1");
+			builder.put(grammarAccess.getFSMAccess().getConsummedStringAssignment_4_1(), "rule__FSM__ConsummedStringAssignment_4_1");
+			builder.put(grammarAccess.getFSMAccess().getProducedStringAssignment_5_1(), "rule__FSM__ProducedStringAssignment_5_1");
+			builder.put(grammarAccess.getFSMAccess().getInitialStateAssignment_7(), "rule__FSM__InitialStateAssignment_7");
+			builder.put(grammarAccess.getFSMAccess().getFinalStateAssignment_8_1(), "rule__FSM__FinalStateAssignment_8_1");
+			builder.put(grammarAccess.getFSMAccess().getCurrentStateAssignment_9_1(), "rule__FSM__CurrentStateAssignment_9_1");
+			builder.put(grammarAccess.getFSMAccess().getOwnedStatesAssignment_10_2(), "rule__FSM__OwnedStatesAssignment_10_2");
+			builder.put(grammarAccess.getFSMAccess().getOwnedStatesAssignment_10_3_1(), "rule__FSM__OwnedStatesAssignment_10_3_1");
+			builder.put(grammarAccess.getStateAccess().getNameAssignment_2(), "rule__State__NameAssignment_2");
+			builder.put(grammarAccess.getStateAccess().getOutgoingTransitionsAssignment_4_2(), "rule__State__OutgoingTransitionsAssignment_4_2");
+			builder.put(grammarAccess.getStateAccess().getOutgoingTransitionsAssignment_4_3_1(), "rule__State__OutgoingTransitionsAssignment_4_3_1");
+			builder.put(grammarAccess.getTransitionAccess().getNameAssignment_1(), "rule__Transition__NameAssignment_1");
+			builder.put(grammarAccess.getTransitionAccess().getInputAssignment_3_1(), "rule__Transition__InputAssignment_3_1");
+			builder.put(grammarAccess.getTransitionAccess().getOutputAssignment_4_1(), "rule__Transition__OutputAssignment_4_1");
+			builder.put(grammarAccess.getTransitionAccess().getTargetAssignment_6(), "rule__Transition__TargetAssignment_6");
+		}
+	}
+	
 	@Inject
-	private K3FSMGrammarAccess grammarAccess;
+	private NameMappings nameMappings;
 
-	private Map<AbstractElement, String> nameMappings;
+	@Inject
+	private K3FSMGrammarAccess grammarAccess;
 
 	@Override
 	protected InternalK3FSMParser createParser() {
@@ -27,47 +80,9 @@ protected InternalK3FSMParser createParser() {
 
 	@Override
 	protected String getRuleName(AbstractElement element) {
-		if (nameMappings == null) {
-			nameMappings = new HashMap<AbstractElement, String>() {
-				private static final long serialVersionUID = 1L;
-				{
-					put(grammarAccess.getEStringAccess().getAlternatives(), "rule__EString__Alternatives");
-					put(grammarAccess.getFSMAccess().getGroup(), "rule__FSM__Group__0");
-					put(grammarAccess.getFSMAccess().getGroup_3(), "rule__FSM__Group_3__0");
-					put(grammarAccess.getFSMAccess().getGroup_4(), "rule__FSM__Group_4__0");
-					put(grammarAccess.getFSMAccess().getGroup_5(), "rule__FSM__Group_5__0");
-					put(grammarAccess.getFSMAccess().getGroup_8(), "rule__FSM__Group_8__0");
-					put(grammarAccess.getFSMAccess().getGroup_9(), "rule__FSM__Group_9__0");
-					put(grammarAccess.getFSMAccess().getGroup_10(), "rule__FSM__Group_10__0");
-					put(grammarAccess.getFSMAccess().getGroup_10_3(), "rule__FSM__Group_10_3__0");
-					put(grammarAccess.getStateAccess().getGroup(), "rule__State__Group__0");
-					put(grammarAccess.getStateAccess().getGroup_4(), "rule__State__Group_4__0");
-					put(grammarAccess.getStateAccess().getGroup_4_3(), "rule__State__Group_4_3__0");
-					put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0");
-					put(grammarAccess.getTransitionAccess().getGroup_3(), "rule__Transition__Group_3__0");
-					put(grammarAccess.getTransitionAccess().getGroup_4(), "rule__Transition__Group_4__0");
-					put(grammarAccess.getFSMAccess().getNameAssignment_1(), "rule__FSM__NameAssignment_1");
-					put(grammarAccess.getFSMAccess().getUnprocessedStringAssignment_3_1(), "rule__FSM__UnprocessedStringAssignment_3_1");
-					put(grammarAccess.getFSMAccess().getConsummedStringAssignment_4_1(), "rule__FSM__ConsummedStringAssignment_4_1");
-					put(grammarAccess.getFSMAccess().getProducedStringAssignment_5_1(), "rule__FSM__ProducedStringAssignment_5_1");
-					put(grammarAccess.getFSMAccess().getInitialStateAssignment_7(), "rule__FSM__InitialStateAssignment_7");
-					put(grammarAccess.getFSMAccess().getFinalStateAssignment_8_1(), "rule__FSM__FinalStateAssignment_8_1");
-					put(grammarAccess.getFSMAccess().getCurrentStateAssignment_9_1(), "rule__FSM__CurrentStateAssignment_9_1");
-					put(grammarAccess.getFSMAccess().getOwnedStatesAssignment_10_2(), "rule__FSM__OwnedStatesAssignment_10_2");
-					put(grammarAccess.getFSMAccess().getOwnedStatesAssignment_10_3_1(), "rule__FSM__OwnedStatesAssignment_10_3_1");
-					put(grammarAccess.getStateAccess().getNameAssignment_2(), "rule__State__NameAssignment_2");
-					put(grammarAccess.getStateAccess().getOutgoingTransitionsAssignment_4_2(), "rule__State__OutgoingTransitionsAssignment_4_2");
-					put(grammarAccess.getStateAccess().getOutgoingTransitionsAssignment_4_3_1(), "rule__State__OutgoingTransitionsAssignment_4_3_1");
-					put(grammarAccess.getTransitionAccess().getNameAssignment_1(), "rule__Transition__NameAssignment_1");
-					put(grammarAccess.getTransitionAccess().getInputAssignment_3_1(), "rule__Transition__InputAssignment_3_1");
-					put(grammarAccess.getTransitionAccess().getOutputAssignment_4_1(), "rule__Transition__OutputAssignment_4_1");
-					put(grammarAccess.getTransitionAccess().getTargetAssignment_6(), "rule__Transition__TargetAssignment_6");
-				}
-			};
-		}
-		return nameMappings.get(element);
+		return nameMappings.getRuleName(element);
 	}
-			
+
 	@Override
 	protected String[] getInitialHiddenTokens() {
 		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
@@ -80,4 +95,12 @@ public K3FSMGrammarAccess getGrammarAccess() {
 	public void setGrammarAccess(K3FSMGrammarAccess grammarAccess) {
 		this.grammarAccess = grammarAccess;
 	}
+	
+	public NameMappings getNameMappings() {
+		return nameMappings;
+	}
+	
+	public void setNameMappings(NameMappings nameMappings) {
+		this.nameMappings = nameMappings;
+	}
 }
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/PartialK3FSMContentAssistParser.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/PartialK3FSMContentAssistParser.java
index 96644178..c04718ec 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/PartialK3FSMContentAssistParser.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/PartialK3FSMContentAssistParser.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.ide.contentassist.antlr;
 
@@ -8,10 +8,9 @@
 import org.eclipse.xtext.AbstractRule;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
 import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
-import org.eclipse.xtext.ide.editor.partialEditing.IPartialEditingContentAssistParser;
 import org.eclipse.xtext.util.PolymorphicDispatcher;
 
-public class PartialK3FSMContentAssistParser extends K3FSMParser implements IPartialEditingContentAssistParser {
+public class PartialK3FSMContentAssistParser extends K3FSMParser {
 
 	private AbstractRule rule;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/internal/InternalK3FSM.g b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/internal/InternalK3FSM.g
index 75bb450b..b162b611 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/internal/InternalK3FSM.g
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ide/src-gen/org/eclipse/gemoc/example/k3fsm/ide/contentassist/antlr/internal/InternalK3FSM.g
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 grammar InternalK3FSM;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/.gitignore b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/.gitignore
new file mode 100644
index 00000000..87844fdc
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/.gitignore
@@ -0,0 +1 @@
+/xtend-gen/
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/META-INF/MANIFEST.MF
index 8be0e6eb..20e9a8c3 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/META-INF/MANIFEST.MF
@@ -16,10 +16,10 @@ Require-Bundle: org.eclipse.gemoc.example.k3fsm.xtext,
  org.eclipse.ui,
  org.eclipse.compare,
  org.eclipse.xtext.builder,
- org.eclipse.xtend.lib;resolution:=optional,
- org.eclipse.xtext.xbase.lib
+ org.eclipse.xtend.lib;bundle-version="2.14.0";resolution:=optional,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.14.0"
 Import-Package: org.apache.log4j
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.gemoc.example.k3fsm.xtext.ui.internal,
  org.eclipse.gemoc.example.k3fsm.ui.quickfix,
  org.eclipse.gemoc.example.k3fsm.ui.contentassist
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/AbstractK3FSMUiModule.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/AbstractK3FSMUiModule.java
index 501b4dd6..ca52ad41 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/AbstractK3FSMUiModule.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/AbstractK3FSMUiModule.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.ui;
 
@@ -222,6 +222,13 @@ public Class<? extends IContentProposalProvider> bindIContentProposalProvider()
 		return K3FSMProposalProvider.class;
 	}
 	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public void configureIPreferenceStoreInitializer(Binder binder) {
+		binder.bind(IPreferenceStoreInitializer.class)
+			.annotatedWith(Names.named("RefactoringPreferences"))
+			.to(RefactoringPreferences.Initializer.class);
+	}
+	
 	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
 	public Class<? extends IRenameStrategy> bindIRenameStrategy() {
 		return DefaultRenameStrategy.class;
@@ -232,13 +239,6 @@ public Class<? extends IReferenceUpdater> bindIReferenceUpdater() {
 		return DefaultReferenceUpdater.class;
 	}
 	
-	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
-	public void configureIPreferenceStoreInitializer(Binder binder) {
-		binder.bind(IPreferenceStoreInitializer.class)
-			.annotatedWith(Names.named("RefactoringPreferences"))
-			.to(RefactoringPreferences.Initializer.class);
-	}
-	
 	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
 	public Class<? extends IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
 		return DefaultRenameRefactoringProvider.class;
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/K3FSMExecutableExtensionFactory.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/K3FSMExecutableExtensionFactory.java
index 52d6daac..438fb3eb 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/K3FSMExecutableExtensionFactory.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/K3FSMExecutableExtensionFactory.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.ui;
 
@@ -7,6 +7,7 @@
 import org.eclipse.gemoc.example.k3fsm.xtext.ui.internal.XtextActivator;
 import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
 
 /**
  * This class was generated. Customizations should only happen in a newly
@@ -16,12 +17,13 @@ public class K3FSMExecutableExtensionFactory extends AbstractGuiceAwareExecutabl
 
 	@Override
 	protected Bundle getBundle() {
-		return XtextActivator.getInstance().getBundle();
+		return FrameworkUtil.getBundle(XtextActivator.class);
 	}
 	
 	@Override
 	protected Injector getInjector() {
-		return XtextActivator.getInstance().getInjector(XtextActivator.ORG_ECLIPSE_GEMOC_EXAMPLE_K3FSM_K3FSM);
+		XtextActivator activator = XtextActivator.getInstance();
+		return activator != null ? activator.getInjector(XtextActivator.ORG_ECLIPSE_GEMOC_EXAMPLE_K3FSM_K3FSM) : null;
 	}
-	
+
 }
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/contentassist/AbstractK3FSMProposalProvider.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/contentassist/AbstractK3FSMProposalProvider.java
index bea1a335..9369cdff 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/contentassist/AbstractK3FSMProposalProvider.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/ui/contentassist/AbstractK3FSMProposalProvider.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.ui.contentassist;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/xtext/ui/internal/XtextActivator.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/xtext/ui/internal/XtextActivator.java
index a9acf1f0..de92d96f 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/xtext/ui/internal/XtextActivator.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext.ui/src-gen/org/eclipse/gemoc/example/k3fsm/xtext/ui/internal/XtextActivator.java
@@ -1,12 +1,11 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.xtext.ui.internal;
 
 import com.google.common.collect.Maps;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
-import com.google.inject.Module;
 import java.util.Collections;
 import java.util.Map;
 import org.apache.log4j.Logger;
@@ -23,6 +22,7 @@
  */
 public class XtextActivator extends AbstractUIPlugin {
 
+	public static final String PLUGIN_ID = "org.eclipse.gemoc.example.k3fsm.xtext.ui";
 	public static final String ORG_ECLIPSE_GEMOC_EXAMPLE_K3FSM_K3FSM = "org.eclipse.gemoc.example.k3fsm.K3FSM";
 	
 	private static final Logger logger = Logger.getLogger(XtextActivator.class);
@@ -60,10 +60,10 @@ public Injector getInjector(String language) {
 	
 	protected Injector createInjector(String language) {
 		try {
-			Module runtimeModule = getRuntimeModule(language);
-			Module sharedStateModule = getSharedStateModule();
-			Module uiModule = getUiModule(language);
-			Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+			com.google.inject.Module runtimeModule = getRuntimeModule(language);
+			com.google.inject.Module sharedStateModule = getSharedStateModule();
+			com.google.inject.Module uiModule = getUiModule(language);
+			com.google.inject.Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
 			return Guice.createInjector(mergedModule);
 		} catch (Exception e) {
 			logger.error("Failed to create injector for " + language);
@@ -72,22 +72,23 @@ protected Injector createInjector(String language) {
 		}
 	}
 	
-	protected Module getRuntimeModule(String grammar) {
+	protected com.google.inject.Module getRuntimeModule(String grammar) {
 		if (ORG_ECLIPSE_GEMOC_EXAMPLE_K3FSM_K3FSM.equals(grammar)) {
 			return new K3FSMRuntimeModule();
 		}
 		throw new IllegalArgumentException(grammar);
 	}
 	
-	protected Module getUiModule(String grammar) {
+	protected com.google.inject.Module getUiModule(String grammar) {
 		if (ORG_ECLIPSE_GEMOC_EXAMPLE_K3FSM_K3FSM.equals(grammar)) {
 			return new K3FSMUiModule(this);
 		}
 		throw new IllegalArgumentException(grammar);
 	}
 	
-	protected Module getSharedStateModule() {
+	protected com.google.inject.Module getSharedStateModule() {
 		return new SharedStateModule();
 	}
 	
+	
 }
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.classpath
index 9081d4f7..95cdcb12 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.classpath
@@ -1,9 +1,9 @@
 <?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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="src" path="xtend-gen"/>
-	<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="output" path="bin"/>
 </classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.settings/org.eclipse.jdt.core.prefs
index 0c68a61d..7adc0fb9 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 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.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/META-INF/MANIFEST.MF
index 95647c99..14ade1af 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/META-INF/MANIFEST.MF
@@ -9,11 +9,11 @@ Require-Bundle: org.eclipse.gemoc.example.k3fsm,
  org.eclipse.xtext,
  org.eclipse.xtext.xbase,
  org.eclipse.equinox.common;bundle-version="3.5.0",
- org.eclipse.xtext.xbase.lib,
- org.antlr.runtime,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.14.0",
+ org.antlr.runtime;bundle-version="[3.2.0,3.2.1)",
  org.eclipse.xtext.util,
- org.eclipse.xtend.lib
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+ org.eclipse.xtend.lib;bundle-version="2.14.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.gemoc.example.k3fsm.formatting2,
  org.eclipse.gemoc.example.k3fsm,
  org.eclipse.gemoc.example.k3fsm.parser.antlr.internal,
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/AbstractK3FSMRuntimeModule.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/AbstractK3FSMRuntimeModule.java
index 3690e1e3..f3a8ae5e 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/AbstractK3FSMRuntimeModule.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/AbstractK3FSMRuntimeModule.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/K3FSMStandaloneSetupGenerated.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/K3FSMStandaloneSetupGenerated.java
index 781c45b9..efbabbef 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/K3FSMStandaloneSetupGenerated.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/K3FSMStandaloneSetupGenerated.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMAntlrTokenFileProvider.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMAntlrTokenFileProvider.java
index e7b8a952..4e0190d1 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMAntlrTokenFileProvider.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMAntlrTokenFileProvider.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.parser.antlr;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMParser.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMParser.java
index 3a6048a6..d08e3f5a 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMParser.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/K3FSMParser.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.parser.antlr;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/internal/InternalK3FSM.g b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/internal/InternalK3FSM.g
index b702a59e..e0a0a42e 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/internal/InternalK3FSM.g
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/parser/antlr/internal/InternalK3FSM.g
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 grammar InternalK3FSM;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/scoping/AbstractK3FSMScopeProvider.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/scoping/AbstractK3FSMScopeProvider.java
index 51c85df1..9b4e6958 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/scoping/AbstractK3FSMScopeProvider.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/scoping/AbstractK3FSMScopeProvider.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.scoping;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSemanticSequencer.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSemanticSequencer.java
index 0c94f183..25591495 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSemanticSequencer.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSemanticSequencer.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.serializer;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSyntacticSequencer.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSyntacticSequencer.java
index 1081bf4c..d9f5ceb6 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSyntacticSequencer.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/serializer/K3FSMSyntacticSequencer.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.serializer;
 
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/services/K3FSMGrammarAccess.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/services/K3FSMGrammarAccess.java
index 9804626a..910360a4 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/services/K3FSMGrammarAccess.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/services/K3FSMGrammarAccess.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.services;
 
@@ -18,11 +18,11 @@
 import org.eclipse.xtext.RuleCall;
 import org.eclipse.xtext.TerminalRule;
 import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
-import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
+import org.eclipse.xtext.service.AbstractElementFinder;
 import org.eclipse.xtext.service.GrammarProvider;
 
 @Singleton
-public class K3FSMGrammarAccess extends AbstractGrammarElementFinder {
+public class K3FSMGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
 	
 	public class FSMElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.gemoc.example.k3fsm.K3FSM.FSM");
@@ -69,20 +69,31 @@ public class FSMElements extends AbstractParserRuleElementFinder {
 		private final Keyword cRightCurlyBracketKeyword_10_4 = (Keyword)cGroup_10.eContents().get(4);
 		private final Keyword cRightCurlyBracketKeyword_11 = (Keyword)cGroup.eContents().get(11);
 		
-		//FSM:
-		//	'FSM'
-		//	name=EString
-		//	'{' ('unprocessedString' unprocessedString=EString)? ('consummedString' consummedString=EString)? ('producedString'
-		//	producedString=EString)?
-		//	'initialState' initialState=[State|EString] ('finalState' finalState=[State|EString])? ('currentState'
-		//	currentState=[State|EString])? ('ownedStates' '{' ownedStates+=State ("," ownedStates+=State)* '}')?
-		//	'}';
+		//FSM returns FSM:
+		//    'FSM'
+		//    name=EString
+		//    '{'
+		//        ('unprocessedString' unprocessedString=EString)?
+		//        ('consummedString' consummedString=EString)?
+		//        ('producedString' producedString=EString)?
+		//        'initialState' initialState=[State|EString]
+		//        ('finalState' finalState=[State|EString])?
+		//        ('currentState' currentState=[State|EString])?
+		//        ('ownedStates' '{' ownedStates+=State ( "," ownedStates+=State)* '}' )?
+		//    '}';
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'FSM' name=EString '{' ('unprocessedString' unprocessedString=EString)? ('consummedString' consummedString=EString)?
-		//('producedString' producedString=EString)? 'initialState' initialState=[State|EString] ('finalState'
-		//finalState=[State|EString])? ('currentState' currentState=[State|EString])? ('ownedStates' '{' ownedStates+=State (","
-		//ownedStates+=State)* '}')? '}'
+		//'FSM'
+		//name=EString
+		//'{'
+		//    ('unprocessedString' unprocessedString=EString)?
+		//    ('consummedString' consummedString=EString)?
+		//    ('producedString' producedString=EString)?
+		//    'initialState' initialState=[State|EString]
+		//    ('finalState' finalState=[State|EString])?
+		//    ('currentState' currentState=[State|EString])?
+		//    ('ownedStates' '{' ownedStates+=State ( "," ownedStates+=State)* '}' )?
+		//'}'
 		public Group getGroup() { return cGroup; }
 		
 		//'FSM'
@@ -175,7 +186,7 @@ public class FSMElements extends AbstractParserRuleElementFinder {
 		//EString
 		public RuleCall getCurrentStateStateEStringParserRuleCall_9_1_0_1() { return cCurrentStateStateEStringParserRuleCall_9_1_0_1; }
 		
-		//('ownedStates' '{' ownedStates+=State ("," ownedStates+=State)* '}')?
+		//('ownedStates' '{' ownedStates+=State ( "," ownedStates+=State)* '}' )?
 		public Group getGroup_10() { return cGroup_10; }
 		
 		//'ownedStates'
@@ -190,7 +201,7 @@ public class FSMElements extends AbstractParserRuleElementFinder {
 		//State
 		public RuleCall getOwnedStatesStateParserRuleCall_10_2_0() { return cOwnedStatesStateParserRuleCall_10_2_0; }
 		
-		//("," ownedStates+=State)*
+		//( "," ownedStates+=State)*
 		public Group getGroup_10_3() { return cGroup_10_3; }
 		
 		//","
@@ -214,8 +225,8 @@ public class EStringElements extends AbstractParserRuleElementFinder {
 		private final RuleCall cSTRINGTerminalRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
 		private final RuleCall cIDTerminalRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
 		
-		//EString:
-		//	STRING | ID;
+		//EString returns ecore::EString:
+		//    STRING | ID;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//STRING | ID
@@ -247,16 +258,23 @@ public class StateElements extends AbstractParserRuleElementFinder {
 		private final Keyword cRightCurlyBracketKeyword_4_4 = (Keyword)cGroup_4.eContents().get(4);
 		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
 		
-		//State:
-		//	{State}
-		//	'State'
-		//	name=EString
-		//	'{' ('outgoingTransitions' '{' outgoingTransitions+=Transition ("," outgoingTransitions+=Transition)* '}')?
-		//	'}';
+		//State returns State:
+		//    {State}
+		//    'State'
+		//    name=EString
+		//    '{'
+		//        //('incomingTransitions' '(' incomingTransitions+=[Transition|EString] ( "," incomingTransitions+=[Transition|EString])* ')' )?
+		//        ('outgoingTransitions' '{' outgoingTransitions+=Transition ( "," outgoingTransitions+=Transition)* '}' )?
+		//    '}';
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{State} 'State' name=EString '{' ('outgoingTransitions' '{' outgoingTransitions+=Transition (","
-		//outgoingTransitions+=Transition)* '}')? '}'
+		//{State}
+		//'State'
+		//name=EString
+		//'{'
+		//    //('incomingTransitions' '(' incomingTransitions+=[Transition|EString] ( "," incomingTransitions+=[Transition|EString])* ')' )?
+		//    ('outgoingTransitions' '{' outgoingTransitions+=Transition ( "," outgoingTransitions+=Transition)* '}' )?
+		//'}'
 		public Group getGroup() { return cGroup; }
 		
 		//{State}
@@ -274,7 +292,8 @@ public class StateElements extends AbstractParserRuleElementFinder {
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 		
-		//('outgoingTransitions' '{' outgoingTransitions+=Transition ("," outgoingTransitions+=Transition)* '}')?
+		////('incomingTransitions' '(' incomingTransitions+=[Transition|EString] ( "," incomingTransitions+=[Transition|EString])* ')' )?
+		//('outgoingTransitions' '{' outgoingTransitions+=Transition ( "," outgoingTransitions+=Transition)* '}' )?
 		public Group getGroup_4() { return cGroup_4; }
 		
 		//'outgoingTransitions'
@@ -289,7 +308,7 @@ public class StateElements extends AbstractParserRuleElementFinder {
 		//Transition
 		public RuleCall getOutgoingTransitionsTransitionParserRuleCall_4_2_0() { return cOutgoingTransitionsTransitionParserRuleCall_4_2_0; }
 		
-		//("," outgoingTransitions+=Transition)*
+		//( "," outgoingTransitions+=Transition)*
 		public Group getGroup_4_3() { return cGroup_4_3; }
 		
 		//","
@@ -328,15 +347,23 @@ public class TransitionElements extends AbstractParserRuleElementFinder {
 		private final RuleCall cTargetStateEStringParserRuleCall_6_0_1 = (RuleCall)cTargetStateCrossReference_6_0.eContents().get(1);
 		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
 		
-		//Transition:
-		//	'Transition'
-		//	name=EString
-		//	'{' ('input' input=EString)? ('output' output=EString)?
-		//	'target' target=[State|EString]
-		//	'}';
+		//Transition returns Transition:
+		//    'Transition'
+		//    name=EString
+		//    '{'
+		//        ('input' input=EString)?
+		//        ('output' output=EString)?
+		//        'target' target=[State|EString]
+		//    '}';
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'Transition' name=EString '{' ('input' input=EString)? ('output' output=EString)? 'target' target=[State|EString] '}'
+		//'Transition'
+		//name=EString
+		//'{'
+		//    ('input' input=EString)?
+		//    ('output' output=EString)?
+		//    'target' target=[State|EString]
+		//'}'
 		public Group getGroup() { return cGroup; }
 		
 		//'Transition'
@@ -439,14 +466,18 @@ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
 	}
 
 	
-	//FSM:
-	//	'FSM'
-	//	name=EString
-	//	'{' ('unprocessedString' unprocessedString=EString)? ('consummedString' consummedString=EString)? ('producedString'
-	//	producedString=EString)?
-	//	'initialState' initialState=[State|EString] ('finalState' finalState=[State|EString])? ('currentState'
-	//	currentState=[State|EString])? ('ownedStates' '{' ownedStates+=State ("," ownedStates+=State)* '}')?
-	//	'}';
+	//FSM returns FSM:
+	//    'FSM'
+	//    name=EString
+	//    '{'
+	//        ('unprocessedString' unprocessedString=EString)?
+	//        ('consummedString' consummedString=EString)?
+	//        ('producedString' producedString=EString)?
+	//        'initialState' initialState=[State|EString]
+	//        ('finalState' finalState=[State|EString])?
+	//        ('currentState' currentState=[State|EString])?
+	//        ('ownedStates' '{' ownedStates+=State ( "," ownedStates+=State)* '}' )?
+	//    '}';
 	public FSMElements getFSMAccess() {
 		return pFSM;
 	}
@@ -455,8 +486,8 @@ public ParserRule getFSMRule() {
 		return getFSMAccess().getRule();
 	}
 	
-	//EString:
-	//	STRING | ID;
+	//EString returns ecore::EString:
+	//    STRING | ID;
 	public EStringElements getEStringAccess() {
 		return pEString;
 	}
@@ -465,12 +496,14 @@ public ParserRule getEStringRule() {
 		return getEStringAccess().getRule();
 	}
 	
-	//State:
-	//	{State}
-	//	'State'
-	//	name=EString
-	//	'{' ('outgoingTransitions' '{' outgoingTransitions+=Transition ("," outgoingTransitions+=Transition)* '}')?
-	//	'}';
+	//State returns State:
+	//    {State}
+	//    'State'
+	//    name=EString
+	//    '{'
+	//        //('incomingTransitions' '(' incomingTransitions+=[Transition|EString] ( "," incomingTransitions+=[Transition|EString])* ')' )?
+	//        ('outgoingTransitions' '{' outgoingTransitions+=Transition ( "," outgoingTransitions+=Transition)* '}' )?
+	//    '}';
 	public StateElements getStateAccess() {
 		return pState;
 	}
@@ -479,12 +512,14 @@ public ParserRule getStateRule() {
 		return getStateAccess().getRule();
 	}
 	
-	//Transition:
-	//	'Transition'
-	//	name=EString
-	//	'{' ('input' input=EString)? ('output' output=EString)?
-	//	'target' target=[State|EString]
-	//	'}';
+	//Transition returns Transition:
+	//    'Transition'
+	//    name=EString
+	//    '{'
+	//        ('input' input=EString)?
+	//        ('output' output=EString)?
+	//        'target' target=[State|EString]
+	//    '}';
 	public TransitionElements getTransitionAccess() {
 		return pTransition;
 	}
@@ -493,45 +528,40 @@ public ParserRule getTransitionRule() {
 		return getTransitionAccess().getRule();
 	}
 	
-	//terminal ID:
-	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
+	//terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
 	public TerminalRule getIDRule() {
 		return gaTerminals.getIDRule();
 	}
 	
-	//terminal INT returns ecore::EInt:
-	//	'0'..'9'+;
+	//terminal INT returns ecore::EInt: ('0'..'9')+;
 	public TerminalRule getINTRule() {
 		return gaTerminals.getINTRule();
 	}
 	
 	//terminal STRING:
-	//	'"' ('\\' . | !('\\' | '"'))* '"' |
-	//	"'" ('\\' . | !('\\' | "'"))* "'";
+	//            '"' ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|'"') )* '"' |
+	//            "'" ( '\\' . /* 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' */ | !('\\'|"'") )* "'"
+	//        ;
 	public TerminalRule getSTRINGRule() {
 		return gaTerminals.getSTRINGRule();
 	}
 	
-	//terminal ML_COMMENT:
-	//	'/*'->'*/';
+	//terminal ML_COMMENT : '/*' -> '*/';
 	public TerminalRule getML_COMMENTRule() {
 		return gaTerminals.getML_COMMENTRule();
 	}
 	
-	//terminal SL_COMMENT:
-	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
+	//terminal SL_COMMENT : '//' !('\n'|'\r')* ('\r'? '\n')?;
 	public TerminalRule getSL_COMMENTRule() {
 		return gaTerminals.getSL_COMMENTRule();
 	}
 	
-	//terminal WS:
-	//	' ' | '\t' | '\r' | '\n'+;
+	//terminal WS         : (' '|'\t'|'\r'|'\n')+;
 	public TerminalRule getWSRule() {
 		return gaTerminals.getWSRule();
 	}
 	
-	//terminal ANY_OTHER:
-	//	.;
+	//terminal ANY_OTHER: .;
 	public TerminalRule getANY_OTHERRule() {
 		return gaTerminals.getANY_OTHERRule();
 	}
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/validation/AbstractK3FSMValidator.java b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/validation/AbstractK3FSMValidator.java
index 07c96673..f2860f3f 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/validation/AbstractK3FSMValidator.java
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm.xtext/src-gen/org/eclipse/gemoc/example/k3fsm/validation/AbstractK3FSMValidator.java
@@ -1,5 +1,5 @@
 /*
- * generated by Xtext 2.12.0
+ * generated by Xtext 2.25.0
  */
 package org.eclipse.gemoc.example.k3fsm.validation;
 
@@ -16,5 +16,4 @@ protected List<EPackage> getEPackages() {
 		result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/gemoc/example/k3fsm"));
 		return result;
 	}
-	
 }
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.classpath b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.classpath
index 8dd013af..bb642933 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.classpath
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.classpath
@@ -1,8 +1,8 @@
 <?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-11"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="src" path="src"/>
-	<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="output" path="bin"/>
 </classpath>
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.settings/org.eclipse.jdt.core.prefs b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..c9545f06
--- /dev/null
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/META-INF/MANIFEST.MF b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/META-INF/MANIFEST.MF
index 647534bf..3918d3d3 100644
--- a/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/META-INF/MANIFEST.MF
+++ b/official_samples/K3FSM/language_workbench/org.eclipse.gemoc.example.k3fsm/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@ Bundle-Version: 0.1.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Export-Package: org.eclipse.gemoc.example.k3fsm,
  org.eclipse.gemoc.example.k3fsm.impl,
  org.eclipse.gemoc.example.k3fsm.util
diff --git a/official_samples/K3FSM/language_workbench/pom.xml b/official_samples/K3FSM/language_workbench/pom.xml
index aecd7ac2..90e62a31 100644
--- a/official_samples/K3FSM/language_workbench/pom.xml
+++ b/official_samples/K3FSM/language_workbench/pom.xml
@@ -22,6 +22,8 @@
         <module>org.eclipse.gemoc.example.k3fsm.design</module>
         <module>org.eclipse.gemoc.example.k3fsm.edit</module>
         <module>org.eclipse.gemoc.example.k3fsm.editor</module>
+        <module>org.eclipse.gemoc.example.k3fsm.event</module>
+        <module>org.eclipse.gemoc.example.k3fsm.event.xdsml</module>
         <module>org.eclipse.gemoc.example.k3fsm.k3dsa</module>
         <module>org.eclipse.gemoc.example.k3fsm.xdsml</module>
         <module>org.eclipse.gemoc.example.k3fsm.xtext</module>
@@ -45,4 +47,4 @@
 			<url>${melange.p2.url}</url>
 		</repository>
 	</repositories>
-</project>
\ No newline at end of file
+</project>
diff --git a/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/EventK3FSM - TwoStatesUpcast(abababa).launch b/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/EventK3FSM - TwoStatesUpcast(abababa).launch
new file mode 100644
index 00000000..fe648a25
--- /dev/null
+++ b/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/EventK3FSM - TwoStatesUpcast(abababa).launch	
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.gemoc.execution.sequential.javaengine.ui.launcher">
+    <booleanAttribute key="Event Manager" value="true"/>
+    <intAttribute key="GEMOC_ANIMATE_DELAY" value="0"/>
+    <stringAttribute key="GEMOC_DEBUG_MODEL_ID" value="org.eclipse.gemoc.execution.sequential.javaengine.ui.debugModel"/>
+    <booleanAttribute key="GEMOC_LAUNCH_BREAK_START" value="true"/>
+    <stringAttribute key="GEMOC_LAUNCH_INITIALIZATION_ARGUMENTS" value="abababa"/>
+    <stringAttribute key="GEMOC_LAUNCH_INITIALIZATION_METHOD" value="org.eclipse.gemoc.example.k3fsm.k3dsa.FSMAspect.initializeModel"/>
+    <stringAttribute key="GEMOC_LAUNCH_MELANGE_QUERY" value=""/>
+    <stringAttribute key="GEMOC_LAUNCH_SELECTED_LANGUAGE" value="org.eclipse.gemoc.example.k3fsm.event.EventK3fsm"/>
+    <booleanAttribute key="Generic MultiDimensional Data Trace" value="false"/>
+    <booleanAttribute key="Generic MultiDimensional Trace" value="true"/>
+    <stringAttribute key="LAUNCH_METHOD_ENTRY_POINT" value="public static void org.eclipse.gemoc.example.k3fsm.k3dsa.FSMAspect.main(org.eclipse.gemoc.example.k3fsm.FSM)"/>
+    <stringAttribute key="LAUNCH_MODEL_ENTRY_POINT" value="/"/>
+    <stringAttribute key="Resource" value="/org.eclipse.gemoc.example.k3fsm.model_examples/TwoStatesUpcast.k3fsm"/>
+    <stringAttribute key="airdResource" value="/org.eclipse.gemoc.example.k3fsm.model_examples/TwoStatesUpcast.aird"/>
+    <booleanAttribute key="fsm MultiDimensional Trace" value="false"/>
+    <booleanAttribute key="org.eclipse.gemoc.trace.gemoc.addon_equivClassComputing_booleanOption" value="false"/>
+    <booleanAttribute key="org.eclipse.gemoc.trace.gemoc.addon_saveTraceOnEngineStop_booleanOption" value="true"/>
+    <booleanAttribute key="org.eclipse.gemoc.trace.gemoc.addon_saveTraceOnStep_booleanOption" value="false"/>
+</launchConfiguration>
diff --git a/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/K3FSM - TwoStatesUpcast(abababa).launch b/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/K3FSM - TwoStatesUpcast(abababa).launch
index 53e0a157..f62ac8d9 100644
--- a/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/K3FSM - TwoStatesUpcast(abababa).launch	
+++ b/official_samples/K3FSM/modeling_workbench/org.eclipse.gemoc.example.k3fsm.model_examples/.launch/K3FSM - TwoStatesUpcast(abababa).launch	
@@ -1,16 +1,20 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.gemoc.execution.sequential.javaengine.ui.launcher">
+    <booleanAttribute key="Event Manager" value="false"/>
     <intAttribute key="GEMOC_ANIMATE_DELAY" value="0"/>
     <stringAttribute key="GEMOC_DEBUG_MODEL_ID" value="org.eclipse.gemoc.execution.sequential.javaengine.ui.debugModel"/>
     <booleanAttribute key="GEMOC_LAUNCH_BREAK_START" value="true"/>
     <stringAttribute key="GEMOC_LAUNCH_INITIALIZATION_ARGUMENTS" value="abababa"/>
-    <stringAttribute key="GEMOC_LAUNCH_INITIALIZATION_METHOD" value=""/>
+    <stringAttribute key="GEMOC_LAUNCH_INITIALIZATION_METHOD" value="org.eclipse.gemoc.example.k3fsm.k3dsa.FSMAspect.initializeModel"/>
     <stringAttribute key="GEMOC_LAUNCH_MELANGE_QUERY" value=""/>
     <stringAttribute key="GEMOC_LAUNCH_SELECTED_LANGUAGE" value="org.eclipse.gemoc.example.k3fsm.K3fsm"/>
-    <booleanAttribute key="Generic MultiDimensional Trace" value="true"/>
+    <booleanAttribute key="Generic MultiDimensional Data Trace" value="true"/>
     <stringAttribute key="LAUNCH_METHOD_ENTRY_POINT" value="public static void org.eclipse.gemoc.example.k3fsm.k3dsa.FSMAspect.main(org.eclipse.gemoc.example.k3fsm.FSM)"/>
     <stringAttribute key="LAUNCH_MODEL_ENTRY_POINT" value="/"/>
     <stringAttribute key="Resource" value="/org.eclipse.gemoc.example.k3fsm.model_examples/TwoStatesUpcast.k3fsm"/>
     <stringAttribute key="airdResource" value="/org.eclipse.gemoc.example.k3fsm.model_examples/TwoStatesUpcast.aird"/>
     <booleanAttribute key="fsm MultiDimensional Trace" value="false"/>
+    <booleanAttribute key="org.eclipse.gemoc.trace.gemoc.addon_equivClassComputing_booleanOption" value="false"/>
+    <booleanAttribute key="org.eclipse.gemoc.trace.gemoc.addon_saveTraceOnEngineStop_booleanOption" value="true"/>
+    <booleanAttribute key="org.eclipse.gemoc.trace.gemoc.addon_saveTraceOnStep_booleanOption" value="false"/>
 </launchConfiguration>
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.classpath b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.classpath
index 7f457fa4..b0a5f00a 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.classpath
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.classpath
@@ -1,6 +1,6 @@
 <?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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src/main/java"/>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs
index 0c68a61d..7adc0fb9 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 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.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/META-INF/MANIFEST.MF b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/META-INF/MANIFEST.MF
index 81885b94..a2c9b611 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/META-INF/MANIFEST.MF
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@ Bundle-Vendor: Eclipse GEMOC Project
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.eclipse.ui
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
 Bundle-ClassPath: .
 Export-Package: org.eclipse.gemoc.sequential.language.wb.sample.deployer,
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/plugin.xml b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/plugin.xml
index a3101e01..2666cf6b 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/plugin.xml
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/plugin.xml
@@ -32,7 +32,7 @@
             name="GEMOC MelangeK3FSM Language (Sequential)"
             preferredPerspectives="org.eclipse.gemoc.xdsmlframework.ide.ui.xdsml.perspective">
          <description>
-            This set of projects features a simple Finite State Machine language which is extended and made executable using GEMOC.
+This set of projects features a simple Finite State Machine language which is extended and made executable using GEMOC.
 It illustrates the building of an executable sequential language (xsfsm) on top of an existing language environment and editor (fsm) thanks to Melange.
          </description>
       </wizard> 
@@ -47,8 +47,26 @@ It illustrates the building of an executable sequential language (xsfsm) on top
             name="GEMOC K3FSM Language (Sequential)"
             preferredPerspectives="org.eclipse.gemoc.xdsmlframework.ide.ui.xdsml.perspective">
          <description>
-            This example features a simple executable language using GEMOC Java Engine (ie. based on Xtend/K3).
-			It illustrates the GEMOC animation framework on a Finite State Machine language where the concepts of both the syntax and semantic domains are in a single ecore file. 
+This example features a simple executable language using GEMOC Java Engine (ie. based on Xtend/K3).
+It illustrates the GEMOC animation framework on a Finite State Machine language where the concepts of both the syntax and semantic domains are in a single ecore file. 
+         </description>
+      </wizard>
+      
+      <wizard
+            canFinishEarly="true"
+            category="org.eclipse.ui.Examples/org.eclipse.gemoc.gemoc_language_workbench.samples.category"
+            class="org.eclipse.gemoc.sequential.language.wb.sample.deployer.wizards.EventK3FSMExampleWizard"
+            finalPerspective="org.eclipse.gemoc.xdsmlframework.ide.ui.xdsml.perspective"
+            hasPages="false"
+            icon="icons/IconeGemocLanguage-16.png"
+            id="org.eclipse.gemoc.sequential.language.wb.sample.deployer.eventk3fsm.wizard"
+            name="GEMOC EventK3FSM Language (Sequential)"
+            preferredPerspectives="org.eclipse.gemoc.xdsmlframework.ide.ui.xdsml.perspective">
+         <description>
+This example features a simple executable language using GEMOC Java Engine (ie. based on Xtend/K3) and Event behavior interface.
+This a variant of the GEMOC K3FSM Language that offers a behavioral interface. Ie. An addon is used to send event conforming to 
+the declared interface during the execution.
+Note: The GEMOC EventK3FSM Language shares several plugins with GEMOC K3FSM Language.
          </description>
       </wizard>     
             
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/pom.xml b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/pom.xml
index 9e06ad75..3c0466ef 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/pom.xml
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/pom.xml
@@ -105,6 +105,16 @@
 								<zip destfile="${basedir}/zips/org.eclipse.gemoc.example.k3fsm.xtext.ui.zip">
 									<fileset dir="${k3fsm_example_language_root}/org.eclipse.gemoc.example.k3fsm.xtext.ui/" />
 								</zip>
+								
+								<!-- EventK3FSM -->
+								<!-- only diff from K3FSM -->
+								<zip destfile="${basedir}/zips/org.eclipse.gemoc.example.k3fsm.event.zip">
+									<fileset dir="${k3fsm_example_language_root}/org.eclipse.gemoc.example.k3fsm.event/" />
+								</zip>
+								<zip destfile="${basedir}/zips/org.eclipse.gemoc.example.k3fsm.event.xdsml.zip">
+									<fileset dir="${k3fsm_example_language_root}/org.eclipse.gemoc.example.k3fsm.event.xdsml/" />
+								</zip>
+								
 							</target>
 						</configuration>
 					</execution>
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/src/main/java/org/eclipse/gemoc/sequential/language/wb/sample/deployer/wizards/EventK3FSMExampleWizard.java b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/src/main/java/org/eclipse/gemoc/sequential/language/wb/sample/deployer/wizards/EventK3FSMExampleWizard.java
new file mode 100644
index 00000000..1d792cec
--- /dev/null
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.language.wb.sample.deployer/src/main/java/org/eclipse/gemoc/sequential/language/wb/sample/deployer/wizards/EventK3FSMExampleWizard.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2017  Inria  and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Inria - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.gemoc.sequential.language.wb.sample.deployer.wizards;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.gemoc.sequential.language.wb.sample.deployer.Activator;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class EventK3FSMExampleWizard	extends AbstractExampleWizard {
+	
+	protected Collection<ProjectDescriptor> getProjectDescriptors() {	
+		List<ProjectDescriptor> projects = new ArrayList<ProjectDescriptor>(1);
+		// extract project in a compilation friendly way, give the compiler a chance to be more efficient and succeed without a "clean all"
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.zip", 			"org.eclipse.gemoc.example.k3fsm"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.k3dsa.zip", 		"org.eclipse.gemoc.example.k3fsm.k3dsa"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.design.zip", 		"org.eclipse.gemoc.example.k3fsm.design"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.edit.zip", 		"org.eclipse.gemoc.example.k3fsm.edit"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.editor.zip",  	"org.eclipse.gemoc.example.k3fsm.editor"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.xtext.zip",  		"org.eclipse.gemoc.example.k3fsm.xtext"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.xtext.ui.zip",  	"org.eclipse.gemoc.example.k3fsm.xtext.ui"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.xtext.ide.zip",	"org.eclipse.gemoc.example.k3fsm.xtext.ide"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.event.zip", 		"org.eclipse.gemoc.example.k3fsm.event"));
+		projects.add(new ProjectDescriptor(Activator.PLUGIN_ID, "zips/org.eclipse.gemoc.example.k3fsm.event.xdsml.zip", "org.eclipse.gemoc.example.k3fsm.event.xdsml"));
+		return projects;
+	}
+
+	@Override
+	protected AbstractUIPlugin getContainerPlugin() {
+		return Activator.getDefault();
+	}
+}
\ No newline at end of file
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.classpath b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.classpath
index 7f457fa4..b0a5f00a 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.classpath
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.classpath
@@ -1,6 +1,6 @@
 <?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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src/main/java"/>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs
index 0c68a61d..7adc0fb9 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,10 @@
 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.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/META-INF/MANIFEST.MF b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/META-INF/MANIFEST.MF
index fb7241bc..4b8ef7d9 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/META-INF/MANIFEST.MF
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/META-INF/MANIFEST.MF
@@ -8,6 +8,6 @@ Bundle-Vendor: Eclipse GEMOC Project
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.core.resources
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-RequiredExecutionEnvironment: JavaSE-11
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.gemoc.sequential.modeling.wb.sample.deployer
diff --git a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/plugin.xml b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/plugin.xml
index 976e1e34..9d90459a 100644
--- a/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/plugin.xml
+++ b/official_samples/sample.deployers/plugins/org.eclipse.gemoc.sequential.modeling.wb.sample.deployer/plugin.xml
@@ -32,7 +32,7 @@
             name="GEMOC models for MelangeK3FSM Language (Sequential)"
             preferredPerspectives="org.eclipse.sirius.ui.tools.perspective.modeling">
          <description>
-            This project contains some FSM models that can be executed if you have installed the MelangeK3FSM language.
+            This project contains some finite state machine models that can be executed if you have installed the MelangeK3FSM language.
          </description>
       </wizard>  
       <wizard
@@ -43,10 +43,10 @@
             hasPages="false"
             icon="icons/IconeGemocModel-16.png"
             id="org.eclipse.gemoc.sequential.modeling.wb.sample.deployer.k3fsm.model.wizard"
-            name="GEMOC models for K3FSM Language (Sequential)"
+            name="GEMOC models for K3FSM and EventK3FSM languages (Sequential)"
             preferredPerspectives="org.eclipse.sirius.ui.tools.perspective.modeling">
          <description>
-            This project contains some K3FSM models that can be executed if you have installed the K3FSM language.
+            This project contains some finite state machine models that can be executed if you have installed the K3FSM language or the EventK3FSM language.
          </description>
       </wizard>    
    </extension>