diff --git a/projectMDE/metamodel/csProgram/CsProgram.ecore b/projectMDE/metamodel/csProgram/CsProgram.ecore
index 80db452ebb5c2219e12af72affe331c64b5e13c3..76acefc6c2872a49e221484a7c93f81a9a8298ba 100644
--- a/projectMDE/metamodel/csProgram/CsProgram.ecore
+++ b/projectMDE/metamodel/csProgram/CsProgram.ecore
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="example" nsURI="http://www.example.org/examples/example.ecore"
-    nsPrefix="ex">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="csProgram" nsURI="http://www.example.org/cs.ecore" nsPrefix="cs">
   <eAnnotations source="http://www.eclipse.org/OCL/Import">
     <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
   </eAnnotations>
@@ -99,7 +98,7 @@
     </eAnnotations>
     <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
       <details key="EnumExtendsNaturalNumeric" value="&#xA;&#x9;&#x9;&#x9;base = EPrimitiveType::int or base = EPrimitiveType::uint or &#xA;&#x9;&#x9;&#x9;base = EPrimitiveType::byte or base = EPrimitiveType::sbyte or &#xA;&#x9;&#x9;&#x9;base = EPrimitiveType::short or base = EPrimitiveType::ushort or&#xA;&#x9;&#x9;&#x9;base = EPrimitiveType::long or base = EPrimitiveType::ulong"/>
-      <details key="EnumUniqueLiterals" value="literals->forAll(literal | literals->isUnique(literal))"/>
+      <details key="EnumUniqueLiterals" value="literals->forAll(literal | literals->select(compare | literal.identifier = compare.identifier)->size() = 1)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="base" eType="#//EPrimitiveType"
         defaultValueLiteral="int"/>
diff --git a/projectMDE/metamodel/gameDSL/GameDSL_v2.aird b/projectMDE/metamodel/gameDSL/GameDSL_v2.aird
index 18feb5578ff175a2881bf9b59004390c6560f840..d15f534cc11d5db51ebd9e83ab3ca19ead8bdfd5 100644
--- a/projectMDE/metamodel/gameDSL/GameDSL_v2.aird
+++ b/projectMDE/metamodel/gameDSL/GameDSL_v2.aird
@@ -4,7 +4,7 @@
     <semanticResources>GameDSL_v2.ecore</semanticResources>
     <ownedViews xmi:type="viewpoint:DView" uid="_O8rhEC6REeyCpNx8mY8t3Q">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
-      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_QcqtIC6REeyCpNx8mY8t3Q" name="Game DSL v2" repPath="#_QclNkC6REeyCpNx8mY8t3Q" changeId="0606ce28-f0dc-4ddf-8fb8-57c2e4fe933e">
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_QcqtIC6REeyCpNx8mY8t3Q" name="Game DSL v2" repPath="#_QclNkC6REeyCpNx8mY8t3Q" changeId="56b855a7-252e-4b58-a030-001c8aa078d5">
         <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
         <target xmi:type="ecore:EPackage" href="GameDSL_v2.ecore#/"/>
       </ownedRepresentationDescriptors>
@@ -51,11 +51,15 @@
         <children xmi:type="notation:Node" xmi:id="_ialEMC6REeyCpNx8mY8t3Q" type="2003" element="_iajPAC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_ialrQC6REeyCpNx8mY8t3Q" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_ialrQS6REeyCpNx8mY8t3Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_IG6qcDHDEeyEoctDEMZZdA" type="3010" element="_IGxggDHDEeyEoctDEMZZdA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_IG6qcTHDEeyEoctDEMZZdA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_IG6qcjHDEeyEoctDEMZZdA"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_ialrQi6REeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_ialrQy6REeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_ialEMS6REeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ialEMi6REeyCpNx8mY8t3Q" x="840" y="36" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ialEMi6REeyCpNx8mY8t3Q" x="840" y="36" width="153" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_kms9gC6REeyCpNx8mY8t3Q" type="2003" element="_kmp6MC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_kms9gy6REeyCpNx8mY8t3Q" type="5007"/>
@@ -68,7 +72,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_kms9hi6REeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_kms9gS6REeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kms9gi6REeyCpNx8mY8t3Q" x="738" y="566" width="153" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kms9gi6REeyCpNx8mY8t3Q" x="1002" y="564" width="153" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_7PM0YC6REeyCpNx8mY8t3Q" type="2003" element="_7PJxEC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_7PM0Yy6REeyCpNx8mY8t3Q" type="5007"/>
@@ -102,15 +106,11 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_T-v3US6SEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_T-v3Ui6SEeyCpNx8mY8t3Q"/>
             </children>
-            <children xmi:type="notation:Node" xmi:id="_jVX84C6vEeyCpNx8mY8t3Q" type="3010" element="_jVSdUC6vEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_jVX84S6vEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_jVX84i6vEeyCpNx8mY8t3Q"/>
-            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_KXY7hS6SEeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_KXY7hi6SEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_KXY7gS6SEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KXY7gi6SEeyCpNx8mY8t3Q" x="114" y="-18" width="120" height="111"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KXY7gi6SEeyCpNx8mY8t3Q" x="-36" y="-90" width="120" height="93"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_wX1MwC6SEeyCpNx8mY8t3Q" type="2003" element="_wXxiYC6SEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_wX1z0C6SEeyCpNx8mY8t3Q" type="5007"/>
@@ -119,10 +119,6 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_y5TD8S6SEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_y5TD8i6SEeyCpNx8mY8t3Q"/>
             </children>
-            <children xmi:type="notation:Node" xmi:id="_M1VAwC6WEeyCpNx8mY8t3Q" type="3010" element="_M1QvUC6WEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_M1VAwS6WEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_M1VAwi6WEeyCpNx8mY8t3Q"/>
-            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_wX1z0i6SEeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_wX1z0y6SEeyCpNx8mY8t3Q"/>
           </children>
@@ -132,11 +128,19 @@
         <children xmi:type="notation:Node" xmi:id="_ISkHkC6TEeyCpNx8mY8t3Q" type="2003" element="_ISf2IC6TEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_ISkHky6TEeyCpNx8mY8t3Q" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_ISkHlC6TEeyCpNx8mY8t3Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_8OUEwDHCEeyEoctDEMZZdA" type="3010" element="_8OKTwDHCEeyEoctDEMZZdA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_8OUEwTHCEeyEoctDEMZZdA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_8OUEwjHCEeyEoctDEMZZdA"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_88uC4DHCEeyEoctDEMZZdA" type="3010" element="_88k48DHCEeyEoctDEMZZdA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_88uC4THCEeyEoctDEMZZdA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_88uC4jHCEeyEoctDEMZZdA"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_ISkHlS6TEeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_ISkHli6TEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_ISkHkS6TEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ISkHki6TEeyCpNx8mY8t3Q" x="1116" y="108" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ISkHki6TEeyCpNx8mY8t3Q" x="792" y="-114" width="168" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_IjzBgC6TEeyCpNx8mY8t3Q" type="2003" element="_IjvXIC6TEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_IjzBgy6TEeyCpNx8mY8t3Q" type="5007"/>
@@ -153,7 +157,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_IjzBhi6TEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_IjzBgS6TEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IjzBgi6TEeyCpNx8mY8t3Q" x="1020" y="-18" width="132" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IjzBgi6TEeyCpNx8mY8t3Q" x="1002" y="-118" width="132" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_boKDQC6TEeyCpNx8mY8t3Q" type="2003" element="_boGY4C6TEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_boKDQy6TEeyCpNx8mY8t3Q" type="5007"/>
@@ -175,19 +179,11 @@
         <children xmi:type="notation:Node" xmi:id="_EvlTkC6UEeyCpNx8mY8t3Q" type="2003" element="_EvhpMC6UEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_EvlTky6UEeyCpNx8mY8t3Q" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_EvlTlC6UEeyCpNx8mY8t3Q" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_LUKa4C6UEeyCpNx8mY8t3Q" type="3010" element="_LUGJcC6UEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_LUKa4S6UEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_LUKa4i6UEeyCpNx8mY8t3Q"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_Yk_-1i6UEeyCpNx8mY8t3Q" type="3010" element="_Yk8UcC6UEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_Yk_-1y6UEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_Yk_-2C6UEeyCpNx8mY8t3Q"/>
-            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_EvlTlS6UEeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_EvlTli6UEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_EvlTkS6UEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EvlTki6UEeyCpNx8mY8t3Q" x="48" y="469" width="189" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EvlTki6UEeyCpNx8mY8t3Q" x="54" y="336" width="189" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_dqmmsC6UEeyCpNx8mY8t3Q" type="2003" element="_dqi8UC6UEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_dqmmsy6UEeyCpNx8mY8t3Q" type="5007"/>
@@ -196,20 +192,16 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_dqmmti6UEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_dqmmsS6UEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dqmmsi6UEeyCpNx8mY8t3Q" x="174" y="606" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dqmmsi6UEeyCpNx8mY8t3Q" x="159" y="504" width="114" height="69"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_fPQQUC6UEeyCpNx8mY8t3Q" type="2003" element="_fPL-4C6UEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_fPQQUy6UEeyCpNx8mY8t3Q" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_fPQQVC6UEeyCpNx8mY8t3Q" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_kK9VUC6UEeyCpNx8mY8t3Q" type="3010" element="_kK5D4C6UEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_kK9VUS6UEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_kK9VUi6UEeyCpNx8mY8t3Q"/>
-            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_fPQQVS6UEeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_fPQQVi6UEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_fPQQUS6UEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fPQQUi6UEeyCpNx8mY8t3Q" x="-72" y="606" width="177" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fPQQUi6UEeyCpNx8mY8t3Q" x="12" y="504" width="99" height="69"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_EDmh4C6VEeyCpNx8mY8t3Q" type="2003" element="_EDi3gC6VEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_EDnI8C6VEeyCpNx8mY8t3Q" type="5007"/>
@@ -246,46 +238,20 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_EDnI8y6VEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_EDmh4S6VEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EDmh4i6VEeyCpNx8mY8t3Q" x="114" y="162" width="120" height="160"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_wgQ9wC6XEeyCpNx8mY8t3Q" type="2003" element="_wgMFQC6XEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_wgQ9wy6XEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_wgQ9xC6XEeyCpNx8mY8t3Q" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_zAuvYC6XEeyCpNx8mY8t3Q" type="3010" element="_zAqd8C6XEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_zAuvYS6XEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_zAuvYi6XEeyCpNx8mY8t3Q"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_0KJOgC6XEeyCpNx8mY8t3Q" type="3010" element="_0KEWAC6XEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_0KJOgS6XEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_0KJOgi6XEeyCpNx8mY8t3Q"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_3bV5gC6XEeyCpNx8mY8t3Q" type="3010" element="_3bRoEC6XEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_3bV5gS6XEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_3bV5gi6XEeyCpNx8mY8t3Q"/>
-            </children>
-            <styles xmi:type="notation:SortingStyle" xmi:id="_wgQ9xS6XEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_wgQ9xi6XEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_wgQ9wS6XEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wgQ9wi6XEeyCpNx8mY8t3Q" x="-96" y="336" width="201" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_9j_SwC6XEeyCpNx8mY8t3Q" type="2003" element="_9j7BUC6XEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_9j_Swy6XEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_9j_SxC6XEeyCpNx8mY8t3Q" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_9j_SxS6XEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_9j_Sxi6XEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_9j_SwS6XEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9j_Swi6XEeyCpNx8mY8t3Q" x="303" y="450" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EDmh4i6VEeyCpNx8mY8t3Q" x="106" y="26" width="120" height="160"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_MzDohi6ZEeyCpNx8mY8t3Q" type="2003" element="_My_-IC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_MzEPkC6ZEeyCpNx8mY8t3Q" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_MzEPkS6ZEeyCpNx8mY8t3Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_0M58oDHOEeyCloIdVdmTHA" type="3010" element="_0MdQsDHOEeyCloIdVdmTHA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_0M58oTHOEeyCloIdVdmTHA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_0M58ojHOEeyCloIdVdmTHA"/>
+            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_MzEPki6ZEeyCpNx8mY8t3Q"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_MzEPky6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_MzDohy6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzDoiC6ZEeyCpNx8mY8t3Q" x="1032" y="714" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzDoiC6ZEeyCpNx8mY8t3Q" x="1152" y="714" width="207" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_NwEqYC6ZEeyCpNx8mY8t3Q" type="2003" element="_NwAY8C6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_NwEqYy6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -298,7 +264,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_NwEqZi6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_NwEqYS6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NwEqYi6ZEeyCpNx8mY8t3Q" x="852" y="714" width="135" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NwEqYi6ZEeyCpNx8mY8t3Q" x="1008" y="714" width="135" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_RHJ68C6ZEeyCpNx8mY8t3Q" type="2003" element="_RHFpgC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_RHJ68y6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -315,7 +281,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_RHKiAi6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_RHJ68S6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RHJ68i6ZEeyCpNx8mY8t3Q" x="636" y="714" width="195" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RHJ68i6ZEeyCpNx8mY8t3Q" x="744" y="714" width="237" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_VbrrMC6ZEeyCpNx8mY8t3Q" type="2003" element="_VbnZwC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_VbrrMy6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -332,7 +298,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_VbrrNi6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_VbrrMS6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VbrrMi6ZEeyCpNx8mY8t3Q" x="674" y="882" width="120" height="75"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VbrrMi6ZEeyCpNx8mY8t3Q" x="857" y="882" width="120" height="75"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_dfiM4C6ZEeyCpNx8mY8t3Q" type="2003" element="_dfeigC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_dfiM4y6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -345,7 +311,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_dfiM5i6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_dfiM4S6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfiM4i6ZEeyCpNx8mY8t3Q" x="1206" y="312" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dfiM4i6ZEeyCpNx8mY8t3Q" x="1365" y="714" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_gJTrgC6ZEeyCpNx8mY8t3Q" type="2003" element="_gJPaEC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_gJUSkC6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -354,7 +320,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_gJUSky6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_gJTrgS6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gJTrgi6ZEeyCpNx8mY8t3Q" x="1074" y="475" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gJTrgi6ZEeyCpNx8mY8t3Q" x="1219" y="870" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_h94ngC6ZEeyCpNx8mY8t3Q" type="2003" element="_h90WEC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_h94ngy6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -363,7 +329,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_h94nhi6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_h94ngS6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h94ngi6ZEeyCpNx8mY8t3Q" x="1206" y="474" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h94ngi6ZEeyCpNx8mY8t3Q" x="1365" y="870" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_kVdi4C6ZEeyCpNx8mY8t3Q" type="2003" element="_kVZRcC6ZEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_kVdi4y6ZEeyCpNx8mY8t3Q" type="5007"/>
@@ -372,52 +338,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_kVdi5i6ZEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_kVdi4S6ZEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kVdi4i6ZEeyCpNx8mY8t3Q" x="1338" y="474" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_Flh1YC6aEeyCpNx8mY8t3Q" type="2003" element="_Fldj8C6aEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_Flh1Yy6aEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_Flh1ZC6aEeyCpNx8mY8t3Q" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_Flh1ZS6aEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_Flh1Zi6aEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_Flh1YS6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Flh1Yi6aEeyCpNx8mY8t3Q" x="276" y="793" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_HTJ00C6aEeyCpNx8mY8t3Q" type="2003" element="_HTE8UC6aEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_HTJ00y6aEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_HTJ01C6aEeyCpNx8mY8t3Q" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_HTJ01S6aEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_HTJ01i6aEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_HTJ00S6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTJ00i6aEeyCpNx8mY8t3Q" x="141" y="792" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_I0qD0C6aEeyCpNx8mY8t3Q" type="2003" element="_I0lLUC6aEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_I0qD0y6aEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_I0qD1C6aEeyCpNx8mY8t3Q" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_I0qD1S6aEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_I0qD1i6aEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_I0qD0S6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I0qD0i6aEeyCpNx8mY8t3Q" y="792" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_bRbhIC6aEeyCpNx8mY8t3Q" type="2003" element="_bRWooC6aEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_bRcIMC6aEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_bRcIMS6aEeyCpNx8mY8t3Q" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_bRcIMi6aEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_bRcIMy6aEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_bRbhIS6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bRbhIi6aEeyCpNx8mY8t3Q" x="276" y="912" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_dHkjYC6aEeyCpNx8mY8t3Q" type="2003" element="_dHgR8C6aEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_dHkjYy6aEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_dHlKcC6aEeyCpNx8mY8t3Q" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_dHlKcS6aEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_dHlKci6aEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_dHkjYS6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dHkjYi6aEeyCpNx8mY8t3Q" x="141" y="912" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kVdi4i6ZEeyCpNx8mY8t3Q" x="1512" y="870" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_eQf6UC6aEeyCpNx8mY8t3Q" type="2003" element="_eQbB0C6aEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_eQf6Uy6aEeyCpNx8mY8t3Q" type="5007"/>
@@ -426,7 +347,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_eQf6Vi6aEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_eQf6US6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eQf6Ui6aEeyCpNx8mY8t3Q" y="912" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eQf6Ui6aEeyCpNx8mY8t3Q" x="510" y="1212" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_VAylUC6hEeyCpNx8mY8t3Q" type="2003" element="_VAtFwC6hEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_VAylUy6hEeyCpNx8mY8t3Q" type="5007"/>
@@ -447,7 +368,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_VAylVi6hEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_VAylUS6hEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VAylUi6hEeyCpNx8mY8t3Q" x="-43" y="162" width="127" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VAylUi6hEeyCpNx8mY8t3Q" x="102" y="-93" width="127" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_GKmeEC6qEeyCpNx8mY8t3Q" type="2003" element="_GKhlkC6qEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_GKmeEy6qEeyCpNx8mY8t3Q" type="5007"/>
@@ -456,37 +377,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_GKmeFi6qEeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_GKmeES6qEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GKmeEi6qEeyCpNx8mY8t3Q" x="948" y="342" width="120" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_D-qYsC6vEeyCpNx8mY8t3Q" type="2003" element="_D-k5IC6vEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_D-qYsy6vEeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_D-qYtC6vEeyCpNx8mY8t3Q" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_HHYnsC6wEeyCpNx8mY8t3Q" type="3010" element="_HHShEC6wEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_HHYnsS6wEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_HHYnsi6wEeyCpNx8mY8t3Q"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_2dhAgC6xEeyCpNx8mY8t3Q" type="3010" element="_2daS0C6xEeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_2dhAgS6xEeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_2dhAgi6xEeyCpNx8mY8t3Q"/>
-            </children>
-            <styles xmi:type="notation:SortingStyle" xmi:id="_D-qYtS6vEeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_D-qYti6vEeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_D-qYsS6vEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-qYsi6vEeyCpNx8mY8t3Q" x="408" y="606" width="153" height="100"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_awk4AC60EeyCpNx8mY8t3Q" type="2003" element="_awfYcC60EeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_awk4Ay60EeyCpNx8mY8t3Q" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_awk4BC60EeyCpNx8mY8t3Q" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_rkqgQC60EeyCpNx8mY8t3Q" type="3010" element="_rklnwC60EeyCpNx8mY8t3Q">
-              <styles xmi:type="notation:FontStyle" xmi:id="_rkqgQS60EeyCpNx8mY8t3Q" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_rkqgQi60EeyCpNx8mY8t3Q"/>
-            </children>
-            <styles xmi:type="notation:SortingStyle" xmi:id="_awk4BS60EeyCpNx8mY8t3Q"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_awk4Bi60EeyCpNx8mY8t3Q"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_awk4AS60EeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_awk4Ai60EeyCpNx8mY8t3Q" x="425" y="792" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GKmeEi6qEeyCpNx8mY8t3Q" x="942" y="354" width="120" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_cWdQsC60EeyCpNx8mY8t3Q" type="2003" element="_cWXxIC60EeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_cWdQsy60EeyCpNx8mY8t3Q" type="5007"/>
@@ -503,7 +394,161 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_cWd3wC60EeyCpNx8mY8t3Q"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_cWdQsS60EeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cWdQsi60EeyCpNx8mY8t3Q" x="425" y="900" width="120" height="75"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cWdQsi60EeyCpNx8mY8t3Q" x="-36" y="133" width="120" height="75"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_oBsnIDAlEey6-sCr3AHIIw" type="2003" element="_oBUzsDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_oBw4kDAlEey6-sCr3AHIIw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_oBxfoDAlEey6-sCr3AHIIw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_1OYD0DAlEey6-sCr3AHIIw" type="3010" element="_1OGXADAlEey6-sCr3AHIIw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_1OYD0TAlEey6-sCr3AHIIw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_1OYD0jAlEey6-sCr3AHIIw"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_oBxfoTAlEey6-sCr3AHIIw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_oBxfojAlEey6-sCr3AHIIw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_oBsnITAlEey6-sCr3AHIIw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oBsnIjAlEey6-sCr3AHIIw" x="291" y="768" width="150" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_xo1ggDAlEey6-sCr3AHIIw" type="2003" element="_xokawDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_xo2HkDAlEey6-sCr3AHIIw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_xo2HkTAlEey6-sCr3AHIIw" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_5XyJMDAlEey6-sCr3AHIIw" type="3010" element="_5Xl78DAlEey6-sCr3AHIIw">
+              <styles xmi:type="notation:FontStyle" xmi:id="_5XyJMTAlEey6-sCr3AHIIw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_5XyJMjAlEey6-sCr3AHIIw"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_tC0fEDHPEeyCloIdVdmTHA" type="3010" element="_tCRsgDHPEeyCloIdVdmTHA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_tC0fETHPEeyCloIdVdmTHA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_tC0fEjHPEeyCloIdVdmTHA"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_xo2HkjAlEey6-sCr3AHIIw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_xo2HkzAlEey6-sCr3AHIIw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_xo1ggTAlEey6-sCr3AHIIw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xo1ggjAlEey6-sCr3AHIIw" x="12" y="967" width="159" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_yo2MADAlEey6-sCr3AHIIw" type="2003" element="_yom7cDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_yo2MAzAlEey6-sCr3AHIIw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_yo2MBDAlEey6-sCr3AHIIw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_yo2MBTAlEey6-sCr3AHIIw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_yo2MBjAlEey6-sCr3AHIIw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_yo2MATAlEey6-sCr3AHIIw" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yo2MAjAlEey6-sCr3AHIIw" x="566" y="967" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_J3M5IDG_Eeyfr9efKJlILg" type="2003" element="_J2qtoDG_Eeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_J3RKkDG_Eeyfr9efKJlILg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_J3RxoDG_Eeyfr9efKJlILg" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_J3RxoTG_Eeyfr9efKJlILg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_J3RxojG_Eeyfr9efKJlILg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_J3M5ITG_Eeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3M5IjG_Eeyfr9efKJlILg" x="702" y="967" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_L-RTUDG_Eeyfr9efKJlILg" type="2003" element="_L96uADG_Eeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_L-RTUzG_Eeyfr9efKJlILg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_L-R6YDG_Eeyfr9efKJlILg" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_L-R6YTG_Eeyfr9efKJlILg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_L-R6YjG_Eeyfr9efKJlILg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_L-RTUTG_Eeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L-RTUjG_Eeyfr9efKJlILg" x="198" y="967" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_zJZPADG_Eeyfr9efKJlILg" type="2003" element="_zJJ-cDG_Eeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_zJZ2EDG_Eeyfr9efKJlILg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_zJZ2ETG_Eeyfr9efKJlILg" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_YrD5kDHAEeyfr9efKJlILg" type="3010" element="_Yq13IDHAEeyfr9efKJlILg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YrD5kTHAEeyfr9efKJlILg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YrD5kjHAEeyfr9efKJlILg"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_ocMQADHAEeyfr9efKJlILg" type="3010" element="_ocB38DHAEeyfr9efKJlILg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_ocMQATHAEeyfr9efKJlILg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_ocMQAjHAEeyfr9efKJlILg"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_zJZ2EjG_Eeyfr9efKJlILg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_zJZ2EzG_Eeyfr9efKJlILg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_zJZPATG_Eeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zJZPAjG_Eeyfr9efKJlILg" x="342" y="967" width="204" height="105"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_2YrOcDG_Eeyfr9efKJlILg" type="2003" element="_2YbW0DG_Eeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_2YrOczG_Eeyfr9efKJlILg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_2YrOdDG_Eeyfr9efKJlILg" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_2YrOdTG_Eeyfr9efKJlILg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_2YrOdjG_Eeyfr9efKJlILg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_2YrOcTG_Eeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2YrOcjG_Eeyfr9efKJlILg" x="63" y="785" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_eiwFsDHAEeyfr9efKJlILg" type="2003" element="_eimUsDHAEeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_eiwFszHAEeyfr9efKJlILg" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_eiwFtDHAEeyfr9efKJlILg" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_hn0ZMDHAEeyfr9efKJlILg" type="3010" element="_hnqBIDHAEeyfr9efKJlILg">
+              <styles xmi:type="notation:FontStyle" xmi:id="_hn0ZMTHAEeyfr9efKJlILg" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_hn0ZMjHAEeyfr9efKJlILg"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_eiwFtTHAEeyfr9efKJlILg"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_eiwFtjHAEeyfr9efKJlILg"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_eiwFsTHAEeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eiwFsjHAEeyfr9efKJlILg" x="857" y="984" width="120" height="63"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_cu3sQDHLEeyEoctDEMZZdA" type="2003" element="_cuvwcDHLEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_cu3sQzHLEeyEoctDEMZZdA" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_cu3sRDHLEeyEoctDEMZZdA" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_cu3sRTHLEeyEoctDEMZZdA"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_cu3sRjHLEeyEoctDEMZZdA"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_cu3sQTHLEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cu3sQjHLEeyEoctDEMZZdA" x="1176" y="319" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_5Pq90DHMEeyEoctDEMZZdA" type="2003" element="_5PjCADHMEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_5Pq90zHMEeyEoctDEMZZdA" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_5Pq91DHMEeyEoctDEMZZdA" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_5Pq91THMEeyEoctDEMZZdA"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_5Pq91jHMEeyEoctDEMZZdA"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_5Pq90THMEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5Pq90jHMEeyEoctDEMZZdA" x="1102" y="108" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_8dMCsDHMEeyEoctDEMZZdA" type="2003" element="_8dEt8DHMEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_8dMCszHMEeyEoctDEMZZdA" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_8dMCtDHMEeyEoctDEMZZdA" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_8dMCtTHMEeyEoctDEMZZdA"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_8dMCtjHMEeyEoctDEMZZdA"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_8dMCsTHMEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8dMCsjHMEeyEoctDEMZZdA" x="1272" y="108" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_Ivp54DHNEeyEoctDEMZZdA" type="2003" element="_IvilIDHNEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_Ivp54zHNEeyEoctDEMZZdA" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_Ivp55DHNEeyEoctDEMZZdA" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Ivp55THNEeyEoctDEMZZdA"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Ivp55jHNEeyEoctDEMZZdA"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Ivp54THNEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ivp54jHNEeyEoctDEMZZdA" x="1488" y="534" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_cts8sDHNEeyEoctDEMZZdA" type="2003" element="_ctlA4DHNEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_cts8szHNEeyEoctDEMZZdA" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_cts8tDHNEeyEoctDEMZZdA" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_pK9uoDHNEeyEoctDEMZZdA" type="3010" element="_pK2Z4DHNEeyEoctDEMZZdA">
+              <styles xmi:type="notation:FontStyle" xmi:id="_pK9uoTHNEeyEoctDEMZZdA" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_pK9uojHNEeyEoctDEMZZdA"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_cts8tTHNEeyEoctDEMZZdA"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_cts8tjHNEeyEoctDEMZZdA"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_cts8sTHNEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cts8sjHNEeyEoctDEMZZdA" x="1692" y="467" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_eUiXoDHNEeyEoctDEMZZdA" type="2003" element="_eUbC4DHNEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_eUiXozHNEeyEoctDEMZZdA" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_eUiXpDHNEeyEoctDEMZZdA" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_eUiXpTHNEeyEoctDEMZZdA"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_eUiXpjHNEeyEoctDEMZZdA"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_eUiXoTHNEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eUiXojHNEeyEoctDEMZZdA" x="1678" y="617" width="147" height="100"/>
         </children>
         <styles xmi:type="notation:DiagramStyle" xmi:id="_Qcu-ki6REeyCpNx8mY8t3Q"/>
         <edges xmi:type="notation:Edge" xmi:id="_m4_JMC6REeyCpNx8mY8t3Q" type="4001" element="_m463wC6REeyCpNx8mY8t3Q" source="_SVq2IC6REeyCpNx8mY8t3Q" target="_hi8RkC6REeyCpNx8mY8t3Q">
@@ -540,7 +585,7 @@
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_mfICQC6SEeyCpNx8mY8t3Q" type="4001" element="_mfEX8i6SEeyCpNx8mY8t3Q" source="_ialEMC6REeyCpNx8mY8t3Q" target="_7PM0YC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_mfICRC6SEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mfICRS6SEeyCpNx8mY8t3Q" x="-121" y="16"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mfICRS6SEeyCpNx8mY8t3Q" x="-123" y="124"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_mfICRi6SEeyCpNx8mY8t3Q" type="6002">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mfIpUC6SEeyCpNx8mY8t3Q" x="37" y="150"/>
@@ -583,7 +628,7 @@
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_r-7A4S6UEeyCpNx8mY8t3Q" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_r-7A4i6UEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r-7A4y6UEeyCpNx8mY8t3Q" points="[0, 0, -84, 89]$[0, -24, -84, 65]$[85, -24, 1, 65]$[85, -40, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-7A6i6UEeyCpNx8mY8t3Q" id="(0.7542857142857143,0.0)"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-7A6i6UEeyCpNx8mY8t3Q" id="(1.175257731958763,-0.22388059701492538)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-7A6y6UEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_sf1VkC6UEeyCpNx8mY8t3Q" type="4001" element="_sfxEJi6UEeyCpNx8mY8t3Q" source="_dqmmsC6UEeyCpNx8mY8t3Q" target="_EvlTkC6UEeyCpNx8mY8t3Q">
@@ -599,54 +644,22 @@
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_sf1VkS6UEeyCpNx8mY8t3Q" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_sf1Vki6UEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sf1Vky6UEeyCpNx8mY8t3Q" points="[0, 0, 72, 40]$[-72, -40, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sf1Vmi6UEeyCpNx8mY8t3Q" id="(0.559322033898305,0.0)"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sf1Vmi6UEeyCpNx8mY8t3Q" id="(0.5892857142857143,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sf1Vmy6UEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="__TkaAC6XEeyCpNx8mY8t3Q" type="4001" element="__TgInC6XEeyCpNx8mY8t3Q" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_9j_SwC6XEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="__TlBEC6XEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__TlBES6XEeyCpNx8mY8t3Q" x="61" y="16"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__TlBEi6XEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__TlBEy6XEeyCpNx8mY8t3Q" x="-4" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__TlBFC6XEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__TlBFS6XEeyCpNx8mY8t3Q" x="-36" y="77"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="__TkaAS6XEeyCpNx8mY8t3Q" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="__TkaAi6XEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__TkaAy6XEeyCpNx8mY8t3Q" points="[-37, 0, 235, -16]$[-37, 64, 235, 48]$[-204, 64, 68, 48]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__TlBFi6XEeyCpNx8mY8t3Q" id="(0.503448275862069,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__TlBFy6XEeyCpNx8mY8t3Q" id="(0.423728813559322,0.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_Us3S0C6YEeyCpNx8mY8t3Q" type="4001" element="_UszBeC6YEeyCpNx8mY8t3Q" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_wgQ9wC6XEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_Us3S1C6YEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Us3S1S6YEeyCpNx8mY8t3Q" x="-2" y="16"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_Us3S1i6YEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Us3S1y6YEeyCpNx8mY8t3Q" x="-7" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_Us3S2C6YEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Us3S2S6YEeyCpNx8mY8t3Q" x="-319" y="-10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Us3S0S6YEeyCpNx8mY8t3Q" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_Us3S0i6YEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Us3S0y6YEeyCpNx8mY8t3Q" points="[-145, -24, 571, 36]$[-594, -24, 122, 36]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Us354C6YEeyCpNx8mY8t3Q" id="(1.0,0.6122448979591837)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Us354S6YEeyCpNx8mY8t3Q" id="(0.3869346733668342,0.0)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_vRADYC6ZEeyCpNx8mY8t3Q" type="4001" element="_vQ7LEC6ZEeyCpNx8mY8t3Q" source="_dfiM4C6ZEeyCpNx8mY8t3Q" target="_7PM0YC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_vRAqcC6ZEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vRAqcS6ZEeyCpNx8mY8t3Q" x="-440" y="-26"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vRAqcS6ZEeyCpNx8mY8t3Q" x="-237" y="-14"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_vRAqci6ZEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vRAqcy6ZEeyCpNx8mY8t3Q" x="-100" y="-17"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vRAqcy6ZEeyCpNx8mY8t3Q" x="218" y="-462"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_vRAqdC6ZEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vRAqdS6ZEeyCpNx8mY8t3Q" x="-37" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vRAqdS6ZEeyCpNx8mY8t3Q" x="24" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_vRADYS6ZEeyCpNx8mY8t3Q" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_vRADYi6ZEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vRADYy6ZEeyCpNx8mY8t3Q" points="[28, 0, 843, 48]$[28, -42, 843, 6]$[-815, -42, 0, 6]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vRADYy6ZEeyCpNx8mY8t3Q" points="[28, 0, 1002, 450]$[28, -444, 1002, 6]$[-974, -444, 0, 6]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vRAqdi6ZEeyCpNx8mY8t3Q" id="(0.2542372881355932,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vRAqdy6ZEeyCpNx8mY8t3Q" id="(1.0,0.42857142857142855)"/>
         </edges>
@@ -666,185 +679,73 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_611YhC6ZEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_611YhS6ZEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_-deYIC6aEeyCpNx8mY8t3Q" type="4001" element="_-dY4nC6aEeyCpNx8mY8t3Q" source="_h94ngC6ZEeyCpNx8mY8t3Q" target="_dfiM4C6ZEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_-deYJC6aEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-deYJS6aEeyCpNx8mY8t3Q" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_-deYJi6aEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-deYJy6aEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_-deYKC6aEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-deYKS6aEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_-deYIS6aEeyCpNx8mY8t3Q" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_-deYIi6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-deYIy6aEeyCpNx8mY8t3Q" points="[0, 0, 0, 64]$[0, -64, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-deYKi6aEeyCpNx8mY8t3Q" id="(0.5,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-deYKy6aEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="__Lt-MC6aEeyCpNx8mY8t3Q" type="4001" element="__Loesi6aEeyCpNx8mY8t3Q" source="_gJTrgC6ZEeyCpNx8mY8t3Q" target="_dfiM4C6ZEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="__Lt-NC6aEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Lt-NS6aEeyCpNx8mY8t3Q" x="-6" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__Lt-Ni6aEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Lt-Ny6aEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__Lt-OC6aEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__Lt-OS6aEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="__Lt-MS6aEeyCpNx8mY8t3Q" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="__Lt-Mi6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__Lt-My6aEeyCpNx8mY8t3Q" points="[0, -65, -73, 114]$[0, -102, -73, 77]$[74, -102, 1, 77]$[74, -130, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__Lt-Oi6aEeyCpNx8mY8t3Q" id="(1.0,0.6632653061224489)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__Lt-Oy6aEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="__oFxIC6aEeyCpNx8mY8t3Q" type="4001" element="__oA4uC6aEeyCpNx8mY8t3Q" source="_kVdi4C6ZEeyCpNx8mY8t3Q" target="_dfiM4C6ZEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="__oGYMC6aEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__oGYMS6aEeyCpNx8mY8t3Q" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__oGYMi6aEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__oGYMy6aEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="__oGYNC6aEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="__oGYNS6aEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="__oFxIS6aEeyCpNx8mY8t3Q" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="__oFxIi6aEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__oFxIy6aEeyCpNx8mY8t3Q" points="[0, 0, 145, 64]$[-145, -64, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__oGYNi6aEeyCpNx8mY8t3Q" id="(0.6101694915254238,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__oGYNy6aEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_FM7SsC6bEeyCpNx8mY8t3Q" type="4001" element="_FM1zOy6bEeyCpNx8mY8t3Q" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_kms9gC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_FM7StC6bEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FM7StS6bEeyCpNx8mY8t3Q" x="28" y="-47"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FM7StS6bEeyCpNx8mY8t3Q" x="-27" y="-17"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_FM7Sti6bEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FM7Sty6bEeyCpNx8mY8t3Q" x="-9" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FM7Sty6bEeyCpNx8mY8t3Q" x="-52" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_FM7SuC6bEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FM7SuS6bEeyCpNx8mY8t3Q" x="10" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FM7SuS6bEeyCpNx8mY8t3Q" x="-211" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_FM7SsS6bEeyCpNx8mY8t3Q" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_FM7Ssi6bEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FM7Ssy6bEeyCpNx8mY8t3Q" points="[-11, 0, -114, -181]$[-11, 180, -114, -1]$[79, 180, -24, -1]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FM7Ssy6bEeyCpNx8mY8t3Q" points="[-26, 0, -393, -179]$[-26, 190, -393, 11]$[343, 190, -24, 11]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FM7Sui6bEeyCpNx8mY8t3Q" id="(0.7379310344827587,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FM7Suy6bEeyCpNx8mY8t3Q" id="(0.15894039735099338,0.5)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_Fqy6cC6bEeyCpNx8mY8t3Q" type="4001" element="_FqtbEC6bEeyCpNx8mY8t3Q" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_kms9gC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_Fqy6dC6bEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fqy6dS6bEeyCpNx8mY8t3Q" x="1" y="61"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fqy6dS6bEeyCpNx8mY8t3Q" x="-13" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_Fqy6di6bEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fqy6dy6bEeyCpNx8mY8t3Q" x="-2" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fqy6dy6bEeyCpNx8mY8t3Q" x="3"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_FqzhgC6bEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FqzhgS6bEeyCpNx8mY8t3Q" x="-54" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FqzhgS6bEeyCpNx8mY8t3Q" x="7" y="10"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_Fqy6cS6bEeyCpNx8mY8t3Q" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_Fqy6ci6bEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fqy6cy6bEeyCpNx8mY8t3Q" points="[0, 18, -155, -146]$[131, 18, -24, -146]$[131, 164, -24, 0]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fqy6cy6bEeyCpNx8mY8t3Q" points="[-85, 32, -504, -130]$[-85, 246, -504, 84]$[305, 246, -114, 84]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fqzhgi6bEeyCpNx8mY8t3Q" id="(1.0,0.673469387755102)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fqzhgy6bEeyCpNx8mY8t3Q" id="(0.7549668874172185,0.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_yiPtgC6gEeyCpNx8mY8t3Q" type="4001" element="_yiKODi6gEeyCpNx8mY8t3Q" source="_ISkHkC6TEeyCpNx8mY8t3Q" target="_ialEMC6REeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_yiPthC6gEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yiPthS6gEeyCpNx8mY8t3Q" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_yiPthi6gEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yiPthy6gEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_yiPtiC6gEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yiPtiS6gEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_yiPtgS6gEeyCpNx8mY8t3Q" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_yiPtgi6gEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yiPtgy6gEeyCpNx8mY8t3Q" points="[0, 62, 217, -11]$[0, 140, 217, 67]$[-216, 140, 1, 67]$[-216, 122, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yiPtii6gEeyCpNx8mY8t3Q" id="(0.0,0.3673469387755102)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yiPtiy6gEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_1fe6sC6gEeyCpNx8mY8t3Q" type="4001" element="_1fZbPi6gEeyCpNx8mY8t3Q" source="_IjzBgC6TEeyCpNx8mY8t3Q" target="_ialEMC6REeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_1fe6tC6gEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1fe6tS6gEeyCpNx8mY8t3Q" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_1fe6ti6gEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1fe6ty6gEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_1fe6uC6gEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1fe6uS6gEeyCpNx8mY8t3Q" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_1fe6sS6gEeyCpNx8mY8t3Q" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_1fe6si6gEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1fe6sy6gEeyCpNx8mY8t3Q" points="[0, 49, 180, -5]$[0, 121, 180, 67]$[-120, 121, 60, 67]$[-120, 103, 60, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1fe6ui6gEeyCpNx8mY8t3Q" id="(0.0,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1fe6uy6gEeyCpNx8mY8t3Q" id="(0.0,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_-yFN0C6oEeyCpNx8mY8t3Q" type="4001" element="_-yDY1i6oEeyCpNx8mY8t3Q" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_EvlTkC6UEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_-yFN1C6oEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-yFN1S6oEeyCpNx8mY8t3Q" x="155" y="-28"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-yFN1S6oEeyCpNx8mY8t3Q" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_-yFN1i6oEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-yFN1y6oEeyCpNx8mY8t3Q" x="-13" y="-14"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-yFN1y6oEeyCpNx8mY8t3Q" x="16" y="-7"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_-yFN2C6oEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-yFN2S6oEeyCpNx8mY8t3Q" x="16" y="-56"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-yFN2S6oEeyCpNx8mY8t3Q" x="-16" y="-7"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_-yFN0S6oEeyCpNx8mY8t3Q" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_-yFN0i6oEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-yFN0y6oEeyCpNx8mY8t3Q" points="[-72, 11, 411, -122]$[-478, 11, 5, -122]$[-478, 51, 5, -82]$[-482, 51, 1, -82]$[-482, 84, 1, -49]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-yFN0y6oEeyCpNx8mY8t3Q" points="[-72, -18, 405, -18]$[-383, -18, 94, -18]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-yFN2i6oEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-yFN2y6oEeyCpNx8mY8t3Q" id="(0.5,0.5)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_acoz4C6qEeyCpNx8mY8t3Q" type="4001" element="_acjUgC6qEeyCpNx8mY8t3Q" source="_GKmeEC6qEeyCpNx8mY8t3Q" target="_kms9gC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_acoz5C6qEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_acoz5S6qEeyCpNx8mY8t3Q" x="9" y="44"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_acoz5S6qEeyCpNx8mY8t3Q" x="34"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_acoz5i6qEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_acoz5y6qEeyCpNx8mY8t3Q" x="-5" y="10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_acoz5y6qEeyCpNx8mY8t3Q" x="70" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_acoz6C6qEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_acoz6S6qEeyCpNx8mY8t3Q" x="-44" y="84"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_acoz6S6qEeyCpNx8mY8t3Q" x="-6"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_acoz4S6qEeyCpNx8mY8t3Q" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_acoz4i6qEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_acoz4y6qEeyCpNx8mY8t3Q" points="[24, 0, 135, -126]$[24, 174, 135, 48]$[-71, 174, 40, 48]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_acoz4y6qEeyCpNx8mY8t3Q" points="[76, -48, -83, -160]$[93, -48, -66, -160]$[93, 112, -66, 0]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_acpa8C6qEeyCpNx8mY8t3Q" id="(0.3559322033898305,1.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_acpa8S6qEeyCpNx8mY8t3Q" id="(0.9337748344370861,0.0)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_mSoYMC6vEeyCpNx8mY8t3Q" type="4001" element="_mSi43C6vEeyCpNx8mY8t3Q" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_D-qYsC6vEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_mSo_QC6vEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mSo_QS6vEeyCpNx8mY8t3Q" x="24" y="-14"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_mSo_Qi6vEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mSo_Qy6vEeyCpNx8mY8t3Q" x="-10" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_mSo_RC6vEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mSo_RS6vEeyCpNx8mY8t3Q" x="-6" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_mSoYMS6vEeyCpNx8mY8t3Q" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_mSoYMi6vEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mSoYMy6vEeyCpNx8mY8t3Q" points="[-16, 0, 111, -172]$[-16, 100, 111, -72]$[-141, 100, -14, -72]$[-141, 172, -14, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mSo_Ri6vEeyCpNx8mY8t3Q" id="(0.5655172413793104,1.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mSo_Ry6vEeyCpNx8mY8t3Q" id="(0.6556291390728477,0.0)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_98SfMC6xEeyCpNx8mY8t3Q" type="4001" element="_98M_xC6xEeyCpNx8mY8t3Q" source="_RHJ68C6ZEeyCpNx8mY8t3Q" target="_D-qYsC6vEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_98SfNC6xEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_98SfNS6xEeyCpNx8mY8t3Q" x="5" y="16"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_98SfNi6xEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_98SfNy6xEeyCpNx8mY8t3Q" x="-8" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_98SfOC6xEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_98SfOS6xEeyCpNx8mY8t3Q" x="-6" y="98"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_98SfMS6xEeyCpNx8mY8t3Q" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_98SfMi6xEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_98SfMy6xEeyCpNx8mY8t3Q" points="[0, 0, 77, 66]$[-153, 0, -76, 66]$[-153, -46, -76, 20]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98SfOi6xEeyCpNx8mY8t3Q" id="(0.0,0.3673469387755102)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98SfOy6xEeyCpNx8mY8t3Q" id="(1.0,0.7959183673469388)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_VdhU4C6yEeyCpNx8mY8t3Q" type="4001" element="_Vdb1bi6yEeyCpNx8mY8t3Q" source="_RHJ68C6ZEeyCpNx8mY8t3Q" target="_kms9gC6REeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_VdhU5C6yEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VdhU5S6yEeyCpNx8mY8t3Q" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VdhU5S6yEeyCpNx8mY8t3Q" x="-8" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_VdhU5i6yEeyCpNx8mY8t3Q" type="6002">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VdhU5y6yEeyCpNx8mY8t3Q" y="10"/>
@@ -854,8 +755,8 @@
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_VdhU4S6yEeyCpNx8mY8t3Q" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_VdhU4i6yEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VdhU4y6yEeyCpNx8mY8t3Q" points="[0, 0, -98, 110]$[98, -110, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VdhU6i6yEeyCpNx8mY8t3Q" id="(0.6113989637305699,0.6122448979591837)"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VdhU4y6yEeyCpNx8mY8t3Q" points="[0, -60, -107, 99]$[0, -84, -107, 75]$[60, -84, -47, 75]$[60, -110, -47, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VdhU6i6yEeyCpNx8mY8t3Q" id="(0.6808510638297872,0.6122448979591837)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VdhU6y6yEeyCpNx8mY8t3Q" id="(0.8178807947019867,0.5)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_V-Kj0C6yEeyCpNx8mY8t3Q" type="4001" element="_V-FEcC6yEeyCpNx8mY8t3Q" source="_NwEqYC6ZEeyCpNx8mY8t3Q" target="_kms9gC6REeyCpNx8mY8t3Q">
@@ -887,57 +788,521 @@
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_WcISMS6yEeyCpNx8mY8t3Q" routing="Tree"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_WcISMi6yEeyCpNx8mY8t3Q" fontName="Segoe UI" fontHeight="8"/>
           <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WcISMy6yEeyCpNx8mY8t3Q" points="[0, 0, 378, 99]$[0, -21, 378, 78]$[-326, -21, 52, 78]$[-326, -50, 52, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WcI5Qi6yEeyCpNx8mY8t3Q" id="(0.9152542372881356,0.0)"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WcI5Qi6yEeyCpNx8mY8t3Q" id="(0.7609756097560976,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WcI5Qy6yEeyCpNx8mY8t3Q" id="(0.15894039735099338,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_QX1YAC6zEeyCpNx8mY8t3Q" type="4001" element="_QXv4oC6zEeyCpNx8mY8t3Q" source="_RHJ68C6ZEeyCpNx8mY8t3Q" target="_VbrrMC6ZEeyCpNx8mY8t3Q">
-          <children xmi:type="notation:Node" xmi:id="_QX1_EC6zEeyCpNx8mY8t3Q" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QX1_ES6zEeyCpNx8mY8t3Q" x="-5" y="51"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_QX1_Ei6zEeyCpNx8mY8t3Q" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QX1_Ey6zEeyCpNx8mY8t3Q" x="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_QX1_FC6zEeyCpNx8mY8t3Q" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QX1_FS6zEeyCpNx8mY8t3Q" x="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_QX1YAS6zEeyCpNx8mY8t3Q" routing="Rectilinear"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_QX1YAi6zEeyCpNx8mY8t3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QX1YAy6zEeyCpNx8mY8t3Q" points="[110, 49, 0, -70]$[110, 119, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QX1_Fi6zEeyCpNx8mY8t3Q" id="(0.0,0.5)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QX1_Fy6zEeyCpNx8mY8t3Q" id="(0.6101694915254238,0.0)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_z-yckC9nEeynkLhTij6AiA" type="4001" element="_z-s9CC9nEeynkLhTij6AiA" source="_kms9gC6REeyCpNx8mY8t3Q" target="_wX1MwC6SEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_z-yclC9nEeynkLhTij6AiA" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-yclS9nEeynkLhTij6AiA" x="-46" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-yclS9nEeynkLhTij6AiA" x="14" y="10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_z-ycli9nEeynkLhTij6AiA" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-ycly9nEeynkLhTij6AiA" x="-5"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-ycly9nEeynkLhTij6AiA" x="-17" y="16"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_z-ycmC9nEeynkLhTij6AiA" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-ycmS9nEeynkLhTij6AiA" x="-26" y="-8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-ycmS9nEeynkLhTij6AiA" x="49" y="39"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_z-yckS9nEeynkLhTij6AiA" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_z-ycki9nEeynkLhTij6AiA" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z-ycky9nEeynkLhTij6AiA" points="[-45, -49, 144, 181]$[-45, -165, 144, 65]$[-139, -165, 50, 65]$[-139, -181, 50, 49]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z-ycky9nEeynkLhTij6AiA" points="[-75, -25, 378, 203]$[-405, -25, 48, 203]$[-405, -179, 48, 49]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z-zDoC9nEeynkLhTij6AiA" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z-zDoS9nEeynkLhTij6AiA" id="(0.5,0.5)"/>
         </edges>
         <edges xmi:type="notation:Edge" xmi:id="_FXNg8C9oEeynkLhTij6AiA" type="4001" element="_FXJ2nC9oEeynkLhTij6AiA" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_GKmeEC6qEeyCpNx8mY8t3Q">
           <children xmi:type="notation:Node" xmi:id="_FXOIAC9oEeynkLhTij6AiA" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXOIAS9oEeynkLhTij6AiA" x="-3" y="-10"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXOIAS9oEeynkLhTij6AiA" y="-10"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_FXOIAi9oEeynkLhTij6AiA" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXOIAy9oEeynkLhTij6AiA" x="17" y="-16"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXOIAy9oEeynkLhTij6AiA" x="24" y="-16"/>
           </children>
           <children xmi:type="notation:Node" xmi:id="_FXOIBC9oEeynkLhTij6AiA" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXOIBS9oEeynkLhTij6AiA" x="-12" y="-16"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXOIBS9oEeynkLhTij6AiA" x="-25" y="-17"/>
           </children>
           <styles xmi:type="notation:ConnectorStyle" xmi:id="_FXNg8S9oEeynkLhTij6AiA" routing="Rectilinear"/>
           <styles xmi:type="notation:FontStyle" xmi:id="_FXNg8i9oEeynkLhTij6AiA" fontName="Segoe UI" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FXNg8y9oEeynkLhTij6AiA" points="[73, -1, -310, -7]$[324, -1, -59, -7]"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FXNg8y9oEeynkLhTij6AiA" points="[73, 23, -304, 5]$[318, 23, -59, 5]"/>
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FXOIBi9oEeynkLhTij6AiA" id="(0.5,0.5)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FXOIBy9oEeynkLhTij6AiA" id="(0.5,0.5)"/>
         </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_37piYDAlEey6-sCr3AHIIw" type="4001" element="_37bgDjAlEey6-sCr3AHIIw" source="_xo1ggDAlEey6-sCr3AHIIw" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_37qJcDAlEey6-sCr3AHIIw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37qJcTAlEey6-sCr3AHIIw" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_37qwgDAlEey6-sCr3AHIIw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37qwgTAlEey6-sCr3AHIIw" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_37qwgjAlEey6-sCr3AHIIw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37qwgzAlEey6-sCr3AHIIw" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_37piYTAlEey6-sCr3AHIIw" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_37piYjAlEey6-sCr3AHIIw" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_37piYzAlEey6-sCr3AHIIw" points="[0, 0, 106, 22]$[-106, -22, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37slsDAlEey6-sCr3AHIIw" id="(0.4840764331210191,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_37slsTAlEey6-sCr3AHIIw" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_4VtoMDAlEey6-sCr3AHIIw" type="4001" element="_4ViCHjAlEey6-sCr3AHIIw" source="_yo2MADAlEey6-sCr3AHIIw" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_4VuPQDAlEey6-sCr3AHIIw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4VuPQTAlEey6-sCr3AHIIw" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_4VuPQjAlEey6-sCr3AHIIw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4VuPQzAlEey6-sCr3AHIIw" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_4VuPRDAlEey6-sCr3AHIIw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4VuPRTAlEey6-sCr3AHIIw" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_4VtoMTAlEey6-sCr3AHIIw" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_4VtoMjAlEey6-sCr3AHIIw" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4VtoMzAlEey6-sCr3AHIIw" points="[0, 0, -145, 22]$[145, -22, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4VuPRjAlEey6-sCr3AHIIw" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4VuPRzAlEey6-sCr3AHIIw" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_zOezMDAmEey6-sCr3AHIIw" type="4001" element="_zOVpfDAmEey6-sCr3AHIIw" source="_yo2MADAlEey6-sCr3AHIIw" target="_wX1MwC6SEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_zOezNDAmEey6-sCr3AHIIw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zOezNTAmEey6-sCr3AHIIw" x="-141" y="37"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zOezNjAmEey6-sCr3AHIIw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zOezNzAmEey6-sCr3AHIIw" x="37" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_zOezODAmEey6-sCr3AHIIw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zOezOTAmEey6-sCr3AHIIw" x="6" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_zOezMTAmEey6-sCr3AHIIw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_zOezMjAmEey6-sCr3AHIIw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zOezMzAmEey6-sCr3AHIIw" points="[-74, 0, -36, 533]$[-74, -533, -36, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zOfaQDAmEey6-sCr3AHIIw" id="(0.8135593220338984,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zOfaQTAmEey6-sCr3AHIIw" id="(0.496551724137931,1.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_TCf-cDAnEey6-sCr3AHIIw" type="4001" element="_TCcUIjAnEey6-sCr3AHIIw" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_TCf-dDAnEey6-sCr3AHIIw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TCf-dTAnEey6-sCr3AHIIw" x="-18" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_TCf-djAnEey6-sCr3AHIIw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TCf-dzAnEey6-sCr3AHIIw" x="3" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_TCf-eDAnEey6-sCr3AHIIw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TCf-eTAnEey6-sCr3AHIIw" x="-5" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_TCf-cTAnEey6-sCr3AHIIw" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_TCf-cjAnEey6-sCr3AHIIw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TCf-czAnEey6-sCr3AHIIw" points="[-72, 35, 187, -397]$[-131, 35, 128, -397]$[-131, 432, 128, 0]$[-185, 432, 74, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TCf-ejAnEey6-sCr3AHIIw" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TCf-ezAnEey6-sCr3AHIIw" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_9FmZcDG_Eeyfr9efKJlILg" type="4001" element="_9FfEsDG_Eeyfr9efKJlILg" source="_RHJ68C6ZEeyCpNx8mY8t3Q" target="_J3M5IDG_Eeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_9FoOoDG_Eeyfr9efKJlILg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9FoOoTG_Eeyfr9efKJlILg" x="-56" y="-1"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9FoOojG_Eeyfr9efKJlILg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9FoOozG_Eeyfr9efKJlILg" x="78"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_9Fo1sDG_Eeyfr9efKJlILg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Fo1sTG_Eeyfr9efKJlILg" x="-25"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_9FmZcTG_Eeyfr9efKJlILg" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_9FmZcjG_Eeyfr9efKJlILg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9FmZczG_Eeyfr9efKJlILg" points="[-122, 49, -1, -204]$[-122, 204, -1, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9FsgEDG_Eeyfr9efKJlILg" id="(0.5893617021276596,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9FsgETG_Eeyfr9efKJlILg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_H4GSsDHAEeyfr9efKJlILg" type="4001" element="_H343VjHAEeyfr9efKJlILg" source="_L-RTUDG_Eeyfr9efKJlILg" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_H4GStDHAEeyfr9efKJlILg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H4GStTHAEeyfr9efKJlILg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_H4GStjHAEeyfr9efKJlILg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H4GStzHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_H4GSuDHAEeyfr9efKJlILg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H4GSuTHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_H4GSsTHAEeyfr9efKJlILg" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_H4GSsjHAEeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_H4GSszHAEeyfr9efKJlILg" points="[0, -42, -67, 107]$[0, -82, -67, 67]$[68, -82, 1, 67]$[68, -100, 1, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_H4GSujHAEeyfr9efKJlILg" id="(1.0,0.42857142857142855)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_H4GSuzHAEeyfr9efKJlILg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_IcRWwDHAEeyfr9efKJlILg" type="4001" element="_IcD7eDHAEeyfr9efKJlILg" source="_2YrOcDG_Eeyfr9efKJlILg" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_IcRWxDHAEeyfr9efKJlILg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IcRWxTHAEeyfr9efKJlILg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_IcRWxjHAEeyfr9efKJlILg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IcRWxzHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_IcRWyDHAEeyfr9efKJlILg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IcRWyTHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_IcRWwTHAEeyfr9efKJlILg" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_IcRWwjHAEeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IcRWwzHAEeyfr9efKJlILg" points="[0, 0, 0, 58]$[0, -58, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IcR90DHAEeyfr9efKJlILg" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IcR90THAEeyfr9efKJlILg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_I93n8DHAEeyfr9efKJlILg" type="4001" element="_I9plhjHAEeyfr9efKJlILg" source="_zJZPADG_Eeyfr9efKJlILg" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_I93n9DHAEeyfr9efKJlILg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I93n9THAEeyfr9efKJlILg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_I93n9jHAEeyfr9efKJlILg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I93n9zHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_I93n-DHAEeyfr9efKJlILg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I93n-THAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_I93n8THAEeyfr9efKJlILg" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_I93n8jHAEeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_I93n8zHAEeyfr9efKJlILg" points="[0, 0, 156, 58]$[-156, -58, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I93n-jHAEeyfr9efKJlILg" id="(0.9356435643564357,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I94PADHAEeyfr9efKJlILg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_K6QcIDHAEeyfr9efKJlILg" type="4001" element="_K6EPBDHAEeyfr9efKJlILg" source="_J3M5IDG_Eeyfr9efKJlILg" target="_oBsnIDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_K6QcJDHAEeyfr9efKJlILg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K6QcJTHAEeyfr9efKJlILg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_K6QcJjHAEeyfr9efKJlILg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K6QcJzHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_K6RDMDHAEeyfr9efKJlILg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_K6RDMTHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_K6QcITHAEeyfr9efKJlILg" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_K6QcIjHAEeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_K6QcIzHAEeyfr9efKJlILg" points="[0, -42, 337, 107]$[0, -66, 337, 83]$[-336, -66, 1, 83]$[-336, -100, 1, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_K6RDMjHAEeyfr9efKJlILg" id="(0.0,0.42857142857142855)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_K6RDMzHAEeyfr9efKJlILg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_gFPMIDHAEeyfr9efKJlILg" type="4001" element="_gFE0HDHAEeyfr9efKJlILg" source="_eiwFsDHAEeyfr9efKJlILg" target="_VbrrMC6ZEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_gFPMJDHAEeyfr9efKJlILg" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFPMJTHAEeyfr9efKJlILg" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_gFPMJjHAEeyfr9efKJlILg" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFPMJzHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_gFPMKDHAEeyfr9efKJlILg" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gFPMKTHAEeyfr9efKJlILg" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_gFPMITHAEeyfr9efKJlILg" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_gFPMIjHAEeyfr9efKJlILg" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gFPMIzHAEeyfr9efKJlILg" points="[0, 0, 0, 17]$[0, -17, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gFPMKjHAEeyfr9efKJlILg" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gFPMKzHAEeyfr9efKJlILg" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_ESaI8DHBEeyEoctDEMZZdA" type="4001" element="_ER39djHBEeyEoctDEMZZdA" source="_ISkHkC6TEeyCpNx8mY8t3Q" target="_ialEMC6REeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_ESfogDHBEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ESfogTHBEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ESg2oDHBEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ESg2oTHBEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_EShdsDHBEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EShdsTHBEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_ESaI8THBEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_ESaI8jHBEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ESaI8zHBEeyEoctDEMZZdA" points="[0, 0, 0, -52]$[0, 52, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ESkhADHBEeyEoctDEMZZdA" id="(0.6445783132530121,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ESkhATHBEeyEoctDEMZZdA" id="(0.39072847682119205,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_EvnpYDHBEeyEoctDEMZZdA" type="4001" element="_EvNZvDHBEeyEoctDEMZZdA" source="_IjzBgC6TEeyCpNx8mY8t3Q" target="_ialEMC6REeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_EvnpZDHBEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EvnpZTHBEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_EvnpZjHBEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EvnpZzHBEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_EvnpaDHBEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EvnpaTHBEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_EvnpYTHBEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_EvnpYjHBEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EvnpYzHBEeyEoctDEMZZdA" points="[0, 0, 117, -105]$[-117, 105, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EvnpajHBEeyEoctDEMZZdA" id="(0.5615384615384615,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EvnpazHBEeyEoctDEMZZdA" id="(0.0,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_S-2dUDHDEeyEoctDEMZZdA" type="4001" element="_S-vItzHDEeyEoctDEMZZdA" source="_dfiM4C6ZEeyCpNx8mY8t3Q" target="_kms9gC6REeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_S-3EYDHDEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-3EYTHDEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_S-3EYjHDEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-3EYzHDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_S-3EZDHDEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_S-3EZTHDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_S-2dUTHDEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_S-2dUjHDEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_S-2dUzHDEeyEoctDEMZZdA" points="[0, 0, 72, -156]$[-72, 156, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S-3EZjHDEeyEoctDEMZZdA" id="(0.0,0.7346938775510204)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_S-3EZzHDEeyEoctDEMZZdA" id="(0.15894039735099338,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_aG3B0DHDEeyEoctDEMZZdA" type="4001" element="_aGufMjHDEeyEoctDEMZZdA" source="_gJTrgC6ZEeyCpNx8mY8t3Q" target="_dfiM4C6ZEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_aG3B1DHDEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG3B1THDEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_aG3B1jHDEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG3B1zHDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_aG3B2DHDEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aG3B2THDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_aG3B0THDEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_aG3B0jHDEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aG3B0zHDEeyEoctDEMZZdA" points="[0, -66, -87, 107]$[0, -96, -87, 77]$[88, -96, 1, 77]$[88, -124, 1, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aG3o4DHDEeyEoctDEMZZdA" id="(1.0,0.673469387755102)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aG3o4THDEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_afkcwDHDEeyEoctDEMZZdA" type="4001" element="_afb6KDHDEeyEoctDEMZZdA" source="_h94ngC6ZEeyCpNx8mY8t3Q" target="_dfiM4C6ZEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_afkcxDHDEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afkcxTHDEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_afkcxjHDEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afkcxzHDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_afkcyDHDEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_afkcyTHDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_afkcwTHDEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_afkcwjHDEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_afkcwzHDEeyEoctDEMZZdA" points="[0, 0, 0, 58]$[0, -58, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afkcyjHDEeyEoctDEMZZdA" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_afkcyzHDEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_a3Ou0DHDEeyEoctDEMZZdA" type="4001" element="_a3GzSzHDEeyEoctDEMZZdA" source="_kVdi4C6ZEeyCpNx8mY8t3Q" target="_dfiM4C6ZEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_a3PV4DHDEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a3PV4THDEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_a3PV4jHDEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a3PV4zHDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_a3PV5DHDEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a3PV5THDEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_a3Ou0THDEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_a3Ou0jHDEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a3Ou0zHDEeyEoctDEMZZdA" points="[0, 0, 156, 58]$[-156, -58, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a3PV5jHDEeyEoctDEMZZdA" id="(0.6101694915254238,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a3PV5zHDEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_CPiK4DHEEeyEoctDEMZZdA" type="4001" element="_CPaPEDHEEeyEoctDEMZZdA" source="_EvlTkC6UEeyCpNx8mY8t3Q" target="_xo1ggDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_CPiK5DHEEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CPiK5THEEeyEoctDEMZZdA" x="-252" y="-1"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_CPiK5jHEEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CPiK5zHEEeyEoctDEMZZdA" x="85" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_CPiK6DHEEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CPiK6THEEeyEoctDEMZZdA" x="-88" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_CPiK4THEEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_CPiK4jHEEeyEoctDEMZZdA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CPiK4zHEEeyEoctDEMZZdA" points="[-36, -48, -36, -581]$[-110, -48, -110, -581]$[-110, 583, -110, 50]$[-78, 583, -78, 50]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CPiK6jHEEeyEoctDEMZZdA" id="(0.1925133689839572,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CPiK6zHEEeyEoctDEMZZdA" id="(0.4968152866242038,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_J50WADHEEeyEoctDEMZZdA" type="4001" element="_J5rzVzHEEeyEoctDEMZZdA" source="_fPQQUC6UEeyCpNx8mY8t3Q" target="_xo1ggDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_J50WBDHEEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J50WBTHEEeyEoctDEMZZdA" x="-167" y="-11"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_J50WBjHEEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J50WBzHEEeyEoctDEMZZdA" x="-4" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_J50WCDHEEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J50WCTHEEeyEoctDEMZZdA" x="-39" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_J50WATHEEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_J50WAjHEEeyEoctDEMZZdA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J50WAzHEEeyEoctDEMZZdA" points="[-15, 0, 0, -396]$[-15, 396, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J50WCjHEEeyEoctDEMZZdA" id="(0.4329896907216495,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J50WCzHEEeyEoctDEMZZdA" id="(0.17197452229299362,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_G0DawDHLEeyEoctDEMZZdA" type="4001" element="_Gz64CjHLEeyEoctDEMZZdA" source="_EvlTkC6UEeyCpNx8mY8t3Q" target="_L-RTUDG_Eeyfr9efKJlILg">
+          <children xmi:type="notation:Node" xmi:id="_G0EB0DHLEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G0EB0THLEeyEoctDEMZZdA" x="-222" y="-16"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_G0EB0jHLEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G0EB0zHLEeyEoctDEMZZdA" x="51" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_G0EB1DHLEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G0EB1THLEeyEoctDEMZZdA" x="-41" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_G0DawTHLEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_G0DawjHLEeyEoctDEMZZdA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G0DawzHLEeyEoctDEMZZdA" points="[61, -18, -16, -551]$[96, -18, 19, -551]$[96, 533, 19, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G0EB1jHLEeyEoctDEMZZdA" id="(0.6737967914438503,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G0EB1zHLEeyEoctDEMZZdA" id="(0.5,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_silnMDHMEeyEoctDEMZZdA" type="4001" element="_sijLBTHMEeyEoctDEMZZdA" source="_wX1MwC6SEeyCpNx8mY8t3Q" target="_cu3sQDHLEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_silnNDHMEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_silnNTHMEeyEoctDEMZZdA" x="-8" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_silnNjHMEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_silnNzHMEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_silnODHMEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_silnOTHMEeyEoctDEMZZdA" x="8" y="14"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_silnMTHMEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_silnMjHMEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_silnMzHMEeyEoctDEMZZdA" points="[73, -43, -538, -26]$[552, -43, -59, -26]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_simOQDHMEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_simOQTHMEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_yOv4wDHMEeyEoctDEMZZdA" type="4001" element="_yOnWCjHMEeyEoctDEMZZdA" source="_cu3sQDHLEeyEoctDEMZZdA" target="_kms9gC6REeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_yOv4xDHMEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yOv4xTHMEeyEoctDEMZZdA" x="-91" y="44"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_yOv4xjHMEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yOv4xzHMEeyEoctDEMZZdA" x="4" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_yOv4yDHMEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yOv4yTHMEeyEoctDEMZZdA" x="-21" y="92"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_yOv4wTHMEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_yOv4wjHMEeyEoctDEMZZdA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yOv4wzHMEeyEoctDEMZZdA" points="[0, 0, 146, -147]$[0, 195, 146, 48]$[-71, 195, 75, 48]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yOv4yjHMEeyEoctDEMZZdA" id="(0.4067796610169492,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yOv4yzHMEeyEoctDEMZZdA" id="(0.5033112582781457,0.0)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_svciADHNEeyEoctDEMZZdA" type="4001" element="_svVNdjHNEeyEoctDEMZZdA" source="_cts8sDHNEeyEoctDEMZZdA" target="_Ivp54DHNEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_svciBDHNEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_svciBTHNEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_svciBjHNEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_svciBzHNEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_svciCDHNEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_svciCTHNEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_svciATHNEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_svciAjHNEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_svciAzHNEeyEoctDEMZZdA" points="[0, 0, 86, -84]$[-86, 84, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_svciCjHNEeyEoctDEMZZdA" id="(0.0,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_svciCzHNEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_tmrE8DHNEeyEoctDEMZZdA" type="4001" element="_tmjJXDHNEeyEoctDEMZZdA" source="_eUiXoDHNEeyEoctDEMZZdA" target="_Ivp54DHNEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_tmrE9DHNEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tmrE9THNEeyEoctDEMZZdA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_tmrE9jHNEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tmrE9zHNEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_tmrE-DHNEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tmrE-THNEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_tmrE8THNEeyEoctDEMZZdA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_tmrE8jHNEeyEoctDEMZZdA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tmrE8zHNEeyEoctDEMZZdA" points="[0, -49, 131, 34]$[0, -148, 131, -65]$[-130, -148, 1, -65]$[-130, -132, 1, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tmrE-jHNEeyEoctDEMZZdA" id="(0.0,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tmrE-zHNEeyEoctDEMZZdA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_wntNADHNEeyEoctDEMZZdA" type="4001" element="_wnlRbzHNEeyEoctDEMZZdA" source="_cu3sQDHLEeyEoctDEMZZdA" target="_Ivp54DHNEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_wntNBDHNEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wntNBTHNEeyEoctDEMZZdA" x="-81" y="41"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_wntNBjHNEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wntNBzHNEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_wntNCDHNEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wntNCTHNEeyEoctDEMZZdA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_wntNATHNEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_wntNAjHNEeyEoctDEMZZdA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wntNAzHNEeyEoctDEMZZdA" points="[0, 0, -194, -199]$[97, 0, -97, -199]$[97, 199, -97, 0]$[194, 199, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wnt0EDHNEeyEoctDEMZZdA" id="(1.0,0.6632653061224489)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wnt0ETHNEeyEoctDEMZZdA" id="(0.0,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Dk0XQDHOEeyEoctDEMZZdA" type="4001" element="_DksboDHOEeyEoctDEMZZdA" source="_eUiXoDHNEeyEoctDEMZZdA" target="_wX1MwC6SEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_Dk0XRDHOEeyEoctDEMZZdA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dk0XRTHOEeyEoctDEMZZdA" x="-671" y="358"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Dk0-UDHOEeyEoctDEMZZdA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dk0-UTHOEeyEoctDEMZZdA" x="38"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Dk0-UjHOEeyEoctDEMZZdA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dk0-UzHOEeyEoctDEMZZdA" x="-53"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Dk0XQTHOEeyEoctDEMZZdA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Dk0XQjHOEeyEoctDEMZZdA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Dk0XQzHOEeyEoctDEMZZdA" points="[73, 37, 1054, 319]$[73, 414, 1054, 696]$[-1120, 414, -139, 696]$[-1120, -244, -139, 38]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Dk0-VDHOEeyEoctDEMZZdA" id="(0.0,0.6224489795918368)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Dk0-VTHOEeyEoctDEMZZdA" id="(1.0,0.6122448979591837)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_cb-eEDHOEeyCloIdVdmTHA" type="4001" element="_cbOQODHOEeyCloIdVdmTHA" source="_5Pq90DHMEeyEoctDEMZZdA" target="_cu3sQDHLEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_ccDWkDHOEeyCloIdVdmTHA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccDWkTHOEeyCloIdVdmTHA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ccD9oDHOEeyCloIdVdmTHA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccD9oTHOEeyCloIdVdmTHA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_ccD9ojHOEeyCloIdVdmTHA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccD9ozHOEeyCloIdVdmTHA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_cb-eETHOEeyCloIdVdmTHA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_cb-eEjHOEeyCloIdVdmTHA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cb-eEzHOEeyCloIdVdmTHA" points="[0, 0, -58, -113]$[58, 113, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccHoADHOEeyCloIdVdmTHA" id="(0.5,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ccHoATHOEeyCloIdVdmTHA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_c4HAcDHOEeyCloIdVdmTHA" type="4001" element="_c3ptgjHOEeyCloIdVdmTHA" source="_8dMCsDHMEeyEoctDEMZZdA" target="_cu3sQDHLEeyEoctDEMZZdA">
+          <children xmi:type="notation:Node" xmi:id="_c4HAdDHOEeyCloIdVdmTHA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c4HAdTHOEeyCloIdVdmTHA" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_c4HAdjHOEeyCloIdVdmTHA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c4HAdzHOEeyCloIdVdmTHA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_c4HAeDHOEeyCloIdVdmTHA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c4HAeTHOEeyCloIdVdmTHA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_c4HAcTHOEeyCloIdVdmTHA" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_c4HAcjHOEeyCloIdVdmTHA" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c4HAczHOEeyCloIdVdmTHA" points="[0, 0, 125, -113]$[-125, 113, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c4HngDHOEeyCloIdVdmTHA" id="(0.6101694915254238,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c4HngTHOEeyCloIdVdmTHA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Q4DAgDHREeyCloIdVdmTHA" type="4001" element="_Q3_WPjHREeyCloIdVdmTHA" source="_RHJ68C6ZEeyCpNx8mY8t3Q" target="_VbrrMC6ZEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_Q4DnkDHREeyCloIdVdmTHA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q4DnkTHREeyCloIdVdmTHA" x="-14" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Q4DnkjHREeyCloIdVdmTHA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q4DnkzHREeyCloIdVdmTHA" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Q4DnlDHREeyCloIdVdmTHA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q4DnlTHREeyCloIdVdmTHA" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Q4DAgTHREeyCloIdVdmTHA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Q4DAgjHREeyCloIdVdmTHA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q4DAgzHREeyCloIdVdmTHA" points="[54, 49, -1, -106]$[54, 119, -1, -36]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q4DnljHREeyCloIdVdmTHA" id="(0.5,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q4DnlzHREeyCloIdVdmTHA" id="(0.5,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_nwYDIDHREeyCloIdVdmTHA" type="4001" element="_nwO5ZjHREeyCloIdVdmTHA" source="_MzDohi6ZEeyCpNx8mY8t3Q" target="_xo1ggDAlEey6-sCr3AHIIw">
+          <children xmi:type="notation:Node" xmi:id="_nwYDJDHREeyCloIdVdmTHA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nwYDJTHREeyCloIdVdmTHA" x="-370" y="289"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_nwYDJjHREeyCloIdVdmTHA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nwYDJzHREeyCloIdVdmTHA" x="79" y="235"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_nwYqMDHREeyCloIdVdmTHA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nwYqMTHREeyCloIdVdmTHA" x="-101" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_nwYDITHREeyCloIdVdmTHA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_nwYDIjHREeyCloIdVdmTHA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nwYDIzHREeyCloIdVdmTHA" points="[48, 43, 1031, -226]$[48, 353, 1031, 84]$[-1061, 353, -78, 84]$[-1061, 296, -78, 27]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nwYqMjHREeyCloIdVdmTHA" id="(0.0,0.5612244897959183)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nwYqMzHREeyCloIdVdmTHA" id="(1.0,0.7244897959183674)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_0lCBYDHREeyCloIdVdmTHA" type="4001" element="_0k6FwDHREeyCloIdVdmTHA" source="_MzDohi6ZEeyCpNx8mY8t3Q" target="_VbrrMC6ZEeyCpNx8mY8t3Q">
+          <children xmi:type="notation:Node" xmi:id="_0lCoczHREeyCloIdVdmTHA" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lCodDHREeyCloIdVdmTHA" x="15" y="-16"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_0lCodTHREeyCloIdVdmTHA" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lCodjHREeyCloIdVdmTHA" x="16" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_0lCodzHREeyCloIdVdmTHA" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0lCoeDHREeyCloIdVdmTHA" x="-16" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_0lCocDHREeyCloIdVdmTHA" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_0lCocTHREeyCloIdVdmTHA" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0lCocjHREeyCloIdVdmTHA" points="[-110, 0, 235, -88]$[-110, 86, 235, -2]$[-345, 86, 0, -2]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0lCoeTHREeyCloIdVdmTHA" id="(0.8195121951219512,1.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0lCoejHREeyCloIdVdmTHA" id="(1.0,0.2465753424657534)"/>
+        </edges>
       </data>
     </ownedAnnotationEntries>
     <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_QcwzwC6REeyCpNx8mY8t3Q" source="DANNOTATION_CUSTOMIZATION_KEY">
@@ -985,6 +1350,16 @@
             <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
           </endLabelStyleDescription>
         </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_yZ_C8DHNEeyEoctDEMZZdA" sourceArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_yZ_C8THNEeyEoctDEMZZdA" showIcon="false" labelExpression="service:render">
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </centerLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_yZ_C8jHNEeyEoctDEMZZdA" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
       </data>
     </ownedAnnotationEntries>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_SVmksC6REeyCpNx8mY8t3Q" name="Game" tooltipText="" outgoingEdges="_m463wC6REeyCpNx8mY8t3Q _yO8U1i6REeyCpNx8mY8t3Q _0mskcC6TEeyCpNx8mY8t3Q" width="12" height="10">
@@ -1025,19 +1400,27 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iajPAC6REeyCpNx8mY8t3Q" name="GUIElement" tooltipText="" outgoingEdges="_mfEX8i6SEeyCpNx8mY8t3Q" incomingEdges="_yO8U1i6REeyCpNx8mY8t3Q _yiKODi6gEeyCpNx8mY8t3Q _1fZbPi6gEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_iajPAC6REeyCpNx8mY8t3Q" name="GUIElement" tooltipText="" outgoingEdges="_mfEX8i6SEeyCpNx8mY8t3Q" incomingEdges="_yO8U1i6REeyCpNx8mY8t3Q _ER39djHBEeyEoctDEMZZdA _EvNZvDHBEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//GUIElement"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//GUIElement"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_WoUFJS6TEeyCpNx8mY8t3Q" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_I8wGRTHDEeyEoctDEMZZdA" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
         <labelFormat>italic</labelFormat>
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_IGxggDHDEeyEoctDEMZZdA" name="description : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//GUIElement/description"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//GUIElement/description"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_I8xUaDHDEeyEoctDEMZZdA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_kmp6MC6REeyCpNx8mY8t3Q" name="GameAction" tooltipText="" outgoingEdges="_z-s9CC9nEeynkLhTij6AiA" incomingEdges="_FM1zOy6bEeyCpNx8mY8t3Q _FqtbEC6bEeyCpNx8mY8t3Q _acjUgC6qEeyCpNx8mY8t3Q _Vdb1bi6yEeyCpNx8mY8t3Q _V-FEcC6yEeyCpNx8mY8t3Q _WcCy0C6yEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_kmp6MC6REeyCpNx8mY8t3Q" name="GameAction" tooltipText="" outgoingEdges="_z-s9CC9nEeynkLhTij6AiA" incomingEdges="_FM1zOy6bEeyCpNx8mY8t3Q _FqtbEC6bEeyCpNx8mY8t3Q _acjUgC6qEeyCpNx8mY8t3Q _Vdb1bi6yEeyCpNx8mY8t3Q _V-FEcC6yEeyCpNx8mY8t3Q _WcCy0C6yEeyCpNx8mY8t3Q _S-vItzHDEeyEoctDEMZZdA _yOnWCjHMEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//GameAction"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//GameAction"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1093,7 +1476,7 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JYId8C6SEeyCpNx8mY8t3Q" name="type : DataType = int" tooltipText="">
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_JYId8C6SEeyCpNx8mY8t3Q" name="type : EDataType = int" tooltipText="">
         <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Data/type"/>
         <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Data/type"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_iiMSoy6SEeyCpNx8mY8t3Q" labelAlignment="LEFT">
@@ -1102,9 +1485,9 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_KXVRIC6SEeyCpNx8mY8t3Q" name="DataType" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//DataType"/>
-      <semanticElements xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//DataType"/>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_KXVRIC6SEeyCpNx8mY8t3Q" name="EDataType" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//EDataType"/>
+      <semanticElements xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//EDataType"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
@@ -1113,37 +1496,29 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
       <ownedElements xmi:type="diagram:DNodeListElement" uid="_SLGvcC6SEeyCpNx8mY8t3Q" name="int" tooltipText="">
-        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/int"/>
-        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/int"/>
+        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//EDataType/int"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//EDataType/int"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_SLGvcS6SEeyCpNx8mY8t3Q" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
       </ownedElements>
       <ownedElements xmi:type="diagram:DNodeListElement" uid="_S43NUC6SEeyCpNx8mY8t3Q" name="float" tooltipText="">
-        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/float"/>
-        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/float"/>
+        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//EDataType/float"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//EDataType/float"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_S43NUS6SEeyCpNx8mY8t3Q" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
       </ownedElements>
       <ownedElements xmi:type="diagram:DNodeListElement" uid="_T-sM8C6SEeyCpNx8mY8t3Q" name="string" tooltipText="">
-        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/string"/>
-        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/string"/>
+        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//EDataType/string"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//EDataType/string"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="_T-sM8S6SEeyCpNx8mY8t3Q" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_jVSdUC6vEeyCpNx8mY8t3Q" name="GameObject" tooltipText="">
-        <target xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/GameObject"/>
-        <semanticElements xmi:type="ecore:EEnumLiteral" href="GameDSL_v2.ecore#//DataType/GameObject"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_jVTEYC6vEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
-      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_mfEX8i6SEeyCpNx8mY8t3Q" name="[1..1] data" sourceNode="_iajPAC6REeyCpNx8mY8t3Q" targetNode="_7PJxEC6REeyCpNx8mY8t3Q">
       <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//GUIElement/data"/>
@@ -1156,7 +1531,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_wXxiYC6SEeyCpNx8mY8t3Q" name="Component" tooltipText="" outgoingEdges="__TgInC6XEeyCpNx8mY8t3Q _UszBeC6YEeyCpNx8mY8t3Q _FM1zOy6bEeyCpNx8mY8t3Q _FqtbEC6bEeyCpNx8mY8t3Q _-yDY1i6oEeyCpNx8mY8t3Q _mSi43C6vEeyCpNx8mY8t3Q _FXJ2nC9oEeynkLhTij6AiA" incomingEdges="_0mskcC6TEeyCpNx8mY8t3Q _z-s9CC9nEeynkLhTij6AiA" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_wXxiYC6SEeyCpNx8mY8t3Q" name="Component" tooltipText="" outgoingEdges="_FM1zOy6bEeyCpNx8mY8t3Q _FqtbEC6bEeyCpNx8mY8t3Q _-yDY1i6oEeyCpNx8mY8t3Q _FXJ2nC9oEeynkLhTij6AiA _TCcUIjAnEey6-sCr3AHIIw _sijLBTHMEeyEoctDEMZZdA" incomingEdges="_0mskcC6TEeyCpNx8mY8t3Q _z-s9CC9nEeynkLhTij6AiA _zOVpfDAmEey6-sCr3AHIIw _DksboDHOEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Component"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Component"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1174,27 +1549,35 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_M1QvUC6WEeyCpNx8mY8t3Q" name="tag : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Component/tag"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Component/tag"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_QHFsdi6WEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ISf2IC6TEeyCpNx8mY8t3Q" name="BarDisplay" tooltipText="" outgoingEdges="_yiKODi6gEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ISf2IC6TEeyCpNx8mY8t3Q" name="BarDisplay" tooltipText="" outgoingEdges="_ER39djHBEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//BarDisplay"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//BarDisplay"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_ISgdMC6TEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_-QQHXTHCEeyEoctDEMZZdA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_8OKTwDHCEeyEoctDEMZZdA" name="minValue : EString = 0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//BarDisplay/minValue"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//BarDisplay/minValue"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_-QR8gTHCEeyEoctDEMZZdA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_88k48DHCEeyEoctDEMZZdA" name="maxValue : EString = 0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//BarDisplay/maxValue"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//BarDisplay/maxValue"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_9ix9UzHCEeyEoctDEMZZdA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IjvXIC6TEeyCpNx8mY8t3Q" name="TextDisplay" tooltipText="" outgoingEdges="_1fZbPi6gEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IjvXIC6TEeyCpNx8mY8t3Q" name="TextDisplay" tooltipText="" outgoingEdges="_EvNZvDHBEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TextDisplay"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TextDisplay"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1258,7 +1641,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_EvhpMC6UEeyCpNx8mY8t3Q" name="Movement" tooltipText="" incomingEdges="_r-2vcC6UEeyCpNx8mY8t3Q _sfxEJi6UEeyCpNx8mY8t3Q _-yDY1i6oEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_EvhpMC6UEeyCpNx8mY8t3Q" name="Movement" tooltipText="" outgoingEdges="_CPaPEDHEEeyEoctDEMZZdA _Gz64CjHLEeyEoctDEMZZdA" incomingEdges="_r-2vcC6UEeyCpNx8mY8t3Q _sfxEJi6UEeyCpNx8mY8t3Q _-yDY1i6oEeyCpNx8mY8t3Q" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Movement"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Movement"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1269,22 +1652,6 @@
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_LUGJcC6UEeyCpNx8mY8t3Q" name="acceleration : EFloat = 0.0" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Movement/acceleration"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Movement/acceleration"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_TjVbwS6UEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Yk8UcC6UEeyCpNx8mY8t3Q" name="maxSpeed : EFloat = 0.0" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Movement/maxSpeed"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Movement/maxSpeed"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_b1EBZC6UEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_dqi8UC6UEeyCpNx8mY8t3Q" name="Topdown" tooltipText="" outgoingEdges="_sfxEJi6UEeyCpNx8mY8t3Q" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Topdown"/>
@@ -1297,7 +1664,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fPL-4C6UEeyCpNx8mY8t3Q" name="Sideways" tooltipText="" outgoingEdges="_r-2vcC6UEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fPL-4C6UEeyCpNx8mY8t3Q" name="Sideways" tooltipText="" outgoingEdges="_r-2vcC6UEeyCpNx8mY8t3Q _J5rzVzHEEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Sideways"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Sideways"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1307,14 +1674,6 @@
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_kK5D4C6UEeyCpNx8mY8t3Q" name="jumpForce : EFloat = 0.0" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Sideways/jumpForce"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Sideways/jumpForce"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_ljToUy6UEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_r-2vcC6UEeyCpNx8mY8t3Q" sourceNode="_fPL-4C6UEeyCpNx8mY8t3Q" targetNode="_EvhpMC6UEeyCpNx8mY8t3Q">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Sideways"/>
@@ -1407,85 +1766,24 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_wgMFQC6XEeyCpNx8mY8t3Q" name="Collider" tooltipText="" incomingEdges="_UszBeC6YEeyCpNx8mY8t3Q" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Collider"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Collider"/>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_My_-IC6ZEeyCpNx8mY8t3Q" name="ApplyForce" tooltipText="" outgoingEdges="_WcCy0C6yEeyCpNx8mY8t3Q _nwO5ZjHREeyCloIdVdmTHA _0k6FwDHREeyCloIdVdmTHA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ApplyForce"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ApplyForce"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_4VVcpy6XEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_1VFsszHOEeyCloIdVdmTHA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_zAqd8C6XEeyCpNx8mY8t3Q" name="identifier : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider/identifier"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider/identifier"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_dT2V0i6jEeyCpNx8mY8t3Q" labelAlignment="LEFT" description="_ZOMNIC6REeyCpNx8mY8t3Q">
-          <labelFormat>bold</labelFormat>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_0MdQsDHOEeyCloIdVdmTHA" name="mode : ForceMode = Impulse" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//ApplyForce/mode"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//ApplyForce/mode"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_1VJXETHOEeyCloIdVdmTHA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_0KEWAC6XEeyCpNx8mY8t3Q" name="shape : ColliderShape = box" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider/shape"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider/shape"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_1YUR2i6XEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_3bRoEC6XEeyCpNx8mY8t3Q" name="isTrigger : EBoolean = false" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider/isTrigger"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider/isTrigger"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_4VWqtC6XEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_9j7BUC6XEeyCpNx8mY8t3Q" name="Rigidbody" tooltipText="" incomingEdges="__TgInC6XEeyCpNx8mY8t3Q" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Rigidbody"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Rigidbody"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_9j7BUS6XEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="__TgInC6XEeyCpNx8mY8t3Q" name="[0..1] rigidbody" sourceNode="_wXxiYC6SEeyCpNx8mY8t3Q" targetNode="_9j7BUC6XEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/rigidbody"/>
-      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/rigidbody"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Jdu8ci6iEeyCpNx8mY8t3Q" description="_qa_QUS6REeyCpNx8mY8t3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Jdu8dC6iEeyCpNx8mY8t3Q" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Jdu8cy6iEeyCpNx8mY8t3Q" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_UszBeC6YEeyCpNx8mY8t3Q" name="[0..*] colliders" sourceNode="_wXxiYC6SEeyCpNx8mY8t3Q" targetNode="_wgMFQC6XEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/colliders"/>
-      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/colliders"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_UszBeS6YEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_UszBey6YEeyCpNx8mY8t3Q" showIcon="false">
-          <customFeatures>labelSize</customFeatures>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_UszBei6YEeyCpNx8mY8t3Q" showIcon="false" labelColor="39,76,114">
-          <customFeatures>labelSize</customFeatures>
-        </endLabelStyle>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_My_-IC6ZEeyCpNx8mY8t3Q" name="ApplyForce" tooltipText="" outgoingEdges="_WcCy0C6yEeyCpNx8mY8t3Q" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ApplyForce"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ApplyForce"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Rovw6i60EeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_NwAY8C6ZEeyCpNx8mY8t3Q" name="Destroy" tooltipText="" outgoingEdges="_V-FEcC6yEeyCpNx8mY8t3Q" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Destroy"/>
@@ -1506,7 +1804,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_RHFpgC6ZEeyCpNx8mY8t3Q" name="Instantiate" tooltipText="" outgoingEdges="_98M_xC6xEeyCpNx8mY8t3Q _Vdb1bi6yEeyCpNx8mY8t3Q _QXv4oC6zEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_RHFpgC6ZEeyCpNx8mY8t3Q" name="Instantiate" tooltipText="" outgoingEdges="_Vdb1bi6yEeyCpNx8mY8t3Q _9FfEsDG_Eeyfr9efKJlILg _Q3_WPjHREeyCloIdVdmTHA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Instantiate"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Instantiate"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1524,16 +1822,16 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_-2rY8C6zEeyCpNx8mY8t3Q" name="isRelative : EBoolean = true" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Instantiate/isRelative"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Instantiate/isRelative"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_-2rY8C6zEeyCpNx8mY8t3Q" name="isRelativePos : EBoolean = true" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Instantiate/isRelativePos"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Instantiate/isRelativePos"/>
         <ownedStyle xmi:type="diagram:BundledImage" uid="__qCvoC6zEeyCpNx8mY8t3Q" labelAlignment="LEFT">
           <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VbnZwC6ZEeyCpNx8mY8t3Q" name="Vector2" tooltipText="" incomingEdges="_QXv4oC6zEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VbnZwC6ZEeyCpNx8mY8t3Q" name="Vector2" tooltipText="" incomingEdges="_gFE0HDHAEeyfr9efKJlILg _Q3_WPjHREeyCloIdVdmTHA _0k6FwDHREeyCloIdVdmTHA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Vector2"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Vector2"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1560,7 +1858,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_dfeigC6ZEeyCpNx8mY8t3Q" name="DataUpdate" tooltipText="" outgoingEdges="_vQ7LEC6ZEeyCpNx8mY8t3Q" incomingEdges="_-dY4nC6aEeyCpNx8mY8t3Q __Loesi6aEeyCpNx8mY8t3Q __oA4uC6aEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_dfeigC6ZEeyCpNx8mY8t3Q" name="DataUpdate" tooltipText="" outgoingEdges="_vQ7LEC6ZEeyCpNx8mY8t3Q _S-vItzHDEeyEoctDEMZZdA" incomingEdges="_aGufMjHDEeyEoctDEMZZdA _afb6KDHDEeyEoctDEMZZdA _a3GzSzHDEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataUpdate"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataUpdate"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1580,7 +1878,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_gJPaEC6ZEeyCpNx8mY8t3Q" name="Add" tooltipText="" outgoingEdges="__Loesi6aEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_gJPaEC6ZEeyCpNx8mY8t3Q" name="Add" tooltipText="" outgoingEdges="_aGufMjHDEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Add"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Add"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1591,7 +1889,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_h90WEC6ZEeyCpNx8mY8t3Q" name="Subtract" tooltipText="" outgoingEdges="_-dY4nC6aEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_h90WEC6ZEeyCpNx8mY8t3Q" name="Subtract" tooltipText="" outgoingEdges="_afb6KDHDEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Subtract"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Subtract"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1602,7 +1900,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_kVZRcC6ZEeyCpNx8mY8t3Q" name="Set" tooltipText="" outgoingEdges="__oA4uC6aEeyCpNx8mY8t3Q" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_kVZRcC6ZEeyCpNx8mY8t3Q" name="Set" tooltipText="" outgoingEdges="_a3GzSzHDEeyEoctDEMZZdA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Set"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Set"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1634,61 +1932,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Fldj8C6aEeyCpNx8mY8t3Q" name="OnTriggerEnter" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTriggerEnter"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTriggerEnter"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Fldj8S6aEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_HTE8UC6aEeyCpNx8mY8t3Q" name="OnTriggerStay" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTriggerStay"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTriggerStay"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_HTFjYC6aEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_I0lLUC6aEeyCpNx8mY8t3Q" name="OnTriggerExit" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTriggerExit"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTriggerExit"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_I0lLUS6aEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_bRWooC6aEeyCpNx8mY8t3Q" name="OnCollisionEnter" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollisionEnter"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollisionEnter"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_bRXPsC6aEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_dHgR8C6aEeyCpNx8mY8t3Q" name="OnCollisionStay" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollisionStay"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollisionStay"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_dHgR8S6aEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_eQbB0C6aEeyCpNx8mY8t3Q" name="OnCollisionExit" tooltipText="" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollisionExit"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollisionExit"/>
@@ -1700,42 +1943,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_-dY4nC6aEeyCpNx8mY8t3Q" sourceNode="_h90WEC6ZEeyCpNx8mY8t3Q" targetNode="_dfeigC6ZEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Subtract"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Subtract"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_-dZfoC6aEeyCpNx8mY8t3Q" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_-dZfoS6aEeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-dZfoi6aEeyCpNx8mY8t3Q" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="__Loesi6aEeyCpNx8mY8t3Q" sourceNode="_gJPaEC6ZEeyCpNx8mY8t3Q" targetNode="_dfeigC6ZEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Add"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Add"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="__LpFsC6aEeyCpNx8mY8t3Q" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="__LpFsS6aEeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="__LpFsi6aEeyCpNx8mY8t3Q" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="__oA4uC6aEeyCpNx8mY8t3Q" sourceNode="_kVZRcC6ZEeyCpNx8mY8t3Q" targetNode="_dfeigC6ZEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Set"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Set"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="__oA4uS6aEeyCpNx8mY8t3Q" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="__oA4ui6aEeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="__oA4uy6aEeyCpNx8mY8t3Q" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_FM1zOy6bEeyCpNx8mY8t3Q" name="[0..*] update" sourceNode="_wXxiYC6SEeyCpNx8mY8t3Q" targetNode="_kmp6MC6REeyCpNx8mY8t3Q">
       <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/update"/>
       <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/update"/>
@@ -1756,30 +1963,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_yiKODi6gEeyCpNx8mY8t3Q" sourceNode="_ISf2IC6TEeyCpNx8mY8t3Q" targetNode="_iajPAC6REeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//BarDisplay"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//BarDisplay"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_yiKODy6gEeyCpNx8mY8t3Q" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_yiKOEC6gEeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_yiKOES6gEeyCpNx8mY8t3Q" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_1fZbPi6gEeyCpNx8mY8t3Q" sourceNode="_IjvXIC6TEeyCpNx8mY8t3Q" targetNode="_iajPAC6REeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TextDisplay"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TextDisplay"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9Y1shi60EeyCpNx8mY8t3Q" targetArrow="InputClosedArrow" routingStyle="tree">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_9Y1shy60EeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_9Y1siC60EeyCpNx8mY8t3Q" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VAtFwC6hEeyCpNx8mY8t3Q" name="ForceMode" tooltipText="" width="12" height="10">
       <target xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//ForceMode"/>
       <semanticElements xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//ForceMode"/>
@@ -1828,6 +2011,9 @@
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GKhlkC6qEeyCpNx8mY8t3Q" name="KeyPress" tooltipText="" outgoingEdges="_acjUgC6qEeyCpNx8mY8t3Q" incomingEdges="_FXJ2nC9oEeynkLhTij6AiA" width="12" height="10">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//KeyPress"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//KeyPress"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
       <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GKhlkS6qEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
         <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
       </ownedStyle>
@@ -1843,53 +2029,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_D-k5IC6vEeyCpNx8mY8t3Q" name="Member" tooltipText="" incomingEdges="_mSi43C6vEeyCpNx8mY8t3Q _98M_xC6xEeyCpNx8mY8t3Q" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Member"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Member"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_3PZwqC6xEeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_HHShEC6wEeyCpNx8mY8t3Q" name="type : DataType = int" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Member/type"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Member/type"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_HtLcay6wEeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_2daS0C6xEeyCpNx8mY8t3Q" name="identifier : EString" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Member/identifier"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Member/identifier"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_3e2htS6xEeyCpNx8mY8t3Q" labelAlignment="LEFT" description="_ZOMNIC6REeyCpNx8mY8t3Q">
-          <labelFormat>bold</labelFormat>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_mSi43C6vEeyCpNx8mY8t3Q" name="[0..*] members" sourceNode="_wXxiYC6SEeyCpNx8mY8t3Q" targetNode="_D-k5IC6vEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/members"/>
-      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/members"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_nDP87i6vEeyCpNx8mY8t3Q" description="_qa_QUS6REeyCpNx8mY8t3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_nDP88C6vEeyCpNx8mY8t3Q" showIcon="false"/>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_nDP87y6vEeyCpNx8mY8t3Q" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_98M_xC6xEeyCpNx8mY8t3Q" name="[1..1] prefab" sourceNode="_RHFpgC6ZEeyCpNx8mY8t3Q" targetNode="_D-k5IC6vEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/prefab"/>
-      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/prefab"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_AZPqBi6yEeyCpNx8mY8t3Q" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_AZPqCC6yEeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_AZPqBy6yEeyCpNx8mY8t3Q" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Vdb1bi6yEeyCpNx8mY8t3Q" sourceNode="_RHFpgC6ZEeyCpNx8mY8t3Q" targetNode="_kmp6MC6REeyCpNx8mY8t3Q">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Instantiate"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Instantiate"/>
@@ -1917,45 +2056,15 @@
     <ownedDiagramElements xmi:type="diagram:DEdge" uid="_WcCy0C6yEeyCpNx8mY8t3Q" sourceNode="_My_-IC6ZEeyCpNx8mY8t3Q" targetNode="_kmp6MC6REeyCpNx8mY8t3Q">
       <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ApplyForce"/>
       <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ApplyForce"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Roy0OC60EeyCpNx8mY8t3Q" targetArrow="InputClosedArrow" routingStyle="tree">
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_1VQr6DHOEeyCloIdVdmTHA" targetArrow="InputClosedArrow" routingStyle="tree">
         <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
-        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_Roy0OS60EeyCpNx8mY8t3Q" showIcon="false">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_1VQr6THOEeyCloIdVdmTHA" showIcon="false">
           <labelFormat>italic</labelFormat>
         </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Roy0Oi60EeyCpNx8mY8t3Q" showIcon="false"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_1VQr6jHOEeyCloIdVdmTHA" showIcon="false"/>
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_QXv4oC6zEeyCpNx8mY8t3Q" name="[1..1] position" sourceNode="_RHFpgC6ZEeyCpNx8mY8t3Q" targetNode="_VbnZwC6ZEeyCpNx8mY8t3Q">
-      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/position"/>
-      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/position"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_TrGfkC6zEeyCpNx8mY8t3Q" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_TrGfki6zEeyCpNx8mY8t3Q" showIcon="false">
-          <labelFormat>bold</labelFormat>
-        </centerLabelStyle>
-        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_TrGfkS6zEeyCpNx8mY8t3Q" labelSize="6" showIcon="false" labelColor="39,76,114"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_awfYcC60EeyCpNx8mY8t3Q" name="Reference" tooltipText="" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Reference"/>
-      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Reference"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_umG4Fy60EeyCpNx8mY8t3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_rklnwC60EeyCpNx8mY8t3Q" name="inverted : EBoolean = false" tooltipText="">
-        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Reference/inverted"/>
-        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Reference/inverted"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_umIGIy60EeyCpNx8mY8t3Q" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
-      </ownedElements>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_cWXxIC60EeyCpNx8mY8t3Q" name="Transform" tooltipText="" width="12" height="10">
       <target xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//Transform"/>
       <semanticElements xmi:type="ecore:EEnum" href="GameDSL_v2.ecore#//Transform"/>
@@ -2003,6 +2112,570 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
     </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_oBUzsDAlEey6-sCr3AHIIw" name="Variable" tooltipText="" incomingEdges="_37bgDjAlEey6-sCr3AHIIw _4ViCHjAlEey6-sCr3AHIIw _TCcUIjAnEey6-sCr3AHIIw _H343VjHAEeyfr9efKJlILg _IcD7eDHAEeyfr9efKJlILg _I9plhjHAEeyfr9efKJlILg _K6EPBDHAEeyfr9efKJlILg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Variable"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Variable"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_12WCwzAlEey6-sCr3AHIIw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+        <labelFormat>italic</labelFormat>
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_1OGXADAlEey6-sCr3AHIIw" name="identifier : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Variable/identifier"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Variable/identifier"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_2KcqhDAlEey6-sCr3AHIIw" labelAlignment="LEFT" description="_ZOMNIC6REeyCpNx8mY8t3Q">
+          <labelFormat>bold</labelFormat>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_xokawDAlEey6-sCr3AHIIw" name="DataType" tooltipText="" outgoingEdges="_37bgDjAlEey6-sCr3AHIIw" incomingEdges="_CPaPEDHEEeyEoctDEMZZdA _J5rzVzHEEeyEoctDEMZZdA _nwO5ZjHREeyCloIdVdmTHA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataType"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataType"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_tz1sUTHPEeyCloIdVdmTHA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_5Xl78DAlEey6-sCr3AHIIw" name="type : EDataType = int" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//DataType/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//DataType/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_6EbMxjAlEey6-sCr3AHIIw" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_tCRsgDHPEeyCloIdVdmTHA" name="value : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//DataType/value"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//DataType/value"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_tz4IkzHPEeyCloIdVdmTHA" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_yom7cDAlEey6-sCr3AHIIw" name="ComponentType" tooltipText="" outgoingEdges="_4ViCHjAlEey6-sCr3AHIIw _zOVpfDAmEey6-sCr3AHIIw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentType"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentType"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IKo2cjHPEeyCloIdVdmTHA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_37bgDjAlEey6-sCr3AHIIw" sourceNode="_xokawDAlEey6-sCr3AHIIw" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataType"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataType"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_tz9oXDHPEeyCloIdVdmTHA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_tz9oXTHPEeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_tz9oXjHPEeyCloIdVdmTHA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_4ViCHjAlEey6-sCr3AHIIw" sourceNode="_yom7cDAlEey6-sCr3AHIIw" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentType"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentType"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IKyncjHPEeyCloIdVdmTHA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IKynczHPEeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IKyndDHPEeyCloIdVdmTHA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_zOVpfDAmEey6-sCr3AHIIw" name="[1..1] referencedType" sourceNode="_yom7cDAlEey6-sCr3AHIIw" targetNode="_wXxiYC6SEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ComponentType/referencedType"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ComponentType/referencedType"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_34j8zjAmEey6-sCr3AHIIw" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_34j80DAmEey6-sCr3AHIIw" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_34j8zzAmEey6-sCr3AHIIw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_TCcUIjAnEey6-sCr3AHIIw" name="[0..*] variables" sourceNode="_wXxiYC6SEeyCpNx8mY8t3Q" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/variables"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/variables"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_TCcUIzAnEey6-sCr3AHIIw" description="_qa_QUS6REeyCpNx8mY8t3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_TCcUJTAnEey6-sCr3AHIIw" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_TCcUJDAnEey6-sCr3AHIIw" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_J2qtoDG_Eeyfr9efKJlILg" name="Prefab" tooltipText="" outgoingEdges="_K6EPBDHAEeyfr9efKJlILg" incomingEdges="_9FfEsDG_Eeyfr9efKJlILg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Prefab"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Prefab"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_J2rUsDG_Eeyfr9efKJlILg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_L96uADG_Eeyfr9efKJlILg" name="Rigidbody2D" tooltipText="" outgoingEdges="_H343VjHAEeyfr9efKJlILg" incomingEdges="_Gz64CjHLEeyEoctDEMZZdA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Rigidbody2D"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Rigidbody2D"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_L97VEDG_Eeyfr9efKJlILg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_zJJ-cDG_Eeyfr9efKJlILg" name="Collider2D" tooltipText="" outgoingEdges="_I9plhjHAEeyfr9efKJlILg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Collider2D"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Collider2D"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_pQezvTHAEeyfr9efKJlILg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Yq13IDHAEeyfr9efKJlILg" name="shape : ColliderShape = box" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider2D/shape"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider2D/shape"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_ZP-khTHAEeyfr9efKJlILg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_ocB38DHAEeyfr9efKJlILg" name="isTrigger : EBoolean = false" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider2D/isTrigger"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Collider2D/isTrigger"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_pQgo4zHAEeyfr9efKJlILg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_2YbW0DG_Eeyfr9efKJlILg" name="Image" tooltipText="" outgoingEdges="_IcD7eDHAEeyfr9efKJlILg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Image"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Image"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_2YbW0TG_Eeyfr9efKJlILg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_9FfEsDG_Eeyfr9efKJlILg" name="[1..1] prefab" sourceNode="_RHFpgC6ZEeyCpNx8mY8t3Q" targetNode="_J2qtoDG_Eeyfr9efKJlILg">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/prefab"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/prefab"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_9FfEsTG_Eeyfr9efKJlILg" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_9FfEszG_Eeyfr9efKJlILg" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_9FfEsjG_Eeyfr9efKJlILg" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_H343VjHAEeyfr9efKJlILg" sourceNode="_L96uADG_Eeyfr9efKJlILg" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Rigidbody2D"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Rigidbody2D"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_H343VzHAEeyfr9efKJlILg" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_H343WDHAEeyfr9efKJlILg" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_H343WTHAEeyfr9efKJlILg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_IcD7eDHAEeyfr9efKJlILg" sourceNode="_2YbW0DG_Eeyfr9efKJlILg" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Image"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Image"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IcD7eTHAEeyfr9efKJlILg" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IcD7ejHAEeyfr9efKJlILg" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IcD7ezHAEeyfr9efKJlILg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_I9plhjHAEeyfr9efKJlILg" sourceNode="_zJJ-cDG_Eeyfr9efKJlILg" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Collider2D"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Collider2D"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_pQjsQzHAEeyfr9efKJlILg" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_pQjsRDHAEeyfr9efKJlILg" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_pQjsRTHAEeyfr9efKJlILg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_K6EPBDHAEeyfr9efKJlILg" sourceNode="_J2qtoDG_Eeyfr9efKJlILg" targetNode="_oBUzsDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Prefab"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Prefab"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_K6EPBTHAEeyfr9efKJlILg" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_K6EPBjHAEeyfr9efKJlILg" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_K6EPBzHAEeyfr9efKJlILg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_eimUsDHAEeyfr9efKJlILg" name="Vector3" tooltipText="" outgoingEdges="_gFE0HDHAEeyfr9efKJlILg" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Vector3"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Vector3"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_iMvrRDHAEeyfr9efKJlILg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_hnqBIDHAEeyfr9efKJlILg" name="z : EFloat = 0.0" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Vector3/z"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//Vector3/z"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_iMxgZDHAEeyfr9efKJlILg" labelAlignment="LEFT">
+          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_gFE0HDHAEeyfr9efKJlILg" sourceNode="_eimUsDHAEeyfr9efKJlILg" targetNode="_VbnZwC6ZEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Vector3"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Vector3"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_iM0j1DHAEeyfr9efKJlILg" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_iM0j1THAEeyfr9efKJlILg" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_iM0j1jHAEeyfr9efKJlILg" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ER39djHBEeyEoctDEMZZdA" sourceNode="_ISf2IC6TEeyCpNx8mY8t3Q" targetNode="_iajPAC6REeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//BarDisplay"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//BarDisplay"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_-QU_0DHCEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_-QU_0THCEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_-QU_0jHCEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_EvNZvDHBEeyEoctDEMZZdA" sourceNode="_IjvXIC6TEeyCpNx8mY8t3Q" targetNode="_iajPAC6REeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TextDisplay"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TextDisplay"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_EvNZvTHBEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_EvNZvjHBEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_EvNZvzHBEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_S-vItzHDEeyEoctDEMZZdA" sourceNode="_dfeigC6ZEeyCpNx8mY8t3Q" targetNode="_kmp6MC6REeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataUpdate"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//DataUpdate"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_S-vIuDHDEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_S-vIuTHDEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_S-vIujHDEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_aGufMjHDEeyEoctDEMZZdA" sourceNode="_gJPaEC6ZEeyCpNx8mY8t3Q" targetNode="_dfeigC6ZEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Add"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Add"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_aGufMzHDEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_aGufNDHDEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_aGufNTHDEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_afb6KDHDEeyEoctDEMZZdA" sourceNode="_h90WEC6ZEeyCpNx8mY8t3Q" targetNode="_dfeigC6ZEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Subtract"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Subtract"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_afb6KTHDEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_afb6KjHDEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_afb6KzHDEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_a3GzSzHDEeyEoctDEMZZdA" sourceNode="_kVZRcC6ZEeyCpNx8mY8t3Q" targetNode="_dfeigC6ZEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Set"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//Set"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_a3HaEDHDEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_a3HaETHDEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_a3HaEjHDEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CPaPEDHEEeyEoctDEMZZdA" name="[1..1] speed" sourceNode="_EvhpMC6UEeyCpNx8mY8t3Q" targetNode="_xokawDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Movement/speed"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Movement/speed"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_HiJ7EzHEEeyEoctDEMZZdA" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_HiJ7FTHEEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_HiJ7FDHEEeyEoctDEMZZdA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_J5rzVzHEEeyEoctDEMZZdA" name="[1..1] jumpSpeed" sourceNode="_fPL-4C6UEeyCpNx8mY8t3Q" targetNode="_xokawDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Sideways/jumpSpeed"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Sideways/jumpSpeed"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_NnfhyjHEEeyEoctDEMZZdA" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_NnfhzDHEEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_NnfhyzHEEeyEoctDEMZZdA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Gz64CjHLEeyEoctDEMZZdA" name="[1..1] rigidbody" sourceNode="_EvhpMC6UEeyCpNx8mY8t3Q" targetNode="_L96uADG_Eeyfr9efKJlILg">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Movement/rigidbody"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Movement/rigidbody"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_I5jHvjHLEeyEoctDEMZZdA" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_I5jHwDHLEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_I5jHvzHLEeyEoctDEMZZdA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_cuvwcDHLEeyEoctDEMZZdA" name="OnContact" tooltipText="" outgoingEdges="_yOnWCjHMEeyEoctDEMZZdA _wnlRbzHNEeyEoctDEMZZdA" incomingEdges="_sijLBTHMEeyEoctDEMZZdA _cbOQODHOEeyCloIdVdmTHA _c3ptgjHOEeyCloIdVdmTHA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnContact"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnContact"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_neGZzjHMEeyEoctDEMZZdA" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+        <labelFormat>italic</labelFormat>
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_sijLBTHMEeyEoctDEMZZdA" sourceNode="_wXxiYC6SEeyCpNx8mY8t3Q" targetNode="_cuvwcDHLEeyEoctDEMZZdA" beginLabel="[0..1] owner" endLabel="[0..*] onContact">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/onContact"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Component/onContact"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//OnContact/owner"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sijLBjHMEeyEoctDEMZZdA" description="_0mskcS6TEeyCpNx8mY8t3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_sijLBzHMEeyEoctDEMZZdA" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_sijLCDHMEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_yOnWCjHMEeyEoctDEMZZdA" name="[0..*] executes" sourceNode="_cuvwcDHLEeyEoctDEMZZdA" targetNode="_kmp6MC6REeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//OnContact/executes"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//OnContact/executes"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_yOnWCzHMEeyEoctDEMZZdA" routingStyle="manhattan" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_yOnWDTHMEeyEoctDEMZZdA" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_yOnWDDHMEeyEoctDEMZZdA" showIcon="false" labelColor="39,76,114">
+          <customFeatures>labelSize</customFeatures>
+        </endLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_5PjCADHMEeyEoctDEMZZdA" name="OnCollision" tooltipText="" outgoingEdges="_cbOQODHOEeyCloIdVdmTHA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollision"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollision"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_5PjpEDHMEeyEoctDEMZZdA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8dEt8DHMEeyEoctDEMZZdA" name="OnTrigger" tooltipText="" outgoingEdges="_c3ptgjHOEeyCloIdVdmTHA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTrigger"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTrigger"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_8dEt8THMEeyEoctDEMZZdA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IvilIDHNEeyEoctDEMZZdA" name="ContactFilter" tooltipText="" incomingEdges="_svVNdjHNEeyEoctDEMZZdA _tmjJXDHNEeyEoctDEMZZdA _wnlRbzHNEeyEoctDEMZZdA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ContactFilter"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ContactFilter"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_cQwiMTHNEeyEoctDEMZZdA" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
+        <labelFormat>italic</labelFormat>
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ctlA4DHNEeyEoctDEMZZdA" name="TaggedContact" tooltipText="" outgoingEdges="_svVNdjHNEeyEoctDEMZZdA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TaggedContact"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TaggedContact"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_qK3seDHNEeyEoctDEMZZdA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" uid="_pK2Z4DHNEeyEoctDEMZZdA" name="tag : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//TaggedContact/tag"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="GameDSL_v2.ecore#//TaggedContact/tag"/>
+        <ownedStyle xmi:type="diagram:BundledImage" uid="_qwkaizHNEeyEoctDEMZZdA" labelAlignment="LEFT" description="_ZOMNIC6REeyCpNx8mY8t3Q">
+          <labelFormat>bold</labelFormat>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_eUbC4DHNEeyEoctDEMZZdA" name="ComponentContact" tooltipText="" outgoingEdges="_tmjJXDHNEeyEoctDEMZZdA _DksboDHOEeyEoctDEMZZdA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentContact"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentContact"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_eUbC4THNEeyEoctDEMZZdA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_svVNdjHNEeyEoctDEMZZdA" sourceNode="_ctlA4DHNEeyEoctDEMZZdA" targetNode="_IvilIDHNEeyEoctDEMZZdA">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TaggedContact"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//TaggedContact"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_svVNdzHNEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_svVNeDHNEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_svVNeTHNEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_tmjJXDHNEeyEoctDEMZZdA" sourceNode="_eUbC4DHNEeyEoctDEMZZdA" targetNode="_IvilIDHNEeyEoctDEMZZdA">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentContact"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//ComponentContact"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_tmjJXTHNEeyEoctDEMZZdA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_tmjJXjHNEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_tmjJXzHNEeyEoctDEMZZdA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_wnlRbzHNEeyEoctDEMZZdA" name="[1..*] filter" sourceNode="_cuvwcDHLEeyEoctDEMZZdA" targetNode="_IvilIDHNEeyEoctDEMZZdA">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//OnContact/filter"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//OnContact/filter"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_yZ_C8zHNEeyEoctDEMZZdA" description="_yZ_C8DHNEeyEoctDEMZZdA" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_yZ_C9THNEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_yZ_C9DHNEeyEoctDEMZZdA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_DksboDHOEeyEoctDEMZZdA" name="[1..1] referencedType" sourceNode="_eUbC4DHNEeyEoctDEMZZdA" targetNode="_wXxiYC6SEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ComponentContact/referencedType"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ComponentContact/referencedType"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_LOxLZjHOEeyEoctDEMZZdA" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_LOxLaDHOEeyEoctDEMZZdA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_LOxLZzHOEeyEoctDEMZZdA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_cbOQODHOEeyCloIdVdmTHA" sourceNode="_5PjCADHMEeyEoctDEMZZdA" targetNode="_cuvwcDHLEeyEoctDEMZZdA">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollision"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnCollision"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_cbO3MDHOEeyCloIdVdmTHA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_cbO3MTHOEeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_cbO3MjHOEeyCloIdVdmTHA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_c3ptgjHOEeyCloIdVdmTHA" sourceNode="_8dEt8DHMEeyEoctDEMZZdA" targetNode="_cuvwcDHLEeyEoctDEMZZdA">
+      <target xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTrigger"/>
+      <semanticElements xmi:type="ecore:EClass" href="GameDSL_v2.ecore#//OnTrigger"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_c3qUgDHOEeyCloIdVdmTHA" targetArrow="InputClosedArrow" routingStyle="tree">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_c3qUgTHOEeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_c3qUgjHOEeyCloIdVdmTHA" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Q3_WPjHREeyCloIdVdmTHA" name="[1..1] position" sourceNode="_RHFpgC6ZEeyCpNx8mY8t3Q" targetNode="_VbnZwC6ZEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/position"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//Instantiate/position"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_1ojT_jHREeyCloIdVdmTHA" description="_yZ_C8DHNEeyEoctDEMZZdA" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_1ojUADHREeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_1ojT_zHREeyCloIdVdmTHA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_nwO5ZjHREeyCloIdVdmTHA" name="[1..1] appliedForce" sourceNode="_My_-IC6ZEeyCpNx8mY8t3Q" targetNode="_xokawDAlEey6-sCr3AHIIw">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ApplyForce/appliedForce"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ApplyForce/appliedForce"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sXpwcDHREeyCloIdVdmTHA" description="_rkA4gi6SEeyCpNx8mY8t3Q" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sXpwcjHREeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_sXpwcTHREeyCloIdVdmTHA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_0k6FwDHREeyCloIdVdmTHA" name="[1..1] direction" sourceNode="_My_-IC6ZEeyCpNx8mY8t3Q" targetNode="_VbnZwC6ZEeyCpNx8mY8t3Q">
+      <target xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ApplyForce/direction"/>
+      <semanticElements xmi:type="ecore:EReference" href="GameDSL_v2.ecore#//ApplyForce/direction"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GzOQXDHSEeyCloIdVdmTHA" description="_yZ_C8DHNEeyEoctDEMZZdA" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GzOQXjHSEeyCloIdVdmTHA" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GzOQXTHSEeyCloIdVdmTHA" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
     <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
     <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_QcpfAC6REeyCpNx8mY8t3Q"/>
     <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/projectMDE/metamodel/gameDSL/GameDSL_v2.ecore b/projectMDE/metamodel/gameDSL/GameDSL_v2.ecore
index 15765e55658ee1ad12c24a0ae1f4ab0137579977..5771772530f2cf624e3a03f40c84ec1e7a9d3b53 100644
--- a/projectMDE/metamodel/gameDSL/GameDSL_v2.ecore
+++ b/projectMDE/metamodel/gameDSL/GameDSL_v2.ecore
@@ -17,6 +17,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GUIElement" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Data"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GameAction" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -26,15 +27,14 @@
   <eClassifiers xsi:type="ecore:EClass" name="Data">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//DataType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//EDataType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//DataManager"
         eOpposite="#//DataManager/controls"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="DataType">
+  <eClassifiers xsi:type="ecore:EEnum" name="EDataType">
     <eLiterals name="int"/>
     <eLiterals name="float" value="1"/>
     <eLiterals name="string" value="2"/>
-    <eLiterals name="GameObject" value="3"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Component">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" lowerBound="1"
@@ -42,23 +42,25 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="game" eType="#//Game" eOpposite="#//Game/components"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="movement" eType="#//Movement"
         containment="true" eOpposite="#//Movement/owner"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tag" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="rigidbody" eType="#//Rigidbody"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="colliders" upperBound="-1"
-        eType="#//Collider"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="update" upperBound="-1"
         eType="#//GameAction"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="start" upperBound="-1"
         eType="#//GameAction"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="keyPresses" upperBound="-1"
         eType="#//KeyPress" containment="true" eOpposite="#//KeyPress/owner"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="members" upperBound="-1"
-        eType="#//Member" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
+        eType="#//Variable" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="actions" upperBound="-1"
         eType="#//GameAction" containment="true" eOpposite="#//GameAction/owner"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="onContact" upperBound="-1"
+        eType="#//OnContact" containment="true" eOpposite="#//OnContact/owner"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="BarDisplay" eSuperTypes="#//GUIElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral="0"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral="0"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BarDisplay" eSuperTypes="#//GUIElement"/>
   <eClassifiers xsi:type="ecore:EClass" name="TextDisplay" eSuperTypes="#//GUIElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="postfix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
@@ -68,14 +70,16 @@
     <eLiterals name="Topdown2D" value="1"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Movement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="acceleration" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxSpeed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Component"
         eOpposite="#//Component/movement"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="speed" lowerBound="1" eType="#//DataType"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="rigidbody" lowerBound="1"
+        eType="#//Rigidbody2D"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Topdown" eSuperTypes="#//Movement"/>
   <eClassifiers xsi:type="ecore:EClass" name="Sideways" eSuperTypes="#//Movement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="jumpForce" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="jumpSpeed" lowerBound="1"
+        eType="#//DataType"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ColliderShape">
     <eLiterals name="box" literal="box"/>
@@ -86,44 +90,39 @@
     <eLiterals name="polygon" value="5"/>
     <eLiterals name="tilemap" value="6"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Collider">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shape" eType="#//ColliderShape"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTrigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ApplyForce" eSuperTypes="#//GameAction">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" eType="#//ForceMode"
+        defaultValueLiteral="Impulse"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="appliedForce" lowerBound="1"
+        eType="#//DataType"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="direction" lowerBound="1"
+        eType="#//Vector2" containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Rigidbody"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ApplyForce" eSuperTypes="#//GameAction"/>
   <eClassifiers xsi:type="ecore:EClass" name="Destroy" eSuperTypes="#//GameAction">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="delay" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Instantiate" eSuperTypes="#//GameAction">
     <eStructuralFeatures xsi:type="ecore:EReference" name="prefab" lowerBound="1"
-        eType="#//Member"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="position" lowerBound="1"
-        eType="#//Vector2"/>
+        eType="#//Prefab"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="isChild" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRelative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRelativePos" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         defaultValueLiteral="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="position" lowerBound="1"
+        eType="#//Vector2" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Vector2">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DataUpdate" abstract="true">
+  <eClassifiers xsi:type="ecore:EClass" name="DataUpdate" abstract="true" eSuperTypes="#//GameAction">
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Data"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Add" eSuperTypes="#//DataUpdate"/>
   <eClassifiers xsi:type="ecore:EClass" name="Subtract" eSuperTypes="#//DataUpdate"/>
   <eClassifiers xsi:type="ecore:EClass" name="Set" eSuperTypes="#//DataUpdate"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OnTriggerEnter"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OnTriggerStay"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OnTriggerExit"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OnCollisionEnter"/>
-  <eClassifiers xsi:type="ecore:EClass" name="OnCollisionStay"/>
   <eClassifiers xsi:type="ecore:EClass" name="OnCollisionExit"/>
   <eClassifiers xsi:type="ecore:EEnum" name="ForceMode">
     <eLiterals name="Force"/>
@@ -136,16 +135,48 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Component"
         eOpposite="#//Component/keyPresses"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Member">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//DataType"/>
+  <eClassifiers xsi:type="ecore:EEnum" name="Transform">
+    <eLiterals name="forward"/>
+    <eLiterals name="up" value="1"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" lowerBound="1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Reference">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inverted" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Variable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//EDataType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="Transform">
-    <eLiterals name="forward"/>
-    <eLiterals name="up" value="1"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentType" eSuperTypes="#//Variable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedType" lowerBound="1"
+        eType="#//Component"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Prefab" eSuperTypes="#//Variable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Rigidbody2D" eSuperTypes="#//Variable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Collider2D" eSuperTypes="#//Variable">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shape" eType="#//ColliderShape"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTrigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Image" eSuperTypes="#//Variable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Vector3" eSuperTypes="#//Vector2">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="z" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OnContact" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="owner" eType="#//Component"
+        eOpposite="#//Component/onContact"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="executes" upperBound="-1"
+        eType="#//GameAction"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="filter" lowerBound="1"
+        upperBound="-1" eType="#//ContactFilter" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OnCollision" eSuperTypes="#//OnContact"/>
+  <eClassifiers xsi:type="ecore:EClass" name="OnTrigger" eSuperTypes="#//OnContact"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ContactFilter" abstract="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="TaggedContact" eSuperTypes="#//ContactFilter">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tag" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentContact" eSuperTypes="#//ContactFilter">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedType" lowerBound="1"
+        eType="#//Component"/>
   </eClassifiers>
 </ecore:EPackage>
diff --git a/projectMDE/metamodel/gameDSL/unityGameDSL2_modded.aird b/projectMDE/metamodel/gameDSL/unityGameDSL2_modded.aird
index 6aaab4546f720404487f026cd279028e7bb20ea4..75bf553e6195423752675a40c7fc2ea94f7c2c38 100644
--- a/projectMDE/metamodel/gameDSL/unityGameDSL2_modded.aird
+++ b/projectMDE/metamodel/gameDSL/unityGameDSL2_modded.aird
@@ -4,7 +4,7 @@
     <semanticResources>unityGameDSL2_modded.ecore</semanticResources>
     <ownedViews xmi:type="viewpoint:DView" uid="_Xbl1sDATEeyfjuvTHgqjRw">
       <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
-      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_YEwHcDATEeyfjuvTHgqjRw" name="unityGameDSL_modded class diagram" repPath="#_YEVQsDATEeyfjuvTHgqjRw" changeId="3814e6c4-744b-492a-b19e-19b49b8cd709">
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_YEwHcDATEeyfjuvTHgqjRw" name="unityGameDSL_modded class diagram" repPath="#_YEVQsDATEeyfjuvTHgqjRw" changeId="0c3b8d59-eebd-48f9-849b-176bf4c10ea6">
         <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
         <target xmi:type="ecore:EPackage" href="unityGameDSL2_modded.ecore#/"/>
       </ownedRepresentationDescriptors>
@@ -90,10 +90,6 @@
               <styles xmi:type="notation:FontStyle" xmi:id="_Y6xwgTATEeyfjuvTHgqjRw" fontName="Segoe UI" fontHeight="8"/>
               <layoutConstraint xmi:type="notation:Location" xmi:id="_Y6xwgjATEeyfjuvTHgqjRw"/>
             </children>
-            <children xmi:type="notation:Node" xmi:id="_Y6xwgzATEeyfjuvTHgqjRw" type="3010" element="_Y5ohATATEeyfjuvTHgqjRw">
-              <styles xmi:type="notation:FontStyle" xmi:id="_Y6xwhDATEeyfjuvTHgqjRw" fontName="Segoe UI" fontHeight="8"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_Y6xwhTATEeyfjuvTHgqjRw"/>
-            </children>
             <styles xmi:type="notation:SortingStyle" xmi:id="_Y6mKUTATEeyfjuvTHgqjRw"/>
             <styles xmi:type="notation:FilteringStyle" xmi:id="_Y6mKUjATEeyfjuvTHgqjRw"/>
           </children>
@@ -906,14 +902,6 @@
         </ownedStyle>
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" uid="_Y5ohATATEeyfjuvTHgqjRw" name="newOperation1()" tooltipText="newOperation1()">
-        <target xmi:type="ecore:EOperation" href="unityGameDSL2_modded.ecore#//Colision/newOperation1"/>
-        <semanticElements xmi:type="ecore:EOperation" href="unityGameDSL2_modded.ecore#//Colision/newOperation1"/>
-        <ownedStyle xmi:type="diagram:BundledImage" uid="_Y5qWMDATEeyfjuvTHgqjRw" labelAlignment="LEFT">
-          <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='Operation']"/>
-      </ownedElements>
     </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_YtSuIDATEeyfjuvTHgqjRw" name="GUIElement" tooltipText="" outgoingEdges="_Y59RIDATEeyfjuvTHgqjRw" incomingEdges="_Y6HpNjATEeyfjuvTHgqjRw _Y6NIwDATEeyfjuvTHgqjRw _Y6Nv0DATEeyfjuvTHgqjRw" width="12" height="10">
       <target xmi:type="ecore:EClass" href="unityGameDSL2_modded.ecore#//GUIElement"/>
@@ -1258,6 +1246,7 @@
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Y5-fQzATEeyfjuvTHgqjRw" description="_Y5-fQDATEeyfjuvTHgqjRw" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Y5-fRTATEeyfjuvTHgqjRw" showIcon="false">
           <customFeatures>labelSize</customFeatures>
+          <labelFormat>bold</labelFormat>
         </centerLabelStyle>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Y5-fRDATEeyfjuvTHgqjRw" showIcon="false" labelColor="39,76,114">
           <customFeatures>labelSize</customFeatures>
@@ -1271,6 +1260,7 @@
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Y5_tYzATEeyfjuvTHgqjRw" description="_Y5_tYDATEeyfjuvTHgqjRw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Y5_tZTATEeyfjuvTHgqjRw" showIcon="false">
           <customFeatures>labelSize</customFeatures>
+          <labelFormat>bold</labelFormat>
         </centerLabelStyle>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Y5_tZDATEeyfjuvTHgqjRw" showIcon="false" labelColor="39,76,114">
           <customFeatures>labelSize</customFeatures>
@@ -1284,6 +1274,7 @@
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Y6A7gDATEeyfjuvTHgqjRw" description="_Y5-fQDATEeyfjuvTHgqjRw" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Y6A7gjATEeyfjuvTHgqjRw" showIcon="false">
           <customFeatures>labelSize</customFeatures>
+          <labelFormat>bold</labelFormat>
         </centerLabelStyle>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Y6A7gTATEeyfjuvTHgqjRw" showIcon="false" labelColor="39,76,114">
           <customFeatures>labelSize</customFeatures>
@@ -1297,6 +1288,7 @@
       <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Y6BikDATEeyfjuvTHgqjRw" description="_Y5_tYDATEeyfjuvTHgqjRw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
         <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Y6BikjATEeyfjuvTHgqjRw" showIcon="false">
           <customFeatures>labelSize</customFeatures>
+          <labelFormat>bold</labelFormat>
         </centerLabelStyle>
         <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Y6BikTATEeyfjuvTHgqjRw" showIcon="false" labelColor="39,76,114">
           <customFeatures>labelSize</customFeatures>
diff --git a/projectMDE/model/Game_modded2.xmi b/projectMDE/model/Game_modded2.xmi
new file mode 100644
index 0000000000000000000000000000000000000000..f04742f22de1a5cc5003bcbfd9245b76ff2cfc57
--- /dev/null
+++ b/projectMDE/model/Game_modded2.xmi
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<unityGameDSL_modded:Game
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:unityGameDSL_modded="http://www.example.org/unityGameDSL_modded"
+    xsi:schemaLocation="http://www.example.org/unityGameDSL_modded ../metamodel/gameDSL/unityGameDSL2_modded.ecore">
+  <gameobjects
+      name="Charachter">
+    <movement
+        xsi:type="unityGameDSL_modded:Sideways"/>
+    <colision
+        xsi:type="unityGameDSL_modded:RigidBody"/>
+    <colision
+        xsi:type="unityGameDSL_modded:Trigger"
+        collisionTAg="Enemy">
+      <execute
+          xsi:type="unityGameDSL_modded:Subtract"
+          value="1"
+          data="//@dataManager/@controls.0"/>
+    </colision>
+    <interaction
+        key="K">
+      <execute
+          xsi:type="unityGameDSL_modded:ObjectCreation">
+        <position>1</position>
+        <position>0</position>
+      </execute>
+    </interaction>
+  </gameobjects>
+  <gameobjects
+      name="Bullet">
+    <colision
+        xsi:type="unityGameDSL_modded:RigidBody"/>
+    <colision
+        xsi:type="unityGameDSL_modded:Trigger"
+        collisionTAg="Enemy">
+      <execute
+          xsi:type="unityGameDSL_modded:SelfDestruction"/>
+    </colision>
+    <start xsi:type="unityGameDSL_modded:ApplyForce">
+      <direction>1</direction>
+      <direction>0</direction>
+    </start>
+  </gameobjects>
+  <gameobjects
+      name="Enemy">
+    <colision
+        xsi:type="unityGameDSL_modded:Trigger"
+        collisionTAg="Bullet">
+      <execute
+          xsi:type="unityGameDSL_modded:Add"
+          value="100"
+          data="//@dataManager/@controls.1"/>
+      <execute
+          xsi:type="unityGameDSL_modded:SelfDestruction"/>
+    </colision>
+    <colision
+        xsi:type="unityGameDSL_modded:Trigger"
+        collisionTAg="PlayerFoot">
+      <execute
+          xsi:type="unityGameDSL_modded:Add"
+          value="100"
+          data="//@dataManager/@controls.1"/>
+      <execute
+          xsi:type="unityGameDSL_modded:SelfDestruction"/>
+    </colision>
+  </gameobjects>
+  <dataManager
+      name="Manager">
+    <controls
+        name="lives"/>
+    <controls
+        name="score"/>
+  </dataManager>
+  <guiElements
+      xsi:type="unityGameDSL_modded:TextDisplay"
+      name="Lives"
+      data="//@dataManager/@controls.0"
+      prefix="Lives: "
+      postfix=""/>
+  <guiElements
+      xsi:type="unityGameDSL_modded:TextDisplay"
+      name="Score"
+      data="//@dataManager/@controls.1"
+      prefix="Score: "/>
+</unityGameDSL_modded:Game>
diff --git a/projectMDE/model/Program.xmi b/projectMDE/model/Program.xmi
index 8e2b6a9eabb323619221736be36cf0fc73269dcb..abf5716372144312c6c8e1004dd2be32b20f9926 100644
--- a/projectMDE/model/Program.xmi
+++ b/projectMDE/model/Program.xmi
@@ -1,79 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<ex:Program
+<cs:Program
     xmi:version="2.0"
     xmlns:xmi="http://www.omg.org/XMI"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ex="http://www.example.org/examples/example.ecore"
-    xsi:schemaLocation="http://www.example.org/examples/example.ecore ../metamodel/csProgram/CsProgram.ecore">
+    xmlns:cs="http://www.example.org/cs.ecore"
+    xsi:schemaLocation="http://www.example.org/cs.ecore ../metamodel/csProgram/CsProgram.ecore">
   <files filename="Bullet">
     <namespaces
         namespace="DSL">
       <using>UnityEngine</using>
       <using>System</using>
       <typedefs
-          xsi:type="ex:Class"
+          xsi:type="cs:Class"
           identifier="Bullet"
           baseType="//@externalTypes.1">
         <members
             identifier="body">
           <type
-              xsi:type="ex:CompoundType"
+              xsi:type="cs:CompoundType"
               referencedType="//@externalTypes.2"/>
         </members>
         <members
             identifier="speed">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="int"/>
         </members>
         <methods
             identifier="Awake">
           <body>body = gameObjects.GetComponent&lt;Rigidbody2D>();</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
         <methods
             identifier="Start">
           <body>body.addForce(new Vector2(1, 0) * speed, ForceMode2D.Impulse);</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
-        </methods>
-      </typedefs>
-    </namespaces>
-  </files>
-  <files filename="LivesText">
-    <namespaces
-        namespace="DSL">
-      <using>UnityEngine</using>
-      <using>System</using>
-      <using>UnityEngine.UI</using>
-      <typedefs
-          xsi:type="ex:Class"
-          identifier="LivesText"
-          baseType="//@externalTypes.1">
-        <members
-            identifier="view">
-          <type
-              xsi:type="ex:CompoundType"
-              referencedType="//@externalTypes.3"/>
-        </members>
-        <members
-            identifier="displayed">
-          <type
-              xsi:type="ex:PrimitiveType"
-              type="string"/>
-        </members>
-        <methods
-            identifier="Start">
-          <body>view = gameObject.GetComponent&lt;Text>();</body>
-          <returnType
-              xsi:type="ex:PrimitiveType"/>
-        </methods>
-        <methods
-            identifier="Update">
-          <body>view.text = displayed + DataManager.instance.lives.getValue();</body>
-          <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
       </typedefs>
     </namespaces>
@@ -85,32 +48,32 @@
       <using>System</using>
       <using>UnityEngine.UI</using>
       <typedefs
-          xsi:type="ex:Class"
+          xsi:type="cs:Class"
           identifier="ScoreText"
           baseType="//@externalTypes.1">
         <members
             identifier="view">
           <type
-              xsi:type="ex:CompoundType"
+              xsi:type="cs:CompoundType"
               referencedType="//@externalTypes.3"/>
         </members>
         <members
             identifier="displayed">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="string"/>
         </members>
         <methods
             identifier="Start">
           <body>view = gameObject.GetComponent&lt;Text>();</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
         <methods
             identifier="Update">
           <body>view.text = displayed + DataManager.instance.score.getValue();</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
       </typedefs>
     </namespaces>
@@ -121,7 +84,7 @@
       <using>UnityEngine</using>
       <using>System</using>
       <typedefs
-          xsi:type="ex:Class"
+          xsi:type="cs:Class"
           identifier="Enemy"
           baseType="//@externalTypes.1">
         <methods
@@ -129,7 +92,7 @@
           <parameters
               identifier="collider">
             <type
-                xsi:type="ex:CompoundType"
+                xsi:type="cs:CompoundType"
                 referencedType="//@externalTypes.4"/>
           </parameters>
           <body>DataManager manager = DataManager.instance;</body>
@@ -142,7 +105,7 @@
 				Destroy(gameObject);&#xD;
 			}</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
       </typedefs>
     </namespaces>
@@ -153,38 +116,38 @@
       <using>UnityEngine</using>
       <using>System</using>
       <typedefs
-          xsi:type="ex:Class"
+          xsi:type="cs:Class"
           identifier="DataManager"
           baseType="//@externalTypes.1">
         <members
             identifier="instance"
             specifier="static">
           <type
-              xsi:type="ex:CompoundType"
-              referencedType="//@files.4/@namespaces.0/@typedefs.0"/>
+              xsi:type="cs:CompoundType"
+              referencedType="//@files.3/@namespaces.0/@typedefs.0"/>
         </members>
         <members
             identifier="score">
           <type
-              xsi:type="ex:CompoundType"
-              referencedType="//@files.4/@namespaces.0/@typedefs.1"/>
+              xsi:type="cs:PrimitiveType"
+              type="int"/>
         </members>
         <members
             identifier="initialScore">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="int"/>
         </members>
         <members
             identifier="lives">
           <type
-              xsi:type="ex:CompoundType"
-              referencedType="//@files.4/@namespaces.0/@typedefs.1"/>
+              xsi:type="cs:PrimitiveType"
+              type="int"/>
         </members>
         <members
             identifier="initialLives">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="int"/>
         </members>
         <methods
@@ -193,45 +156,44 @@
           <body>score = new DataInt(initialScore);</body>
           <body>lives = new DataInt(initialLives);</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
       </typedefs>
+    </namespaces>
+  </files>
+  <files filename="LivesText">
+    <namespaces
+        namespace="DSL">
+      <using>UnityEngine</using>
+      <using>System</using>
+      <using>UnityEngine.UI</using>
       <typedefs
-          xsi:type="ex:Class"
-          identifier="DataInt">
+          xsi:type="cs:Class"
+          identifier="LivesText"
+          baseType="//@externalTypes.1">
         <members
-            identifier="value">
+            identifier="view">
           <type
-              xsi:type="ex:PrimitiveType"
-              type="int"/>
+              xsi:type="cs:CompoundType"
+              referencedType="//@externalTypes.3"/>
+        </members>
+        <members
+            identifier="displayed">
+          <type
+              xsi:type="cs:PrimitiveType"
+              type="string"/>
         </members>
-        <constructors>
-          <body>this.value = value;</body>
-          <parameters
-              identifier="value">
-            <type
-                xsi:type="ex:PrimitiveType"
-                type="int"/>
-          </parameters>
-        </constructors>
         <methods
-            identifier="setValue">
-          <parameters
-              identifier="value">
-            <type
-                xsi:type="ex:PrimitiveType"
-                type="int"/>
-          </parameters>
-          <body>this.value = value;</body>
+            identifier="Start">
+          <body>view = gameObject.GetComponent&lt;Text>();</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
         <methods
-            identifier="getValue">
-          <body>return this.value;</body>
+            identifier="Update">
+          <body>view.text = displayed + DataManager.instance.lives.getValue();</body>
           <returnType
-              xsi:type="ex:PrimitiveType"
-              type="int"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
       </typedefs>
     </namespaces>
@@ -240,43 +202,43 @@
     <namespaces
         namespace="DSL">
       <typedefs
-          xsi:type="ex:Class"
+          xsi:type="cs:Class"
           identifier="Character"
           baseType="//@externalTypes.1">
         <members
             identifier="body">
           <type
-              xsi:type="ex:CompoundType"
+              xsi:type="cs:CompoundType"
               referencedType="//@externalTypes.2"/>
         </members>
         <members
             identifier="speed">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="float"/>
         </members>
         <members
             identifier="jumpForce">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="float"/>
         </members>
         <members
             identifier="horizontal">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="float"/>
         </members>
         <members
             identifier="isGrounded">
           <type
-              xsi:type="ex:PrimitiveType"
+              xsi:type="cs:PrimitiveType"
               type="bool"/>
         </members>
         <members
             identifier="objectCreated">
           <type
-              xsi:type="ex:CompoundType"
+              xsi:type="cs:CompoundType"
               referencedType="//@externalTypes.5"/>
         </members>
         <methods
@@ -291,28 +253,28 @@
 				Instantiate(objectCreated, transform.position + new Vector3(2, 0, 0), transform.rotation);&#xD;
 			}</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
         <methods
             identifier="OnCollisionEnter2D">
           <parameters
               identifier="collider">
             <type
-                xsi:type="ex:CompoundType"
+                xsi:type="cs:CompoundType"
                 referencedType="//@externalTypes.6"/>
           </parameters>
           <body>if (collider.gameObject.tag == &quot;Floor&quot;) {&#xD;
 				isGrounded = true;&#xD;
 			}</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
         </methods>
         <methods
             identifier="OnTriggerEnter2D">
           <parameters
               identifier="collider">
             <type
-                xsi:type="ex:CompoundType"
+                xsi:type="cs:CompoundType"
                 referencedType="//@externalTypes.4"/>
           </parameters>
           <body>DataManager manager = DataManager.instance;</body>
@@ -321,8 +283,127 @@
 				Destroy(gameObject);&#xD;
 			}</body>
           <returnType
-              xsi:type="ex:PrimitiveType"/>
+              xsi:type="cs:PrimitiveType"/>
+        </methods>
+      </typedefs>
+    </namespaces>
+  </files>
+  <files filename="Types">
+    <namespaces
+        namespace="Test">
+      <typedefs
+          xsi:type="cs:Interface"
+          identifier="MyInterface">
+        <methods
+            identifier="Method1">
+          <parameters
+              identifier="floaty">
+            <type
+                xsi:type="cs:PrimitiveType"
+                type="float"/>
+          </parameters>
+          <returnType
+              xsi:type="cs:PrimitiveType"/>
         </methods>
+        <methods
+            identifier="Add">
+          <parameters
+              identifier="adder">
+            <type
+                xsi:type="cs:PrimitiveType"
+                type="int"/>
+          </parameters>
+          <returnType
+              xsi:type="cs:PrimitiveType"
+              type="int"/>
+        </methods>
+      </typedefs>
+      <typedefs
+          xsi:type="cs:Delegate"
+          identifier="MyDelegate">
+        <parameters
+            identifier="s">
+          <type
+              xsi:type="cs:PrimitiveType"
+              type="string"/>
+        </parameters>
+        <returnType
+            xsi:type="cs:PrimitiveType"
+            type="string"/>
+      </typedefs>
+      <typedefs
+          xsi:type="cs:Class"
+          identifier="MyClass">
+        <typedefs
+            xsi:type="cs:Class"
+            identifier="InnerClass"
+            accessability="private"/>
+        <members
+            identifier="data"
+            accessability="private">
+          <type
+              xsi:type="cs:CompoundType"
+              referencedType="//@files.6/@namespaces.0/@typedefs.2/@typedefs.0"/>
+        </members>
+        <methods
+            identifier="GetData">
+          <returnType
+              xsi:type="cs:CompoundType"
+              referencedType="//@files.6/@namespaces.0/@typedefs.2/@typedefs.0"/>
+        </methods>
+      </typedefs>
+      <typedefs
+          xsi:type="cs:Enum"
+          identifier="MyEnum">
+        <literals
+            identifier="ONE"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="TWO"
+            value="2"/>
+        <literals
+            identifier="THREE"/>
+      </typedefs>
+      <typedefs
+          xsi:type="cs:Struct"
+          identifier="MyStruct"
+          specifier="readonly"/>
+      <typedefs
+          xsi:type="cs:Enum"
+          identifier="MyByteEnum"
+          base="byte">
+        <literals
+            identifier="s1"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="s2"
+            value="1"/>
+        <literals
+            identifier="s3"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="s4"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="s5"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="s6"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="s7"
+            value="1"
+            useValue="true"/>
+        <literals
+            identifier="s8"
+            value="1"
+            useValue="true"/>
       </typedefs>
     </namespaces>
   </files>
@@ -347,4 +428,4 @@
   <externalTypes
       identifier="Collision2D"
       importedFrom="UnityEngine"/>
-</ex:Program>
+</cs:Program>
diff --git a/projectMDE/transforms/UGameTransform_modded.qvto b/projectMDE/transforms/UGameTransform_modded.qvto
index baae201b1976f3c8c57c39f417f900c690ec294b..74004ad6874aca355928ece3653cc6e5bad20ccb 100644
--- a/projectMDE/transforms/UGameTransform_modded.qvto
+++ b/projectMDE/transforms/UGameTransform_modded.qvto
@@ -191,8 +191,10 @@ mapping Unity::GameObject::GameObj2Class() : Prog::Class {
 	};
 	
 	var createCounter : Integer = 0;
-		unity.objectsOfType(Unity::ObjectCreation)->forEach(e){
-			var prefab: MemberDef;
+	--childrens with object creation.
+		self.start->forEach(e){
+			if (e.oclIsKindOf(Unity::ObjectCreation)){
+				var prefab: MemberDef;
 			object prefab: MemberDef{
 			accessability := AccessModifier::public;
 			type := toType(gameObject);
@@ -200,6 +202,45 @@ mapping Unity::GameObject::GameObj2Class() : Prog::Class {
 			createCounter := createCounter + 1;
 			};
 			members+=prefab;
+			};
+		};
+		self.update->forEach(e){
+			if (e.oclIsKindOf(Unity::ObjectCreation)){
+				var prefab: MemberDef;
+			object prefab: MemberDef{
+			accessability := AccessModifier::public;
+			type := toType(gameObject);
+			identifier := "createdObject"+createCounter.toString();
+			createCounter := createCounter + 1;
+			};
+			members+=prefab;
+			};
+		};
+		self.interaction.execute->forEach(e){
+			if (e.oclIsKindOf(Unity::ObjectCreation)){
+				var prefab: MemberDef;
+			object prefab: MemberDef{
+			accessability := AccessModifier::public;
+			type := toType(gameObject);
+			identifier := "createdObject"+createCounter.toString();
+			createCounter := createCounter + 1;
+			};
+			members+=prefab;
+			};
+		};
+		self.colision->forEach(c | c.oclIsKindOf(Unity::Trigger)){
+			c.oclAsType(Unity::Trigger).execute->forEach(e){
+			if (e.oclIsKindOf(Unity::ObjectCreation)){
+				var prefab: MemberDef;
+			object prefab: MemberDef{
+			accessability := AccessModifier::public;
+			type := toType(gameObject);
+			identifier := "createdObject"+createCounter.toString();
+			createCounter := createCounter + 1;
+			};
+			members+=prefab;
+			};
+			};
 		};
 		log("created objects"+createCounter.toString());
 		createCounter := 0;
diff --git a/projectMDE_acceleo/.classpath b/projectMDE_acceleo/.classpath
new file mode 100644
index 0000000000000000000000000000000000000000..0d873c01f1def90ebe185f9b899802c261903bd8
--- /dev/null
+++ b/projectMDE_acceleo/.classpath
@@ -0,0 +1,12 @@
+<?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">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" output="bin" path="src"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/projectMDE_acceleo/.project b/projectMDE_acceleo/.project
new file mode 100644
index 0000000000000000000000000000000000000000..f20fce83e1ad598c1424772e282db851f8ed34d1
--- /dev/null
+++ b/projectMDE_acceleo/.project
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>projectMDE_acceleo</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<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>
+		<buildCommand>
+			<name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+			<arguments>
+				<dictionary>
+					<key>compilation.kind</key>
+					<value>compilation.platform.resource</value>
+				</dictionary>
+				<dictionary>
+					<key>compliance</key>
+					<value>pragmatic</value>
+				</dictionary>
+				<dictionary>
+					<key>resource.kind</key>
+					<value>xmi</value>
+				</dictionary>
+				<dictionary>
+					<key>trim-position</key>
+					<value>false</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/projectMDE_acceleo/META-INF/MANIFEST.MF b/projectMDE_acceleo/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..2fd548649a2af1fe1bf176228e712edd6c47818c
--- /dev/null
+++ b/projectMDE_acceleo/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Acceleo ProjectMDE_acceleo Module Runtime Plug-in
+Bundle-SymbolicName: projectMDE_acceleo
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: projectMDE_acceleo.Activator
+Bundle-Vendor: Eclipse Modeling Project
+Require-Bundle: org.eclipse.core.runtime, 
+ org.eclipse.emf.ecore, 
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.ocl,
+ org.eclipse.ocl.ecore,
+ org.eclipse.acceleo.common;bundle-version="3.3.0",
+ org.eclipse.acceleo.model;bundle-version="3.3.0",
+ org.eclipse.acceleo.profiler;bundle-version="3.3.0",
+ org.eclipse.acceleo.engine;bundle-version="3.3.0",
+ com.google.guava
+Bundle-RequiredExecutionEnvironment: JavaSE-11
+Bundle-ActivationPolicy: lazy
+Eclipse-LazyStart: true
+Export-Package: projectMDE_acceleo.main
+
diff --git a/projectMDE_acceleo/bin/Bullet.cs b/projectMDE_acceleo/bin/Bullet.cs
new file mode 100644
index 0000000000000000000000000000000000000000..18db88d7a13495bc23efb0f33e687263af28e246
--- /dev/null
+++ b/projectMDE_acceleo/bin/Bullet.cs
@@ -0,0 +1,22 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	// Type definitions
+	public  class Bullet : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.Rigidbody2D body;
+		public  int speed;
+	
+		// methods
+		public  void Awake() {
+			body = gameObjects.GetComponent<Rigidbody2D>();
+		}
+	
+		public  void Start() {
+			body.addForce(new Vector2(1, 0) * speed, ForceMode2D.Impulse);
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/bin/Character.cs b/projectMDE_acceleo/bin/Character.cs
new file mode 100644
index 0000000000000000000000000000000000000000..25017298c47c6cd2682ffbd6a7d039d63625989c
--- /dev/null
+++ b/projectMDE_acceleo/bin/Character.cs
@@ -0,0 +1,41 @@
+namespace DSL {
+	// Type definitions
+	public  class Character : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.Rigidbody2D body;
+		public  float speed;
+		public  float jumpForce;
+		public  float horizontal;
+		public  bool isGrounded;
+		public  UnityEngine.GameObject objectCreated;
+	
+		// methods
+		public  void Update() {
+			horizontal = Input.GetAxis("Horizontal");
+			if (Input.GetButtonDown("Jump") && isGrounded) {
+						isGrounded = false;
+						body.AddForce(new Vector2(0, 1) * jumpforce, ForceMode2D.Impulse);
+					}
+			body.velocity = new Vector2(horizontal * speed, body.velocity.y);
+			if (Input.GetKeyDown(KeyCode.K)) {
+						Instantiate(objectCreated, transform.position + new Vector3(2, 0, 0), transform.rotation);
+					}
+		}
+	
+		public  void OnCollisionEnter2D(UnityEngine.Collision2D collider) {
+						if (collider.gameObject.tag == "Floor") {
+									isGrounded = true;
+								}
+					}
+	
+		public  void OnTriggerEnter2D(UnityEngine.Collider2D collider) {
+									DataManager manager = DataManager.instance;
+									if (collider.gameObject.tag == "Enemy") {
+												manager.score.setValue(manager.score.getValue() + 100);
+												Destroy(gameObject);
+											}
+								}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/bin/DataManager.cs b/projectMDE_acceleo/bin/DataManager.cs
new file mode 100644
index 0000000000000000000000000000000000000000..758b9e3ffa43dc77bf0707aa759cfbcc20d9bbd8
--- /dev/null
+++ b/projectMDE_acceleo/bin/DataManager.cs
@@ -0,0 +1,23 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	// Type definitions
+	public  class DataManager : UnityEngine.MonoBehaviour {
+	
+		// members
+		public static DSL.DataManager instance;
+		public  int score;
+		public  int initialScore;
+		public  int lives;
+		public  int initialLives;
+	
+		// methods
+		public  void Awake() {
+			instance ??= this;
+			score = new DataInt(initialScore);
+			lives = new DataInt(initialLives);
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/bin/Enemy.cs b/projectMDE_acceleo/bin/Enemy.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cf7f7eda0af4bf877371747bdf02159b9fed3e52
--- /dev/null
+++ b/projectMDE_acceleo/bin/Enemy.cs
@@ -0,0 +1,22 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	// Type definitions
+	public  class Enemy : UnityEngine.MonoBehaviour {
+	
+		// methods
+		public  void OnTriggerEnter2D(UnityEngine.Collider2D collider) {
+			DataManager manager = DataManager.instance;
+			if (colider.gameObject.tag == "PlayerFoot") {
+						manager.score.setValue(manager.score.getValue() + 100);
+						Destroy(gameObject);
+					}
+			if (colider.gameObject.tag == "Bullet") {
+						manager.score.setValue(manager.score.getValue() + 100);
+						Destroy(gameObject);
+					}
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/bin/LivesText.cs b/projectMDE_acceleo/bin/LivesText.cs
new file mode 100644
index 0000000000000000000000000000000000000000..485ff94d665f0573fb99acd29946562fe1e0dc6e
--- /dev/null
+++ b/projectMDE_acceleo/bin/LivesText.cs
@@ -0,0 +1,23 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	using UnityEngine.UI;
+	// Type definitions
+	public  class LivesText : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.UI.Text view;
+		public  string displayed;
+	
+		// methods
+		public  void Start() {
+			view = gameObject.GetComponent<Text>();
+		}
+	
+		public  void Update() {
+			view.text = displayed + DataManager.instance.lives.getValue();
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/bin/ScoreText.cs b/projectMDE_acceleo/bin/ScoreText.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d6c7a8752782cb413ec7f38e5fd17cadd665a454
--- /dev/null
+++ b/projectMDE_acceleo/bin/ScoreText.cs
@@ -0,0 +1,23 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	using UnityEngine.UI;
+	// Type definitions
+	public  class ScoreText : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.UI.Text view;
+		public  string displayed;
+	
+		// methods
+		public  void Start() {
+			view = gameObject.GetComponent<Text>();
+		}
+	
+		public  void Update() {
+			view.text = displayed + DataManager.instance.score.getValue();
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/bin/Types.cs b/projectMDE_acceleo/bin/Types.cs
new file mode 100644
index 0000000000000000000000000000000000000000..eb4ea5442aa09a081b70a0fd000bf573a26ffe60
--- /dev/null
+++ b/projectMDE_acceleo/bin/Types.cs
@@ -0,0 +1,38 @@
+namespace Test {
+	// Type definitions
+	public  interface MyInterface {
+		// interface methods
+		public  void Method1(float floaty);
+		public  int Add(int adder);
+	}
+
+	public  delegate MyDelegate(string s);
+
+	public  class MyClass {
+	
+		// members
+		private  Test.MyClass.InnerClass data;
+	
+		// methods
+		public  Test.MyClass.InnerClass GetData() {
+		}
+	
+		// inner types
+		private  class InnerClass {
+		
+		}
+	
+	}
+
+	public  enum MyEnum {
+		ONE = 1, TWO, THREE
+	}
+
+	public readonly struct MyStruct {
+	
+	}
+
+	public  enum MyByteEnum : byte {
+		s1 = 1, s2, s3 = 1, s4 = 1, s5 = 1, s6 = 1, s7 = 1, s8 = 1
+	}
+} 
diff --git a/projectMDE_acceleo/bin/projectMDE_acceleo/Activator.class b/projectMDE_acceleo/bin/projectMDE_acceleo/Activator.class
new file mode 100644
index 0000000000000000000000000000000000000000..646da538dc9cba7823586acd58a73bc43242d900
Binary files /dev/null and b/projectMDE_acceleo/bin/projectMDE_acceleo/Activator.class differ
diff --git a/projectMDE_acceleo/bin/projectMDE_acceleo/main/Generate.class b/projectMDE_acceleo/bin/projectMDE_acceleo/main/Generate.class
new file mode 100644
index 0000000000000000000000000000000000000000..911828e972bdfa4cc60a642373fcf75ad335cc2e
Binary files /dev/null and b/projectMDE_acceleo/bin/projectMDE_acceleo/main/Generate.class differ
diff --git a/projectMDE_acceleo/bin/projectMDE_acceleo/main/generate.emtl b/projectMDE_acceleo/bin/projectMDE_acceleo/main/generate.emtl
new file mode 100644
index 0000000000000000000000000000000000000000..6b382d862501017ead46bd6ce16dc5a579be5242
--- /dev/null
+++ b/projectMDE_acceleo/bin/projectMDE_acceleo/main/generate.emtl
@@ -0,0 +1,4041 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">
+  <mtl:Module name="generate" nsURI="projectMDE_acceleo::main::generate" startHeaderPosition="29" endHeaderPosition="150">
+    <input>
+      <takesTypesFrom href="http://www.example.org/cs.ecore#/"/>
+    </input>
+    <ownedModuleElement xsi:type="mtl:Query" name="fileName" visibility="Public">
+      <parameter name="f">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+      </parameter>
+      <expression xsi:type="ocl.ecore:OperationCallExp">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <source xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="f" referredVariable="/0/fileName/f">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//File/filename"/>
+        </source>
+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".cs">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </argument>
+        <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/concat"/>
+      </expression>
+      <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateProgram" visibility="Public" main="true">
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateFile">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="f" referredVariable="/0/generateProgram/%/f">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="f">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(File)">
+          <source xsi:type="ocl.ecore:VariableExp" name="program" referredVariable="/0/generateProgram/program">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Program/files"/>
+        </iterSet>
+      </body>
+      <parameter name="program">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateFile" visibility="Public">
+      <body xsi:type="mtl:FileBlock" openMode="OverWrite">
+        <body xsi:type="mtl:ForBlock">
+          <body xsi:type="mtl:TemplateInvocation" definition="/0/generateNamespace">
+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+            <argument xsi:type="ocl.ecore:VariableExp" name="ns" referredVariable="/0/generateFile/%/%/ns">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+            </argument>
+          </body>
+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" &#xA;"/>
+          <loopVariable name="ns">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+          </loopVariable>
+          <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Namespace)">
+            <source xsi:type="ocl.ecore:VariableExp" name="f" referredVariable="/0/generateFile/f">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+            </source>
+            <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//File/namespaces"/>
+          </iterSet>
+        </body>
+        <fileUrl xsi:type="mtl:QueryInvocation" definition="/0/fileName">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="f" referredVariable="/0/generateFile/f">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+          </argument>
+        </fileUrl>
+        <charset xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="UTF-8">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </charset>
+      </body>
+      <parameter name="f">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateNamespace" visibility="Public">
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="namespace "/>
+      <body xsi:type="ocl.ecore:PropertyCallExp">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <source xsi:type="ocl.ecore:VariableExp" name="ns" referredVariable="/0/generateNamespace/ns">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+        </source>
+        <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Namespace/namespace"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" {&#xA;"/>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;using "/>
+        <body xsi:type="ocl.ecore:VariableExp" name="using" referredVariable="/0/generateNamespace/%.3/using.1">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>
+        <loopVariable name="using">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">
+          <source xsi:type="ocl.ecore:VariableExp" name="ns" referredVariable="/0/generateNamespace/ns">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Namespace/using"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;// using directives&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+      </body>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateNamespace">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="childNs" referredVariable="/0/generateNamespace/%.4/childNs">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="childNs">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Namespace)">
+          <source xsi:type="ocl.ecore:VariableExp" name="ns" referredVariable="/0/generateNamespace/ns">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Namespace/innerNamespaces"/>
+        </iterSet>
+      </body>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateInternalType">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="typeDef" referredVariable="/0/generateNamespace/%.5/typeDef">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="typeDef">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(InternalType)">
+          <source xsi:type="ocl.ecore:VariableExp" name="ns" referredVariable="/0/generateNamespace/ns">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Namespace/typedefs"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;// Type definitions&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+        <each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </each>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
+      <parameter name="ns">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <parameter name="type">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateInternalType.3">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="struct" referredVariable="/0/generateInternalType.1/struct">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Interface)">
+          <source xsi:type="ocl.ecore:VariableExp" name="struct" referredVariable="/0/generateInternalType.1/struct">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Containment/implements"/>
+        </argument>
+      </body>
+      <parameter name="struct">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateInternalType.3">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/generateInternalType.2/class">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(TypeDef)" referredOperation="/1/oclstdlib_Collection(T)_Class/addAll">
+          <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(TypeDef)">
+            <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(TypeDef)">
+              <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">
+                <details key="IMPLICIT_SET_CONVERSION" value="true"/>
+              </eAnnotations>
+              <part xsi:type="ocl.ecore:CollectionItem">
+                <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+                <item xsi:type="ocl.ecore:PropertyCallExp">
+                  <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+                  <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/generateInternalType.2/class">
+                    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+                  </source>
+                  <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Class/baseType"/>
+                </item>
+              </part>
+            </source>
+            <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/asOrderedSet"/>
+          </source>
+          <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Interface)">
+            <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/generateInternalType.2/class">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+            </source>
+            <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Containment/implements"/>
+          </argument>
+        </argument>
+      </body>
+      <parameter name="class">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateTypeDef">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//InternalType/accessability"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/specifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//TypeDef/getType"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/identifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:VariableExp" name="derivations" eType="/3/OrderedSet(TypeDef)" referredVariable="/0/generateInternalType.3/derivations"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" {&#xA;"/>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateMember">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="member" referredVariable="/0/generateInternalType.3/%.2/member">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="member">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(MemberDef)">
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Containment/members"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;// members&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+      </body>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateConstructor">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateInternalType.3/%.3/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="constructor">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(ConstructorDef)">
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Containment/constructors"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;// constructors&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+      </body>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateMethod">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateInternalType.3/%.4/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="method">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(MethodDef)">
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Containment/methods"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;// methods&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+        <each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </each>
+      </body>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateInternalType">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:VariableExp" name="typeDef" referredVariable="/0/generateInternalType.3/%.5/typeDef">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="typeDef">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(InternalType)">
+          <source xsi:type="ocl.ecore:VariableExp" name="containment" referredVariable="/0/generateInternalType.3/containment">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Containment/typedefs"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;// inner types&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;}"/>
+      <parameter name="containment">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+      </parameter>
+      <parameter name="derivations" eType="/3/OrderedSet(TypeDef)"/>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateTypeDef">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateInternalType.4/interface">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//InternalType/accessability"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateInternalType.4/interface">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/specifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateInternalType.4/interface">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//TypeDef/getType"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateInternalType.4/interface">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/identifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/OrderedSet(OclVoid)" kind="OrderedSet"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" {&#xA;"/>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/access">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateInternalType.4/%.2/method">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/accessability"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/spec">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateInternalType.4/%.2/method">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/specifier"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+        <body xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Type"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateInternalType.4/%.2/method">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+            </source>
+            <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//MethodDef/returnType"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//Type/getQualifiedName"/>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+        <body xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateInternalType.4/%.2/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/identifier"/>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/>
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/generateParams">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
+            <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateInternalType.4/%.2/method">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+            </source>
+            <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//MethodDef/parameters"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=");&#xA;"/>
+        <loopVariable name="method">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(MethodDef)">
+          <source xsi:type="ocl.ecore:VariableExp" name="interface" referredVariable="/0/generateInternalType.4/interface">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Interface/methods"/>
+        </iterSet>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;// interface methods&#xA;">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
+      <parameter name="interface">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateTypeDef">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="delegate" referredVariable="/0/generateInternalType.5/delegate">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//InternalType/accessability"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="delegate" referredVariable="/0/generateInternalType.5/delegate">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/specifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="delegate" referredVariable="/0/generateInternalType.5/delegate">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//TypeDef/getType"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="delegate" referredVariable="/0/generateInternalType.5/delegate">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/identifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/OrderedSet(OclVoid)" kind="OrderedSet"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateParams">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
+          <source xsi:type="ocl.ecore:VariableExp" name="delegate" referredVariable="/0/generateInternalType.5/delegate">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Delegate/parameters"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=");"/>
+      <parameter name="delegate">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateInternalType" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateTypeDef">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//InternalType/accessability"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/specifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//TypeDef/getType"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//TypeDef/identifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/OrderedSet(OclVoid)" kind="OrderedSet"/>
+      </body>
+      <body xsi:type="mtl:IfBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/>
+        <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EPrimitiveType"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Enum/base"/>
+          </source>
+        </body>
+        <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+          <source xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EPrimitiveType"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Enum/base"/>
+          </source>
+          <argument xsi:type="ocl.ecore:EnumLiteralExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EPrimitiveType"/>
+            <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.example.org/cs.ecore#//EPrimitiveType/int"/>
+          </argument>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/>
+        </ifExpr>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" {&#xA;&#x9;"/>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="literal" referredVariable="/0/generateInternalType.6/%.3/literal">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Literal/identifier"/>
+        </body>
+        <body xsi:type="mtl:IfBlock">
+          <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = "/>
+          <body xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="literal" referredVariable="/0/generateInternalType.6/%.3/literal">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Literal/value"/>
+          </body>
+          <ifExpr xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="literal" referredVariable="/0/generateInternalType.6/%.3/literal">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Literal/useValue"/>
+          </ifExpr>
+        </body>
+        <loopVariable name="literal">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Literal)">
+          <source xsi:type="ocl.ecore:VariableExp" name="enum" referredVariable="/0/generateInternalType.6/enum">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Enum/literals"/>
+        </iterSet>
+        <each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", ">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </each>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;}"/>
+      <parameter name="enum">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateTypeDef" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/access">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="access" referredVariable="/0/generateTypeDef/access">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/spec">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="spec" referredVariable="/0/generateTypeDef/spec">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/generateTypeDef/type">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+        </source>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="ocl.ecore:VariableExp" name="id" referredVariable="/0/generateTypeDef/id.1">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </body>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="derivation" referredVariable="/0/generateTypeDef/%.6/derivation">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//TypeDef/getQualifiedName"/>
+        </body>
+        <loopVariable name="derivation">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:VariableExp" name="derivations" eType="/3/OrderedSet(TypeDef)" referredVariable="/0/generateTypeDef/derivations"/>
+        <before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : ">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </before>
+        <each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", ">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </each>
+      </body>
+      <parameter name="access">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+      </parameter>
+      <parameter name="spec">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+      </parameter>
+      <parameter name="type">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+      </parameter>
+      <parameter name="id">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </parameter>
+      <parameter name="derivations" eType="/3/OrderedSet(TypeDef)"/>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateMember" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/access">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="member" referredVariable="/0/generateMember/member">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MemberDef/accessability"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/spec">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="member" referredVariable="/0/generateMember/member">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MemberDef/specifier"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="ocl.ecore:OperationCallExp">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <source xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Type"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="member" referredVariable="/0/generateMember/member">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//MemberDef/type"/>
+        </source>
+        <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//Type/getQualifiedName"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="ocl.ecore:PropertyCallExp">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <source xsi:type="ocl.ecore:VariableExp" name="member" referredVariable="/0/generateMember/member">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+        </source>
+        <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MemberDef/identifier"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/>
+      <parameter name="member">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateConstructor" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateFunction">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//ConstructorDef/accessability"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//ConstructorDef/specifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;retType>">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;constructType>">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//ConstructorDef/parameters"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//ConstructorDef/body"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/spec">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//ConstructorDef/specifier"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/access">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//ConstructorDef/accessability"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" {&#xA;"/>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="ocl.ecore:VariableExp" name="stat" referredVariable="/0/generateConstructor/%.6/stat.1">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="stat">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">
+          <source xsi:type="ocl.ecore:VariableExp" name="constructor" referredVariable="/0/generateConstructor/constructor">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//ConstructorDef/body"/>
+        </iterSet>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
+      <parameter name="constructor">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateMethod" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateFunction">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateMethod/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/accessability"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateMethod/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/specifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Type"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateMethod/method">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+            </source>
+            <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//MethodDef/returnType"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//Type/getQualifiedName"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateMethod/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/identifier"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
+          <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateMethod/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//MethodDef/parameters"/>
+        </argument>
+        <argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(String)">
+          <source xsi:type="ocl.ecore:VariableExp" name="method" referredVariable="/0/generateMethod/method">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//MethodDef/body"/>
+        </argument>
+      </body>
+      <parameter name="method">
+        <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateFunction" visibility="Public">
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/access">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="access" referredVariable="/0/generateFunction/access">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/spec">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="spec" referredVariable="/0/generateFunction/spec">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+        </argument>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="ocl.ecore:VariableExp" name="returnType" referredVariable="/0/generateFunction/returnType.1">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+      <body xsi:type="ocl.ecore:VariableExp" name="identifier" referredVariable="/0/generateFunction/identifier.1">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/>
+      <body xsi:type="mtl:TemplateInvocation" definition="/0/generateParams">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <argument xsi:type="ocl.ecore:VariableExp" name="params" eType="/3/OrderedSet(Parameter)" referredVariable="/0/generateFunction/params"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") {&#xA;"/>
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
+        <body xsi:type="ocl.ecore:VariableExp" name="stat" referredVariable="/0/generateFunction/%.8/stat.1">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+        <loopVariable name="stat">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:VariableExp" name="_body" eType="/3/OrderedSet(String)" referredVariable="/0/generateFunction/_body"/>
+      </body>
+      <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
+      <parameter name="access">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+      </parameter>
+      <parameter name="spec">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+      </parameter>
+      <parameter name="returnType">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </parameter>
+      <parameter name="identifier">
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </parameter>
+      <parameter name="params" eType="/3/OrderedSet(Parameter)"/>
+      <parameter name="_body" eType="/3/OrderedSet(String)"/>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="generateParams" visibility="Public">
+      <body xsi:type="mtl:ForBlock">
+        <body xsi:type="mtl:TemplateInvocation" definition="/0/varSpec">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <argument xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="param" referredVariable="/0/generateParams/%/param">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+            </source>
+            <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Parameter/specifier"/>
+          </argument>
+        </body>
+        <body xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:PropertyCallExp">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Type"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="param" referredVariable="/0/generateParams/%/param">
+              <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+            </source>
+            <referredProperty xsi:type="ecore:EReference" href="http://www.example.org/cs.ecore#//Parameter/type"/>
+          </source>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.example.org/cs.ecore#//Type/getQualifiedName"/>
+        </body>
+        <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
+        <body xsi:type="ocl.ecore:PropertyCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="param" referredVariable="/0/generateParams/%/param">
+            <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+          </source>
+          <referredProperty xsi:type="ecore:EAttribute" href="http://www.example.org/cs.ecore#//Parameter/identifier"/>
+        </body>
+        <loopVariable name="param">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+        </loopVariable>
+        <iterSet xsi:type="ocl.ecore:VariableExp" name="params" eType="/3/OrderedSet(Parameter)" referredVariable="/0/generateParams/params"/>
+        <each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", ">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </each>
+      </body>
+      <parameter name="params" eType="/3/OrderedSet(Parameter)"/>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="spec" visibility="Public">
+      <body xsi:type="mtl:IfBlock">
+        <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="specifier" referredVariable="/0/spec/specifier">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+          </source>
+          <argument xsi:type="ocl.ecore:EnumLiteralExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+            <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.example.org/cs.ecore#//Specifier/none"/>
+          </argument>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
+        </ifExpr>
+        <else>
+          <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">
+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="specifier" referredVariable="/0/spec/specifier">
+              <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+            </source>
+          </body>
+        </else>
+      </body>
+      <parameter name="specifier">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="varSpec" visibility="Public">
+      <body xsi:type="mtl:IfBlock">
+        <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="specifier" referredVariable="/0/varSpec/specifier">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+          </source>
+          <argument xsi:type="ocl.ecore:EnumLiteralExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+            <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.example.org/cs.ecore#//VarSpecifier/none"/>
+          </argument>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
+        </ifExpr>
+        <else>
+          <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">
+            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+            <source xsi:type="ocl.ecore:VariableExp" name="specifier" referredVariable="/0/varSpec/specifier">
+              <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+            </source>
+          </body>
+        </else>
+      </body>
+      <parameter name="specifier">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+      </parameter>
+    </ownedModuleElement>
+    <ownedModuleElement xsi:type="mtl:Template" name="access" visibility="Public">
+      <body xsi:type="mtl:IfBlock">
+        <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+          <source xsi:type="ocl.ecore:VariableExp" name="accessability" referredVariable="/0/access/accessability">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+          </source>
+          <argument xsi:type="ocl.ecore:EnumLiteralExp">
+            <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+            <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.example.org/cs.ecore#//AccessModifier/none"/>
+          </argument>
+          <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
+        </ifExpr>
+        <else>
+          <body xsi:type="mtl:IfBlock">
+            <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="private protected"/>
+            <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+              <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+              <source xsi:type="ocl.ecore:VariableExp" name="accessability" referredVariable="/0/access/accessability">
+                <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+              </source>
+              <argument xsi:type="ocl.ecore:EnumLiteralExp">
+                <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+                <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.example.org/cs.ecore#//AccessModifier/private_protected"/>
+              </argument>
+              <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
+            </ifExpr>
+            <else>
+              <body xsi:type="mtl:IfBlock">
+                <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="protected internal"/>
+                <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+                  <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                  <source xsi:type="ocl.ecore:VariableExp" name="accessability" referredVariable="/0/access/accessability">
+                    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+                  </source>
+                  <argument xsi:type="ocl.ecore:EnumLiteralExp">
+                    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+                    <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.example.org/cs.ecore#//AccessModifier/protected_internal"/>
+                  </argument>
+                  <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
+                </ifExpr>
+                <else>
+                  <body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/oclstdlib_OclAny_Class/toString">
+                    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                    <source xsi:type="ocl.ecore:VariableExp" name="accessability" referredVariable="/0/access/accessability">
+                      <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+                    </source>
+                  </body>
+                </else>
+              </body>
+            </else>
+          </body>
+        </else>
+      </body>
+      <parameter name="accessability">
+        <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+      </parameter>
+    </ownedModuleElement>
+  </mtl:Module>
+  <ecore:EPackage name="additions">
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_String_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Integer_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Real_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="ecore_EObject_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+      </eAnnotations>
+      <eOperations name="fileName">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/fileName"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="f">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateProgram">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateProgram"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="program">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateFile">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateFile"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="f">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateNamespace">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateNamespace"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="ns">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="type">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType.1"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="struct">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType.2"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="class">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType.3"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="containment">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+        </eParameters>
+        <eParameters name="derivations" eType="/3/OrderedSet(TypeDef)"/>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType.4"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="interface">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType.5"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="delegate">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateInternalType">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateInternalType.6"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="enum">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateTypeDef">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateTypeDef"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="access">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+        </eParameters>
+        <eParameters name="spec">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+        </eParameters>
+        <eParameters name="type">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//EType"/>
+        </eParameters>
+        <eParameters name="id">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </eParameters>
+        <eParameters name="derivations" eType="/3/OrderedSet(TypeDef)"/>
+      </eOperations>
+      <eOperations name="generateMember">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateMember"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="member">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateConstructor">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateConstructor"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="constructor">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateMethod">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateMethod"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="method">
+          <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="generateFunction">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateFunction"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="access">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+        </eParameters>
+        <eParameters name="spec">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+        </eParameters>
+        <eParameters name="returnType">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </eParameters>
+        <eParameters name="identifier">
+          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        </eParameters>
+        <eParameters name="params" eType="/3/OrderedSet(Parameter)"/>
+        <eParameters name="_body" eType="/3/OrderedSet(String)"/>
+      </eOperations>
+      <eOperations name="generateParams">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/generateParams"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="params" eType="/3/OrderedSet(Parameter)"/>
+      </eOperations>
+      <eOperations name="spec">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/spec"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="specifier">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="varSpec">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/varSpec"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="specifier">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+        </eParameters>
+      </eOperations>
+      <eOperations name="access">
+        <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+          <contents xsi:type="ocl.ecore:Constraint"/>
+        </eAnnotations>
+        <eAnnotations source="MTL" references="/0/access"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+        <eParameters name="accessability">
+          <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+        </eParameters>
+      </eOperations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OclAny_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+      </eAnnotations>
+      <eOperations name="toString">
+        <eAnnotations source="MTL non-standard"/>
+        <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+      </eOperations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Collection(T)_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+      </eAnnotations>
+      <eOperations name="addAll">
+        <eAnnotations source="MTL non-standard"/>
+        <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+        <eParameters name="otherCollection">
+          <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+        </eParameters>
+      </eOperations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_Sequence(T)_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="oclstdlib_OrderedSet(T)_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_File_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//File"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Program_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Program"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Namespace_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Namespace"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_InternalType_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//InternalType"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Struct_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Struct"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Class_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Class"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Containment_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Containment"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Interface_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Interface"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Delegate_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Delegate"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Enum_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Enum"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_AccessModifier_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//AccessModifier"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_MemberDef_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//MemberDef"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_ConstructorDef_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_MethodDef_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//MethodDef"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="collections_OrderedSet(Parameter)_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL" references="/3/OrderedSet(Parameter)"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_Specifier_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//Specifier"/>
+      </eAnnotations>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="csProgram_VarSpecifier_Class">
+      <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+        <references href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+      </eAnnotations>
+    </eClassifiers>
+  </ecore:EPackage>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ecore:EPackage name="collections">
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(TypeDef)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Parameter)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(File)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Namespace)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(InternalType)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Interface)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(TypeDef)" instanceClassName="java.util.Set">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:CollectionType" name="Collection(TypeDef)" instanceClassName="java.util.Collection">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(MemberDef)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(ConstructorDef)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(MethodDef)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(OclVoid)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(Literal)" instanceClassName="java.util.LinkedHashSet">
+      <elementType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+    </eClassifiers>
+  </ecore:EPackage>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Program"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//File"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Namespace"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Struct"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Class"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//InternalType"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Containment"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Interface"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Delegate"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Literal"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Enum"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//TypeDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MemberDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//ConstructorDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//MethodDef"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self" eType="/3/OrderedSet(Parameter)"/>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self" eType="/3/OrderedSet(Parameter)"/>
+  <ocl.ecore:Variable name="self" eType="/3/OrderedSet(Parameter)"/>
+  <ocl.ecore:Variable name="self" eType="/3/OrderedSet(Parameter)"/>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.example.org/cs.ecore#//Parameter"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self" eType="/3/OrderedSet(Parameter)"/>
+  <ocl.ecore:Variable name="i">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//Specifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//VarSpecifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EEnum" href="http://www.example.org/cs.ecore#//AccessModifier"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </ocl.ecore:Variable>
+  <ecore:EAnnotation source="positions">
+    <eAnnotations source="positions.0" references="/0/fileName">
+      <details key="start" value="83"/>
+      <details key="end" value="152"/>
+      <details key="line" value="4"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1" references="/0/fileName/f">
+      <details key="start" value="106"/>
+      <details key="end" value="113"/>
+      <details key="line" value="4"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2" references="/0/fileName/%">
+      <details key="start" value="126"/>
+      <details key="end" value="150"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.3" references="/0/fileName/%/%">
+      <details key="start" value="126"/>
+      <details key="end" value="136"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.4" references="/0/fileName/%/%/f">
+      <details key="start" value="126"/>
+      <details key="end" value="127"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.5" references="/0/fileName/%/%.1">
+      <details key="start" value="144"/>
+      <details key="end" value="149"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.6" references="/0/generateProgram">
+      <details key="start" value="155"/>
+      <details key="end" value="294"/>
+      <details key="line" value="6"/>
+    </eAnnotations>
+    <eAnnotations source="positions.7" references="/0/generateProgram/%">
+      <details key="start" value="225"/>
+      <details key="end" value="282"/>
+      <details key="line" value="8"/>
+    </eAnnotations>
+    <eAnnotations source="positions.8" references="/0/generateProgram/%/%">
+      <details key="start" value="258"/>
+      <details key="end" value="273"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.9" references="/0/generateProgram/%/%/f">
+      <details key="start" value="271"/>
+      <details key="end" value="272"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.10" references="/0/generateProgram/%/%.1">
+      <details key="start" value="275"/>
+      <details key="end" value="276"/>
+      <details key="line" value="10"/>
+    </eAnnotations>
+    <eAnnotations source="positions.11" references="/0/generateProgram/%/f">
+      <details key="start" value="231"/>
+      <details key="end" value="238"/>
+      <details key="line" value="8"/>
+    </eAnnotations>
+    <eAnnotations source="positions.12" references="/0/generateProgram/%/%.2">
+      <details key="start" value="241"/>
+      <details key="end" value="254"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.13" references="/0/generateProgram/%/%.2/program">
+      <details key="start" value="241"/>
+      <details key="end" value="248"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.14" references="/0/generateProgram/program">
+      <details key="start" value="188"/>
+      <details key="end" value="205"/>
+      <details key="line" value="6"/>
+    </eAnnotations>
+    <eAnnotations source="positions.15" references="/0/generateFile">
+      <details key="start" value="296"/>
+      <details key="end" value="463"/>
+      <details key="line" value="13"/>
+    </eAnnotations>
+    <eAnnotations source="positions.16" references="/0/generateFile/%">
+      <details key="start" value="337"/>
+      <details key="end" value="451"/>
+      <details key="line" value="14"/>
+    </eAnnotations>
+    <eAnnotations source="positions.17" references="/0/generateFile/%/%">
+      <details key="start" value="374"/>
+      <details key="end" value="443"/>
+      <details key="line" value="15"/>
+    </eAnnotations>
+    <eAnnotations source="positions.18" references="/0/generateFile/%/%/%">
+      <details key="start" value="412"/>
+      <details key="end" value="433"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.19" references="/0/generateFile/%/%/%/ns">
+      <details key="start" value="430"/>
+      <details key="end" value="432"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.20" references="/0/generateFile/%/%/%.1">
+      <details key="start" value="435"/>
+      <details key="end" value="437"/>
+      <details key="line" value="16"/>
+    </eAnnotations>
+    <eAnnotations source="positions.21" references="/0/generateFile/%/%/ns">
+      <details key="start" value="380"/>
+      <details key="end" value="393"/>
+      <details key="line" value="15"/>
+    </eAnnotations>
+    <eAnnotations source="positions.22" references="/0/generateFile/%/%/%.2">
+      <details key="start" value="396"/>
+      <details key="end" value="408"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.23" references="/0/generateFile/%/%/%.2/f">
+      <details key="start" value="396"/>
+      <details key="end" value="397"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.24" references="/0/generateFile/%/%.1">
+      <details key="start" value="344"/>
+      <details key="end" value="355"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.25" references="/0/generateFile/%/%.1/f">
+      <details key="start" value="353"/>
+      <details key="end" value="354"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.26" references="/0/generateFile/%/%.2">
+      <details key="start" value="364"/>
+      <details key="end" value="371"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.27" references="/0/generateFile/f">
+      <details key="start" value="326"/>
+      <details key="end" value="334"/>
+      <details key="line" value="13"/>
+    </eAnnotations>
+    <eAnnotations source="positions.28" references="/0/generateNamespace">
+      <details key="start" value="465"/>
+      <details key="end" value="876"/>
+      <details key="line" value="21"/>
+    </eAnnotations>
+    <eAnnotations source="positions.29" references="/0/generateNamespace/%">
+      <details key="start" value="517"/>
+      <details key="end" value="527"/>
+      <details key="line" value="22"/>
+    </eAnnotations>
+    <eAnnotations source="positions.30" references="/0/generateNamespace/%.1">
+      <details key="start" value="528"/>
+      <details key="end" value="540"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.31" references="/0/generateNamespace/%.1/ns">
+      <details key="start" value="528"/>
+      <details key="end" value="530"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.32" references="/0/generateNamespace/%.2">
+      <details key="start" value="542"/>
+      <details key="end" value="545"/>
+      <details key="line" value="22"/>
+    </eAnnotations>
+    <eAnnotations source="positions.33" references="/0/generateNamespace/%.3">
+      <details key="start" value="546"/>
+      <details key="end" value="637"/>
+      <details key="line" value="23"/>
+    </eAnnotations>
+    <eAnnotations source="positions.34" references="/0/generateNamespace/%.3/%">
+      <details key="start" value="613"/>
+      <details key="end" value="620"/>
+      <details key="line" value="24"/>
+    </eAnnotations>
+    <eAnnotations source="positions.35" references="/0/generateNamespace/%.3/using">
+      <details key="start" value="621"/>
+      <details key="end" value="626"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.36" references="/0/generateNamespace/%.3/%.1">
+      <details key="start" value="628"/>
+      <details key="end" value="630"/>
+      <details key="line" value="24"/>
+    </eAnnotations>
+    <eAnnotations source="positions.37" references="/0/generateNamespace/%.3/using.1">
+      <details key="start" value="552"/>
+      <details key="end" value="565"/>
+      <details key="line" value="23"/>
+    </eAnnotations>
+    <eAnnotations source="positions.38" references="/0/generateNamespace/%.3/%.2">
+      <details key="start" value="568"/>
+      <details key="end" value="576"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.39" references="/0/generateNamespace/%.3/%.2/ns">
+      <details key="start" value="568"/>
+      <details key="end" value="570"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.40" references="/0/generateNamespace/%.3/%.3">
+      <details key="start" value="585"/>
+      <details key="end" value="610"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.41" references="/0/generateNamespace/%.4">
+      <details key="start" value="639"/>
+      <details key="end" value="725"/>
+      <details key="line" value="26"/>
+    </eAnnotations>
+    <eAnnotations source="positions.42" references="/0/generateNamespace/%.4/%">
+      <details key="start" value="687"/>
+      <details key="end" value="688"/>
+      <details key="line" value="27"/>
+    </eAnnotations>
+    <eAnnotations source="positions.43" references="/0/generateNamespace/%.4/%.1">
+      <details key="start" value="689"/>
+      <details key="end" value="715"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.44" references="/0/generateNamespace/%.4/%.1/childNs">
+      <details key="start" value="707"/>
+      <details key="end" value="714"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.45" references="/0/generateNamespace/%.4/%.2">
+      <details key="start" value="717"/>
+      <details key="end" value="718"/>
+      <details key="line" value="28"/>
+    </eAnnotations>
+    <eAnnotations source="positions.46" references="/0/generateNamespace/%.4/childNs">
+      <details key="start" value="645"/>
+      <details key="end" value="663"/>
+      <details key="line" value="26"/>
+    </eAnnotations>
+    <eAnnotations source="positions.47" references="/0/generateNamespace/%.4/%.3">
+      <details key="start" value="666"/>
+      <details key="end" value="684"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.48" references="/0/generateNamespace/%.4/%.3/ns">
+      <details key="start" value="666"/>
+      <details key="end" value="668"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.49" references="/0/generateNamespace/%.5">
+      <details key="start" value="727"/>
+      <details key="end" value="862"/>
+      <details key="line" value="29"/>
+    </eAnnotations>
+    <eAnnotations source="positions.50" references="/0/generateNamespace/%.5/%">
+      <details key="start" value="821"/>
+      <details key="end" value="822"/>
+      <details key="line" value="30"/>
+    </eAnnotations>
+    <eAnnotations source="positions.51" references="/0/generateNamespace/%.5/%.1">
+      <details key="start" value="823"/>
+      <details key="end" value="852"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.52" references="/0/generateNamespace/%.5/%.1/typeDef">
+      <details key="start" value="844"/>
+      <details key="end" value="851"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.53" references="/0/generateNamespace/%.5/%.2">
+      <details key="start" value="854"/>
+      <details key="end" value="855"/>
+      <details key="line" value="31"/>
+    </eAnnotations>
+    <eAnnotations source="positions.54" references="/0/generateNamespace/%.5/typeDef">
+      <details key="start" value="733"/>
+      <details key="end" value="754"/>
+      <details key="line" value="29"/>
+    </eAnnotations>
+    <eAnnotations source="positions.55" references="/0/generateNamespace/%.5/%.3">
+      <details key="start" value="757"/>
+      <details key="end" value="768"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.56" references="/0/generateNamespace/%.5/%.3/ns">
+      <details key="start" value="757"/>
+      <details key="end" value="759"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.57" references="/0/generateNamespace/%.5/%.4">
+      <details key="start" value="777"/>
+      <details key="end" value="802"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.58" references="/0/generateNamespace/%.5/%.5">
+      <details key="start" value="814"/>
+      <details key="end" value="818"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.59" references="/0/generateNamespace/%.6">
+      <details key="start" value="863"/>
+      <details key="end" value="864"/>
+      <details key="line" value="32"/>
+    </eAnnotations>
+    <eAnnotations source="positions.60" references="/0/generateNamespace/ns">
+      <details key="start" value="500"/>
+      <details key="end" value="514"/>
+      <details key="line" value="21"/>
+    </eAnnotations>
+    <eAnnotations source="positions.61" references="/0/generateInternalType">
+      <details key="start" value="878"/>
+      <details key="end" value="949"/>
+      <details key="line" value="35"/>
+    </eAnnotations>
+    <eAnnotations source="positions.62" references="/0/generateInternalType/type">
+      <details key="start" value="916"/>
+      <details key="end" value="935"/>
+      <details key="line" value="35"/>
+    </eAnnotations>
+    <eAnnotations source="positions.63" references="/0/generateInternalType.1">
+      <details key="start" value="951"/>
+      <details key="end" value="1068"/>
+      <details key="line" value="38"/>
+    </eAnnotations>
+    <eAnnotations source="positions.64" references="/0/generateInternalType.1/%">
+      <details key="start" value="1007"/>
+      <details key="end" value="1054"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.65" references="/0/generateInternalType.1/%/struct">
+      <details key="start" value="1028"/>
+      <details key="end" value="1034"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.66" references="/0/generateInternalType.1/%/%">
+      <details key="start" value="1036"/>
+      <details key="end" value="1053"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.67" references="/0/generateInternalType.1/%/%/struct">
+      <details key="start" value="1036"/>
+      <details key="end" value="1042"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.68" references="/0/generateInternalType.1/struct">
+      <details key="start" value="989"/>
+      <details key="end" value="1003"/>
+      <details key="line" value="38"/>
+    </eAnnotations>
+    <eAnnotations source="positions.69" references="/0/generateInternalType.2">
+      <details key="start" value="1070"/>
+      <details key="end" value="1223"/>
+      <details key="line" value="42"/>
+    </eAnnotations>
+    <eAnnotations source="positions.70" references="/0/generateInternalType.2/%">
+      <details key="start" value="1124"/>
+      <details key="end" value="1209"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.71" references="/0/generateInternalType.2/%/class">
+      <details key="start" value="1145"/>
+      <details key="end" value="1150"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.72" references="/0/generateInternalType.2/%/%">
+      <details key="start" value="1152"/>
+      <details key="end" value="1208"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.73" references="/0/generateInternalType.2/%/%/%">
+      <details key="start" value="1152"/>
+      <details key="end" value="1182"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.74" references="/0/generateInternalType.2/%/%/%/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.75" references="/0/generateInternalType.2/%/%/%/%/%/%">
+      <details key="start" value="1152"/>
+      <details key="end" value="1166"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.76" references="/0/generateInternalType.2/%/%/%/%/%/%/class">
+      <details key="start" value="1152"/>
+      <details key="end" value="1157"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.77" references="/0/generateInternalType.2/%/%/%.1">
+      <details key="start" value="1191"/>
+      <details key="end" value="1207"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.78" references="/0/generateInternalType.2/%/%/%.1/class">
+      <details key="start" value="1191"/>
+      <details key="end" value="1196"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.79" references="/0/generateInternalType.2/class">
+      <details key="start" value="1108"/>
+      <details key="end" value="1120"/>
+      <details key="line" value="42"/>
+    </eAnnotations>
+    <eAnnotations source="positions.80" references="/0/generateInternalType.3">
+      <details key="start" value="1225"/>
+      <details key="end" value="1979"/>
+      <details key="line" value="46"/>
+    </eAnnotations>
+    <eAnnotations source="positions.81" references="/0/generateInternalType.3/%">
+      <details key="start" value="1326"/>
+      <details key="end" value="1451"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.82" references="/0/generateInternalType.3/%/%">
+      <details key="start" value="1342"/>
+      <details key="end" value="1367"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.83" references="/0/generateInternalType.3/%/%/containment">
+      <details key="start" value="1342"/>
+      <details key="end" value="1353"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.84" references="/0/generateInternalType.3/%/%.1">
+      <details key="start" value="1369"/>
+      <details key="end" value="1390"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.85" references="/0/generateInternalType.3/%/%.1/containment">
+      <details key="start" value="1369"/>
+      <details key="end" value="1380"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.86" references="/0/generateInternalType.3/%/%.2">
+      <details key="start" value="1392"/>
+      <details key="end" value="1413"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.87" references="/0/generateInternalType.3/%/%.2/containment">
+      <details key="start" value="1392"/>
+      <details key="end" value="1403"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.88" references="/0/generateInternalType.3/%/%.3">
+      <details key="start" value="1415"/>
+      <details key="end" value="1437"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.89" references="/0/generateInternalType.3/%/%.3/containment">
+      <details key="start" value="1415"/>
+      <details key="end" value="1426"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.90" references="/0/generateInternalType.3/%/derivations">
+      <details key="start" value="1439"/>
+      <details key="end" value="1450"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.91" references="/0/generateInternalType.3/%.1">
+      <details key="start" value="1453"/>
+      <details key="end" value="1456"/>
+      <details key="line" value="47"/>
+    </eAnnotations>
+    <eAnnotations source="positions.92" references="/0/generateInternalType.3/%.2">
+      <details key="start" value="1457"/>
+      <details key="end" value="1567"/>
+      <details key="line" value="48"/>
+    </eAnnotations>
+    <eAnnotations source="positions.93" references="/0/generateInternalType.3/%.2/%">
+      <details key="start" value="1533"/>
+      <details key="end" value="1534"/>
+      <details key="line" value="49"/>
+    </eAnnotations>
+    <eAnnotations source="positions.94" references="/0/generateInternalType.3/%.2/%.1">
+      <details key="start" value="1535"/>
+      <details key="end" value="1557"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.95" references="/0/generateInternalType.3/%.2/%.1/member">
+      <details key="start" value="1550"/>
+      <details key="end" value="1556"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.96" references="/0/generateInternalType.3/%.2/%.2">
+      <details key="start" value="1559"/>
+      <details key="end" value="1560"/>
+      <details key="line" value="50"/>
+    </eAnnotations>
+    <eAnnotations source="positions.97" references="/0/generateInternalType.3/%.2/member">
+      <details key="start" value="1463"/>
+      <details key="end" value="1481"/>
+      <details key="line" value="48"/>
+    </eAnnotations>
+    <eAnnotations source="positions.98" references="/0/generateInternalType.3/%.2/%.3">
+      <details key="start" value="1484"/>
+      <details key="end" value="1503"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.99" references="/0/generateInternalType.3/%.2/%.3/containment">
+      <details key="start" value="1484"/>
+      <details key="end" value="1495"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.100" references="/0/generateInternalType.3/%.2/%.4">
+      <details key="start" value="1512"/>
+      <details key="end" value="1530"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.101" references="/0/generateInternalType.3/%.3">
+      <details key="start" value="1569"/>
+      <details key="end" value="1708"/>
+      <details key="line" value="51"/>
+    </eAnnotations>
+    <eAnnotations source="positions.102" references="/0/generateInternalType.3/%.3/%">
+      <details key="start" value="1664"/>
+      <details key="end" value="1665"/>
+      <details key="line" value="52"/>
+    </eAnnotations>
+    <eAnnotations source="positions.103" references="/0/generateInternalType.3/%.3/%.1">
+      <details key="start" value="1666"/>
+      <details key="end" value="1698"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.104" references="/0/generateInternalType.3/%.3/%.1/constructor">
+      <details key="start" value="1686"/>
+      <details key="end" value="1697"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.105" references="/0/generateInternalType.3/%.3/%.2">
+      <details key="start" value="1700"/>
+      <details key="end" value="1701"/>
+      <details key="line" value="53"/>
+    </eAnnotations>
+    <eAnnotations source="positions.106" references="/0/generateInternalType.3/%.3/constructor">
+      <details key="start" value="1575"/>
+      <details key="end" value="1602"/>
+      <details key="line" value="51"/>
+    </eAnnotations>
+    <eAnnotations source="positions.107" references="/0/generateInternalType.3/%.3/%.3">
+      <details key="start" value="1605"/>
+      <details key="end" value="1629"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.108" references="/0/generateInternalType.3/%.3/%.3/containment">
+      <details key="start" value="1605"/>
+      <details key="end" value="1616"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.109" references="/0/generateInternalType.3/%.3/%.4">
+      <details key="start" value="1638"/>
+      <details key="end" value="1661"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.110" references="/0/generateInternalType.3/%.4">
+      <details key="start" value="1710"/>
+      <details key="end" value="1836"/>
+      <details key="line" value="54"/>
+    </eAnnotations>
+    <eAnnotations source="positions.111" references="/0/generateInternalType.3/%.4/%">
+      <details key="start" value="1802"/>
+      <details key="end" value="1803"/>
+      <details key="line" value="55"/>
+    </eAnnotations>
+    <eAnnotations source="positions.112" references="/0/generateInternalType.3/%.4/%.1">
+      <details key="start" value="1804"/>
+      <details key="end" value="1826"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.113" references="/0/generateInternalType.3/%.4/%.1/method">
+      <details key="start" value="1819"/>
+      <details key="end" value="1825"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.114" references="/0/generateInternalType.3/%.4/%.2">
+      <details key="start" value="1828"/>
+      <details key="end" value="1829"/>
+      <details key="line" value="56"/>
+    </eAnnotations>
+    <eAnnotations source="positions.115" references="/0/generateInternalType.3/%.4/method">
+      <details key="start" value="1716"/>
+      <details key="end" value="1734"/>
+      <details key="line" value="54"/>
+    </eAnnotations>
+    <eAnnotations source="positions.116" references="/0/generateInternalType.3/%.4/%.3">
+      <details key="start" value="1737"/>
+      <details key="end" value="1756"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.117" references="/0/generateInternalType.3/%.4/%.3/containment">
+      <details key="start" value="1737"/>
+      <details key="end" value="1748"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.118" references="/0/generateInternalType.3/%.4/%.4">
+      <details key="start" value="1765"/>
+      <details key="end" value="1783"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.119" references="/0/generateInternalType.3/%.4/%.5">
+      <details key="start" value="1795"/>
+      <details key="end" value="1799"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.120" references="/0/generateInternalType.3/%.5">
+      <details key="start" value="1838"/>
+      <details key="end" value="1964"/>
+      <details key="line" value="57"/>
+    </eAnnotations>
+    <eAnnotations source="positions.121" references="/0/generateInternalType.3/%.5/%">
+      <details key="start" value="1923"/>
+      <details key="end" value="1924"/>
+      <details key="line" value="58"/>
+    </eAnnotations>
+    <eAnnotations source="positions.122" references="/0/generateInternalType.3/%.5/%.1">
+      <details key="start" value="1925"/>
+      <details key="end" value="1954"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.123" references="/0/generateInternalType.3/%.5/%.1/typeDef">
+      <details key="start" value="1946"/>
+      <details key="end" value="1953"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.124" references="/0/generateInternalType.3/%.5/%.2">
+      <details key="start" value="1956"/>
+      <details key="end" value="1957"/>
+      <details key="line" value="59"/>
+    </eAnnotations>
+    <eAnnotations source="positions.125" references="/0/generateInternalType.3/%.5/typeDef">
+      <details key="start" value="1844"/>
+      <details key="end" value="1866"/>
+      <details key="line" value="57"/>
+    </eAnnotations>
+    <eAnnotations source="positions.126" references="/0/generateInternalType.3/%.5/%.3">
+      <details key="start" value="1869"/>
+      <details key="end" value="1889"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.127" references="/0/generateInternalType.3/%.5/%.3/containment">
+      <details key="start" value="1869"/>
+      <details key="end" value="1880"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.128" references="/0/generateInternalType.3/%.5/%.4">
+      <details key="start" value="1898"/>
+      <details key="end" value="1920"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.129" references="/0/generateInternalType.3/%.6">
+      <details key="start" value="1965"/>
+      <details key="end" value="1967"/>
+      <details key="line" value="60"/>
+    </eAnnotations>
+    <eAnnotations source="positions.130" references="/0/generateInternalType.3/containment">
+      <details key="start" value="1263"/>
+      <details key="end" value="1288"/>
+      <details key="line" value="46"/>
+    </eAnnotations>
+    <eAnnotations source="positions.131" references="/0/generateInternalType.3/derivations">
+      <details key="start" value="1290"/>
+      <details key="end" value="1322"/>
+      <details key="line" value="46"/>
+    </eAnnotations>
+    <eAnnotations source="positions.132" references="/0/generateInternalType.4">
+      <details key="start" value="1981"/>
+      <details key="end" value="2430"/>
+      <details key="line" value="64"/>
+    </eAnnotations>
+    <eAnnotations source="positions.133" references="/0/generateInternalType.4/%">
+      <details key="start" value="2044"/>
+      <details key="end" value="2162"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.134" references="/0/generateInternalType.4/%/%">
+      <details key="start" value="2060"/>
+      <details key="end" value="2083"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.135" references="/0/generateInternalType.4/%/%/interface">
+      <details key="start" value="2060"/>
+      <details key="end" value="2069"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.136" references="/0/generateInternalType.4/%/%.1">
+      <details key="start" value="2085"/>
+      <details key="end" value="2104"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.137" references="/0/generateInternalType.4/%/%.1/interface">
+      <details key="start" value="2085"/>
+      <details key="end" value="2094"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.138" references="/0/generateInternalType.4/%/%.2">
+      <details key="start" value="2106"/>
+      <details key="end" value="2125"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.139" references="/0/generateInternalType.4/%/%.2/interface">
+      <details key="start" value="2106"/>
+      <details key="end" value="2115"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.140" references="/0/generateInternalType.4/%/%.3">
+      <details key="start" value="2127"/>
+      <details key="end" value="2147"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.141" references="/0/generateInternalType.4/%/%.3/interface">
+      <details key="start" value="2127"/>
+      <details key="end" value="2136"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.142" references="/0/generateInternalType.4/%/%.4">
+      <details key="start" value="2149"/>
+      <details key="end" value="2161"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.143" references="/0/generateInternalType.4/%.1">
+      <details key="start" value="2164"/>
+      <details key="end" value="2167"/>
+      <details key="line" value="65"/>
+    </eAnnotations>
+    <eAnnotations source="positions.144" references="/0/generateInternalType.4/%.2">
+      <details key="start" value="2168"/>
+      <details key="end" value="2416"/>
+      <details key="line" value="66"/>
+    </eAnnotations>
+    <eAnnotations source="positions.145" references="/0/generateInternalType.4/%.2/%">
+      <details key="start" value="2250"/>
+      <details key="end" value="2251"/>
+      <details key="line" value="67"/>
+    </eAnnotations>
+    <eAnnotations source="positions.146" references="/0/generateInternalType.4/%.2/%.1">
+      <details key="start" value="2252"/>
+      <details key="end" value="2280"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.147" references="/0/generateInternalType.4/%.2/%.1/%">
+      <details key="start" value="2259"/>
+      <details key="end" value="2279"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.148" references="/0/generateInternalType.4/%.2/%.1/%/method">
+      <details key="start" value="2259"/>
+      <details key="end" value="2265"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.149" references="/0/generateInternalType.4/%.2/%.2">
+      <details key="start" value="2282"/>
+      <details key="end" value="2283"/>
+      <details key="line" value="67"/>
+    </eAnnotations>
+    <eAnnotations source="positions.150" references="/0/generateInternalType.4/%.2/%.3">
+      <details key="start" value="2284"/>
+      <details key="end" value="2306"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.151" references="/0/generateInternalType.4/%.2/%.3/%">
+      <details key="start" value="2289"/>
+      <details key="end" value="2305"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.152" references="/0/generateInternalType.4/%.2/%.3/%/method">
+      <details key="start" value="2289"/>
+      <details key="end" value="2295"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.153" references="/0/generateInternalType.4/%.2/%.4">
+      <details key="start" value="2308"/>
+      <details key="end" value="2309"/>
+      <details key="line" value="67"/>
+    </eAnnotations>
+    <eAnnotations source="positions.154" references="/0/generateInternalType.4/%.2/%.5">
+      <details key="start" value="2310"/>
+      <details key="end" value="2346"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.155" references="/0/generateInternalType.4/%.2/%.5/%">
+      <details key="start" value="2310"/>
+      <details key="end" value="2327"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.156" references="/0/generateInternalType.4/%.2/%.5/%/method">
+      <details key="start" value="2310"/>
+      <details key="end" value="2316"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.157" references="/0/generateInternalType.4/%.2/%.6">
+      <details key="start" value="2348"/>
+      <details key="end" value="2349"/>
+      <details key="line" value="67"/>
+    </eAnnotations>
+    <eAnnotations source="positions.158" references="/0/generateInternalType.4/%.2/%.7">
+      <details key="start" value="2350"/>
+      <details key="end" value="2367"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.159" references="/0/generateInternalType.4/%.2/%.7/method">
+      <details key="start" value="2350"/>
+      <details key="end" value="2356"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.160" references="/0/generateInternalType.4/%.2/%.8">
+      <details key="start" value="2369"/>
+      <details key="end" value="2370"/>
+      <details key="line" value="67"/>
+    </eAnnotations>
+    <eAnnotations source="positions.161" references="/0/generateInternalType.4/%.2/%.9">
+      <details key="start" value="2371"/>
+      <details key="end" value="2404"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.162" references="/0/generateInternalType.4/%.2/%.9/%">
+      <details key="start" value="2386"/>
+      <details key="end" value="2403"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.163" references="/0/generateInternalType.4/%.2/%.9/%/method">
+      <details key="start" value="2386"/>
+      <details key="end" value="2392"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.164" references="/0/generateInternalType.4/%.2/%.10">
+      <details key="start" value="2406"/>
+      <details key="end" value="2409"/>
+      <details key="line" value="67"/>
+    </eAnnotations>
+    <eAnnotations source="positions.165" references="/0/generateInternalType.4/%.2/method">
+      <details key="start" value="2174"/>
+      <details key="end" value="2192"/>
+      <details key="line" value="66"/>
+    </eAnnotations>
+    <eAnnotations source="positions.166" references="/0/generateInternalType.4/%.2/%.11">
+      <details key="start" value="2195"/>
+      <details key="end" value="2212"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.167" references="/0/generateInternalType.4/%.2/%.11/interface">
+      <details key="start" value="2195"/>
+      <details key="end" value="2204"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.168" references="/0/generateInternalType.4/%.2/%.12">
+      <details key="start" value="2221"/>
+      <details key="end" value="2247"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.169" references="/0/generateInternalType.4/%.3">
+      <details key="start" value="2417"/>
+      <details key="end" value="2418"/>
+      <details key="line" value="69"/>
+    </eAnnotations>
+    <eAnnotations source="positions.170" references="/0/generateInternalType.4/interface">
+      <details key="start" value="2019"/>
+      <details key="end" value="2040"/>
+      <details key="line" value="64"/>
+    </eAnnotations>
+    <eAnnotations source="positions.171" references="/0/generateInternalType.5">
+      <details key="start" value="2432"/>
+      <details key="end" value="2662"/>
+      <details key="line" value="72"/>
+    </eAnnotations>
+    <eAnnotations source="positions.172" references="/0/generateInternalType.5/%">
+      <details key="start" value="2493"/>
+      <details key="end" value="2607"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.173" references="/0/generateInternalType.5/%/%">
+      <details key="start" value="2509"/>
+      <details key="end" value="2531"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.174" references="/0/generateInternalType.5/%/%/delegate">
+      <details key="start" value="2509"/>
+      <details key="end" value="2517"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.175" references="/0/generateInternalType.5/%/%.1">
+      <details key="start" value="2533"/>
+      <details key="end" value="2551"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.176" references="/0/generateInternalType.5/%/%.1/delegate">
+      <details key="start" value="2533"/>
+      <details key="end" value="2541"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.177" references="/0/generateInternalType.5/%/%.2">
+      <details key="start" value="2553"/>
+      <details key="end" value="2571"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.178" references="/0/generateInternalType.5/%/%.2/delegate">
+      <details key="start" value="2553"/>
+      <details key="end" value="2561"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.179" references="/0/generateInternalType.5/%/%.3">
+      <details key="start" value="2573"/>
+      <details key="end" value="2592"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.180" references="/0/generateInternalType.5/%/%.3/delegate">
+      <details key="start" value="2573"/>
+      <details key="end" value="2581"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.181" references="/0/generateInternalType.5/%/%.4">
+      <details key="start" value="2594"/>
+      <details key="end" value="2606"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.182" references="/0/generateInternalType.5/%.1">
+      <details key="start" value="2609"/>
+      <details key="end" value="2610"/>
+      <details key="line" value="73"/>
+    </eAnnotations>
+    <eAnnotations source="positions.183" references="/0/generateInternalType.5/%.2">
+      <details key="start" value="2611"/>
+      <details key="end" value="2646"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.184" references="/0/generateInternalType.5/%.2/%">
+      <details key="start" value="2626"/>
+      <details key="end" value="2645"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.185" references="/0/generateInternalType.5/%.2/%/delegate">
+      <details key="start" value="2626"/>
+      <details key="end" value="2634"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.186" references="/0/generateInternalType.5/%.3">
+      <details key="start" value="2648"/>
+      <details key="end" value="2650"/>
+      <details key="line" value="73"/>
+    </eAnnotations>
+    <eAnnotations source="positions.187" references="/0/generateInternalType.5/delegate">
+      <details key="start" value="2470"/>
+      <details key="end" value="2489"/>
+      <details key="line" value="72"/>
+    </eAnnotations>
+    <eAnnotations source="positions.188" references="/0/generateInternalType.6">
+      <details key="start" value="2664"/>
+      <details key="end" value="3031"/>
+      <details key="line" value="76"/>
+    </eAnnotations>
+    <eAnnotations source="positions.189" references="/0/generateInternalType.6/%">
+      <details key="start" value="2717"/>
+      <details key="end" value="2815"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.190" references="/0/generateInternalType.6/%/%">
+      <details key="start" value="2733"/>
+      <details key="end" value="2751"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.191" references="/0/generateInternalType.6/%/%/enum">
+      <details key="start" value="2733"/>
+      <details key="end" value="2737"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.192" references="/0/generateInternalType.6/%/%.1">
+      <details key="start" value="2753"/>
+      <details key="end" value="2767"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.193" references="/0/generateInternalType.6/%/%.1/enum">
+      <details key="start" value="2753"/>
+      <details key="end" value="2757"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.194" references="/0/generateInternalType.6/%/%.2">
+      <details key="start" value="2769"/>
+      <details key="end" value="2783"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.195" references="/0/generateInternalType.6/%/%.2/enum">
+      <details key="start" value="2769"/>
+      <details key="end" value="2773"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.196" references="/0/generateInternalType.6/%/%.3">
+      <details key="start" value="2785"/>
+      <details key="end" value="2800"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.197" references="/0/generateInternalType.6/%/%.3/enum">
+      <details key="start" value="2785"/>
+      <details key="end" value="2789"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.198" references="/0/generateInternalType.6/%/%.4">
+      <details key="start" value="2802"/>
+      <details key="end" value="2814"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.199" references="/0/generateInternalType.6/%.1">
+      <details key="start" value="2817"/>
+      <details key="end" value="2885"/>
+      <details key="line" value="77"/>
+    </eAnnotations>
+    <eAnnotations source="positions.200" references="/0/generateInternalType.6/%.1/%">
+      <details key="start" value="2854"/>
+      <details key="end" value="2857"/>
+      <details key="line" value="77"/>
+    </eAnnotations>
+    <eAnnotations source="positions.201" references="/0/generateInternalType.6/%.1/%.1">
+      <details key="start" value="2858"/>
+      <details key="end" value="2878"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.202" references="/0/generateInternalType.6/%.1/%.1/%">
+      <details key="start" value="2858"/>
+      <details key="end" value="2867"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.203" references="/0/generateInternalType.6/%.1/%.1/%/enum">
+      <details key="start" value="2858"/>
+      <details key="end" value="2862"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.204" references="/0/generateInternalType.6/%.1/%.2">
+      <details key="start" value="2821"/>
+      <details key="end" value="2853"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.205" references="/0/generateInternalType.6/%.1/%.2/%">
+      <details key="start" value="2821"/>
+      <details key="end" value="2830"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.206" references="/0/generateInternalType.6/%.1/%.2/%/enum">
+      <details key="start" value="2821"/>
+      <details key="end" value="2825"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.207" references="/0/generateInternalType.6/%.1/%.2/%.1">
+      <details key="start" value="2834"/>
+      <details key="end" value="2853"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.208" references="/0/generateInternalType.6/%.2">
+      <details key="start" value="2885"/>
+      <details key="end" value="2889"/>
+      <details key="line" value="77"/>
+    </eAnnotations>
+    <eAnnotations source="positions.209" references="/0/generateInternalType.6/%.3">
+      <details key="start" value="2889"/>
+      <details key="end" value="3017"/>
+      <details key="line" value="78"/>
+    </eAnnotations>
+    <eAnnotations source="positions.210" references="/0/generateInternalType.6/%.3/%">
+      <details key="start" value="2946"/>
+      <details key="end" value="2964"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.211" references="/0/generateInternalType.6/%.3/%/literal">
+      <details key="start" value="2946"/>
+      <details key="end" value="2953"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.212" references="/0/generateInternalType.6/%.3/%.1">
+      <details key="start" value="2966"/>
+      <details key="end" value="3011"/>
+      <details key="line" value="78"/>
+    </eAnnotations>
+    <eAnnotations source="positions.213" references="/0/generateInternalType.6/%.3/%.1/%">
+      <details key="start" value="2987"/>
+      <details key="end" value="2990"/>
+      <details key="line" value="78"/>
+    </eAnnotations>
+    <eAnnotations source="positions.214" references="/0/generateInternalType.6/%.3/%.1/%.1">
+      <details key="start" value="2991"/>
+      <details key="end" value="3004"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.215" references="/0/generateInternalType.6/%.3/%.1/%.1/literal">
+      <details key="start" value="2991"/>
+      <details key="end" value="2998"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.216" references="/0/generateInternalType.6/%.3/%.1/%.2">
+      <details key="start" value="2970"/>
+      <details key="end" value="2986"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.217" references="/0/generateInternalType.6/%.3/%.1/%.2/literal">
+      <details key="start" value="2970"/>
+      <details key="end" value="2977"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.218" references="/0/generateInternalType.6/%.3/literal">
+      <details key="start" value="2895"/>
+      <details key="end" value="2911"/>
+      <details key="line" value="78"/>
+    </eAnnotations>
+    <eAnnotations source="positions.219" references="/0/generateInternalType.6/%.3/%.2">
+      <details key="start" value="2914"/>
+      <details key="end" value="2927"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.220" references="/0/generateInternalType.6/%.3/%.2/enum">
+      <details key="start" value="2914"/>
+      <details key="end" value="2918"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.221" references="/0/generateInternalType.6/%.3/%.3">
+      <details key="start" value="2939"/>
+      <details key="end" value="2943"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.222" references="/0/generateInternalType.6/%.4">
+      <details key="start" value="3017"/>
+      <details key="end" value="3019"/>
+      <details key="line" value="79"/>
+    </eAnnotations>
+    <eAnnotations source="positions.223" references="/0/generateInternalType.6/enum">
+      <details key="start" value="2702"/>
+      <details key="end" value="2713"/>
+      <details key="line" value="76"/>
+    </eAnnotations>
+    <eAnnotations source="positions.224" references="/0/generateTypeDef">
+      <details key="start" value="3033"/>
+      <details key="end" value="3344"/>
+      <details key="line" value="82"/>
+    </eAnnotations>
+    <eAnnotations source="positions.225" references="/0/generateTypeDef/%">
+      <details key="start" value="3168"/>
+      <details key="end" value="3182"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.226" references="/0/generateTypeDef/%/access">
+      <details key="start" value="3175"/>
+      <details key="end" value="3181"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.227" references="/0/generateTypeDef/%.1">
+      <details key="start" value="3184"/>
+      <details key="end" value="3185"/>
+      <details key="line" value="83"/>
+    </eAnnotations>
+    <eAnnotations source="positions.228" references="/0/generateTypeDef/%.2">
+      <details key="start" value="3186"/>
+      <details key="end" value="3196"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.229" references="/0/generateTypeDef/%.2/spec">
+      <details key="start" value="3191"/>
+      <details key="end" value="3195"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.230" references="/0/generateTypeDef/%.3">
+      <details key="start" value="3198"/>
+      <details key="end" value="3199"/>
+      <details key="line" value="83"/>
+    </eAnnotations>
+    <eAnnotations source="positions.231" references="/0/generateTypeDef/%.4">
+      <details key="start" value="3200"/>
+      <details key="end" value="3215"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.232" references="/0/generateTypeDef/%.4/type">
+      <details key="start" value="3200"/>
+      <details key="end" value="3204"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.233" references="/0/generateTypeDef/%.5">
+      <details key="start" value="3217"/>
+      <details key="end" value="3218"/>
+      <details key="line" value="83"/>
+    </eAnnotations>
+    <eAnnotations source="positions.234" references="/0/generateTypeDef/id">
+      <details key="start" value="3219"/>
+      <details key="end" value="3221"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.235" references="/0/generateTypeDef/%.6">
+      <details key="start" value="3223"/>
+      <details key="end" value="3332"/>
+      <details key="line" value="83"/>
+    </eAnnotations>
+    <eAnnotations source="positions.236" references="/0/generateTypeDef/%.6/%">
+      <details key="start" value="3295"/>
+      <details key="end" value="3324"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.237" references="/0/generateTypeDef/%.6/%/derivation">
+      <details key="start" value="3295"/>
+      <details key="end" value="3305"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.238" references="/0/generateTypeDef/%.6/derivation">
+      <details key="start" value="3229"/>
+      <details key="end" value="3248"/>
+      <details key="line" value="83"/>
+    </eAnnotations>
+    <eAnnotations source="positions.239" references="/0/generateTypeDef/%.6/derivations">
+      <details key="start" value="3251"/>
+      <details key="end" value="3262"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.240" references="/0/generateTypeDef/%.6/%.1">
+      <details key="start" value="3271"/>
+      <details key="end" value="3276"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.241" references="/0/generateTypeDef/%.6/%.2">
+      <details key="start" value="3288"/>
+      <details key="end" value="3292"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.242" references="/0/generateTypeDef/access">
+      <details key="start" value="3066"/>
+      <details key="end" value="3088"/>
+      <details key="line" value="82"/>
+    </eAnnotations>
+    <eAnnotations source="positions.243" references="/0/generateTypeDef/spec">
+      <details key="start" value="3090"/>
+      <details key="end" value="3105"/>
+      <details key="line" value="82"/>
+    </eAnnotations>
+    <eAnnotations source="positions.244" references="/0/generateTypeDef/type">
+      <details key="start" value="3107"/>
+      <details key="end" value="3118"/>
+      <details key="line" value="82"/>
+    </eAnnotations>
+    <eAnnotations source="positions.245" references="/0/generateTypeDef/id.1">
+      <details key="start" value="3120"/>
+      <details key="end" value="3130"/>
+      <details key="line" value="82"/>
+    </eAnnotations>
+    <eAnnotations source="positions.246" references="/0/generateTypeDef/derivations">
+      <details key="start" value="3132"/>
+      <details key="end" value="3164"/>
+      <details key="line" value="82"/>
+    </eAnnotations>
+    <eAnnotations source="positions.247" references="/0/generateMember">
+      <details key="start" value="3346"/>
+      <details key="end" value="3523"/>
+      <details key="line" value="86"/>
+    </eAnnotations>
+    <eAnnotations source="positions.248" references="/0/generateMember/%">
+      <details key="start" value="3399"/>
+      <details key="end" value="3427"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.249" references="/0/generateMember/%/%">
+      <details key="start" value="3406"/>
+      <details key="end" value="3426"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.250" references="/0/generateMember/%/%/member">
+      <details key="start" value="3406"/>
+      <details key="end" value="3412"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.251" references="/0/generateMember/%.1">
+      <details key="start" value="3429"/>
+      <details key="end" value="3430"/>
+      <details key="line" value="87"/>
+    </eAnnotations>
+    <eAnnotations source="positions.252" references="/0/generateMember/%.2">
+      <details key="start" value="3431"/>
+      <details key="end" value="3453"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.253" references="/0/generateMember/%.2/%">
+      <details key="start" value="3436"/>
+      <details key="end" value="3452"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.254" references="/0/generateMember/%.2/%/member">
+      <details key="start" value="3436"/>
+      <details key="end" value="3442"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.255" references="/0/generateMember/%.3">
+      <details key="start" value="3455"/>
+      <details key="end" value="3456"/>
+      <details key="line" value="87"/>
+    </eAnnotations>
+    <eAnnotations source="positions.256" references="/0/generateMember/%.4">
+      <details key="start" value="3457"/>
+      <details key="end" value="3487"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.257" references="/0/generateMember/%.4/%">
+      <details key="start" value="3457"/>
+      <details key="end" value="3468"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.258" references="/0/generateMember/%.4/%/member">
+      <details key="start" value="3457"/>
+      <details key="end" value="3463"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.259" references="/0/generateMember/%.5">
+      <details key="start" value="3489"/>
+      <details key="end" value="3490"/>
+      <details key="line" value="87"/>
+    </eAnnotations>
+    <eAnnotations source="positions.260" references="/0/generateMember/%.6">
+      <details key="start" value="3491"/>
+      <details key="end" value="3508"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.261" references="/0/generateMember/%.6/member">
+      <details key="start" value="3491"/>
+      <details key="end" value="3497"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.262" references="/0/generateMember/%.7">
+      <details key="start" value="3510"/>
+      <details key="end" value="3511"/>
+      <details key="line" value="87"/>
+    </eAnnotations>
+    <eAnnotations source="positions.263" references="/0/generateMember/member">
+      <details key="start" value="3378"/>
+      <details key="end" value="3395"/>
+      <details key="line" value="86"/>
+    </eAnnotations>
+    <eAnnotations source="positions.264" references="/0/generateConstructor">
+      <details key="start" value="3525"/>
+      <details key="end" value="3880"/>
+      <details key="line" value="90"/>
+    </eAnnotations>
+    <eAnnotations source="positions.265" references="/0/generateConstructor/%">
+      <details key="start" value="3593"/>
+      <details key="end" value="3734"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.266" references="/0/generateConstructor/%/%">
+      <details key="start" value="3610"/>
+      <details key="end" value="3635"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.267" references="/0/generateConstructor/%/%/constructor">
+      <details key="start" value="3610"/>
+      <details key="end" value="3621"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.268" references="/0/generateConstructor/%/%.1">
+      <details key="start" value="3637"/>
+      <details key="end" value="3658"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.269" references="/0/generateConstructor/%/%.1/constructor">
+      <details key="start" value="3637"/>
+      <details key="end" value="3648"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.270" references="/0/generateConstructor/%/%.2">
+      <details key="start" value="3660"/>
+      <details key="end" value="3671"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.271" references="/0/generateConstructor/%/%.3">
+      <details key="start" value="3673"/>
+      <details key="end" value="3690"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.272" references="/0/generateConstructor/%/%.4">
+      <details key="start" value="3692"/>
+      <details key="end" value="3714"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.273" references="/0/generateConstructor/%/%.4/constructor">
+      <details key="start" value="3692"/>
+      <details key="end" value="3703"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.274" references="/0/generateConstructor/%/%.5">
+      <details key="start" value="3716"/>
+      <details key="end" value="3733"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.275" references="/0/generateConstructor/%/%.5/constructor">
+      <details key="start" value="3716"/>
+      <details key="end" value="3727"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.276" references="/0/generateConstructor/%.1">
+      <details key="start" value="3736"/>
+      <details key="end" value="3737"/>
+      <details key="line" value="92"/>
+    </eAnnotations>
+    <eAnnotations source="positions.277" references="/0/generateConstructor/%.2">
+      <details key="start" value="3738"/>
+      <details key="end" value="3765"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.278" references="/0/generateConstructor/%.2/%">
+      <details key="start" value="3743"/>
+      <details key="end" value="3764"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.279" references="/0/generateConstructor/%.2/%/constructor">
+      <details key="start" value="3743"/>
+      <details key="end" value="3754"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.280" references="/0/generateConstructor/%.3">
+      <details key="start" value="3767"/>
+      <details key="end" value="3768"/>
+      <details key="line" value="92"/>
+    </eAnnotations>
+    <eAnnotations source="positions.281" references="/0/generateConstructor/%.4">
+      <details key="start" value="3769"/>
+      <details key="end" value="3802"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.282" references="/0/generateConstructor/%.4/%">
+      <details key="start" value="3776"/>
+      <details key="end" value="3801"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.283" references="/0/generateConstructor/%.4/%/constructor">
+      <details key="start" value="3776"/>
+      <details key="end" value="3787"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.284" references="/0/generateConstructor/%.5">
+      <details key="start" value="3804"/>
+      <details key="end" value="3807"/>
+      <details key="line" value="92"/>
+    </eAnnotations>
+    <eAnnotations source="positions.285" references="/0/generateConstructor/%.6">
+      <details key="start" value="3808"/>
+      <details key="end" value="3866"/>
+      <details key="line" value="93"/>
+    </eAnnotations>
+    <eAnnotations source="positions.286" references="/0/generateConstructor/%.6/%">
+      <details key="start" value="3850"/>
+      <details key="end" value="3851"/>
+      <details key="line" value="94"/>
+    </eAnnotations>
+    <eAnnotations source="positions.287" references="/0/generateConstructor/%.6/stat">
+      <details key="start" value="3852"/>
+      <details key="end" value="3856"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.288" references="/0/generateConstructor/%.6/%.1">
+      <details key="start" value="3858"/>
+      <details key="end" value="3859"/>
+      <details key="line" value="95"/>
+    </eAnnotations>
+    <eAnnotations source="positions.289" references="/0/generateConstructor/%.6/stat.1">
+      <details key="start" value="3814"/>
+      <details key="end" value="3827"/>
+      <details key="line" value="93"/>
+    </eAnnotations>
+    <eAnnotations source="positions.290" references="/0/generateConstructor/%.6/%.2">
+      <details key="start" value="3830"/>
+      <details key="end" value="3847"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.291" references="/0/generateConstructor/%.6/%.2/constructor">
+      <details key="start" value="3830"/>
+      <details key="end" value="3841"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.292" references="/0/generateConstructor/%.7">
+      <details key="start" value="3867"/>
+      <details key="end" value="3868"/>
+      <details key="line" value="96"/>
+    </eAnnotations>
+    <eAnnotations source="positions.293" references="/0/generateConstructor/constructor">
+      <details key="start" value="3562"/>
+      <details key="end" value="3589"/>
+      <details key="line" value="90"/>
+    </eAnnotations>
+    <eAnnotations source="positions.294" references="/0/generateMethod">
+      <details key="start" value="3882"/>
+      <details key="end" value="4095"/>
+      <details key="line" value="99"/>
+    </eAnnotations>
+    <eAnnotations source="positions.295" references="/0/generateMethod/%">
+      <details key="start" value="3935"/>
+      <details key="end" value="4081"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.296" references="/0/generateMethod/%/%">
+      <details key="start" value="3952"/>
+      <details key="end" value="3972"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.297" references="/0/generateMethod/%/%/method">
+      <details key="start" value="3952"/>
+      <details key="end" value="3958"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.298" references="/0/generateMethod/%/%.1">
+      <details key="start" value="3974"/>
+      <details key="end" value="3990"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.299" references="/0/generateMethod/%/%.1/method">
+      <details key="start" value="3974"/>
+      <details key="end" value="3980"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.300" references="/0/generateMethod/%/%.2">
+      <details key="start" value="3992"/>
+      <details key="end" value="4028"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.301" references="/0/generateMethod/%/%.2/%">
+      <details key="start" value="3992"/>
+      <details key="end" value="4009"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.302" references="/0/generateMethod/%/%.2/%/method">
+      <details key="start" value="3992"/>
+      <details key="end" value="3998"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.303" references="/0/generateMethod/%/%.3">
+      <details key="start" value="4030"/>
+      <details key="end" value="4047"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.304" references="/0/generateMethod/%/%.3/method">
+      <details key="start" value="4030"/>
+      <details key="end" value="4036"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.305" references="/0/generateMethod/%/%.4">
+      <details key="start" value="4049"/>
+      <details key="end" value="4066"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.306" references="/0/generateMethod/%/%.4/method">
+      <details key="start" value="4049"/>
+      <details key="end" value="4055"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.307" references="/0/generateMethod/%/%.5">
+      <details key="start" value="4068"/>
+      <details key="end" value="4080"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.308" references="/0/generateMethod/%/%.5/method">
+      <details key="start" value="4068"/>
+      <details key="end" value="4074"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.309" references="/0/generateMethod/method">
+      <details key="start" value="3914"/>
+      <details key="end" value="3931"/>
+      <details key="line" value="99"/>
+    </eAnnotations>
+    <eAnnotations source="positions.310" references="/0/generateFunction">
+      <details key="start" value="4097"/>
+      <details key="end" value="4421"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.311" references="/0/generateFunction/%">
+      <details key="start" value="4272"/>
+      <details key="end" value="4286"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.312" references="/0/generateFunction/%/access">
+      <details key="start" value="4279"/>
+      <details key="end" value="4285"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.313" references="/0/generateFunction/%.1">
+      <details key="start" value="4288"/>
+      <details key="end" value="4289"/>
+      <details key="line" value="104"/>
+    </eAnnotations>
+    <eAnnotations source="positions.314" references="/0/generateFunction/%.2">
+      <details key="start" value="4290"/>
+      <details key="end" value="4300"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.315" references="/0/generateFunction/%.2/spec">
+      <details key="start" value="4295"/>
+      <details key="end" value="4299"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.316" references="/0/generateFunction/%.3">
+      <details key="start" value="4302"/>
+      <details key="end" value="4303"/>
+      <details key="line" value="104"/>
+    </eAnnotations>
+    <eAnnotations source="positions.317" references="/0/generateFunction/returnType">
+      <details key="start" value="4304"/>
+      <details key="end" value="4314"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.318" references="/0/generateFunction/%.4">
+      <details key="start" value="4316"/>
+      <details key="end" value="4317"/>
+      <details key="line" value="104"/>
+    </eAnnotations>
+    <eAnnotations source="positions.319" references="/0/generateFunction/identifier">
+      <details key="start" value="4318"/>
+      <details key="end" value="4328"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.320" references="/0/generateFunction/%.5">
+      <details key="start" value="4330"/>
+      <details key="end" value="4331"/>
+      <details key="line" value="104"/>
+    </eAnnotations>
+    <eAnnotations source="positions.321" references="/0/generateFunction/%.6">
+      <details key="start" value="4332"/>
+      <details key="end" value="4354"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.322" references="/0/generateFunction/%.6/params">
+      <details key="start" value="4347"/>
+      <details key="end" value="4353"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.323" references="/0/generateFunction/%.7">
+      <details key="start" value="4356"/>
+      <details key="end" value="4360"/>
+      <details key="line" value="104"/>
+    </eAnnotations>
+    <eAnnotations source="positions.324" references="/0/generateFunction/%.8">
+      <details key="start" value="4361"/>
+      <details key="end" value="4407"/>
+      <details key="line" value="105"/>
+    </eAnnotations>
+    <eAnnotations source="positions.325" references="/0/generateFunction/%.8/%">
+      <details key="start" value="4391"/>
+      <details key="end" value="4392"/>
+      <details key="line" value="106"/>
+    </eAnnotations>
+    <eAnnotations source="positions.326" references="/0/generateFunction/%.8/stat">
+      <details key="start" value="4393"/>
+      <details key="end" value="4397"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.327" references="/0/generateFunction/%.8/%.1">
+      <details key="start" value="4399"/>
+      <details key="end" value="4400"/>
+      <details key="line" value="107"/>
+    </eAnnotations>
+    <eAnnotations source="positions.328" references="/0/generateFunction/%.8/stat.1">
+      <details key="start" value="4367"/>
+      <details key="end" value="4380"/>
+      <details key="line" value="105"/>
+    </eAnnotations>
+    <eAnnotations source="positions.329" references="/0/generateFunction/%.8/_body">
+      <details key="start" value="4383"/>
+      <details key="end" value="4388"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.330" references="/0/generateFunction/%.9">
+      <details key="start" value="4408"/>
+      <details key="end" value="4409"/>
+      <details key="line" value="108"/>
+    </eAnnotations>
+    <eAnnotations source="positions.331" references="/0/generateFunction/access">
+      <details key="start" value="4131"/>
+      <details key="end" value="4153"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.332" references="/0/generateFunction/spec">
+      <details key="start" value="4155"/>
+      <details key="end" value="4170"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.333" references="/0/generateFunction/returnType.1">
+      <details key="start" value="4172"/>
+      <details key="end" value="4190"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.334" references="/0/generateFunction/identifier.1">
+      <details key="start" value="4192"/>
+      <details key="end" value="4210"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.335" references="/0/generateFunction/params">
+      <details key="start" value="4212"/>
+      <details key="end" value="4241"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.336" references="/0/generateFunction/_body">
+      <details key="start" value="4243"/>
+      <details key="end" value="4268"/>
+      <details key="line" value="103"/>
+    </eAnnotations>
+    <eAnnotations source="positions.337" references="/0/generateParams">
+      <details key="start" value="4423"/>
+      <details key="end" value="4633"/>
+      <details key="line" value="111"/>
+    </eAnnotations>
+    <eAnnotations source="positions.338" references="/0/generateParams/%">
+      <details key="start" value="4487"/>
+      <details key="end" value="4621"/>
+      <details key="line" value="112"/>
+    </eAnnotations>
+    <eAnnotations source="positions.339" references="/0/generateParams/%/%">
+      <details key="start" value="4537"/>
+      <details key="end" value="4561"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.340" references="/0/generateParams/%/%/%">
+      <details key="start" value="4545"/>
+      <details key="end" value="4560"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.341" references="/0/generateParams/%/%/%/param">
+      <details key="start" value="4545"/>
+      <details key="end" value="4550"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.342" references="/0/generateParams/%/%.1">
+      <details key="start" value="4564"/>
+      <details key="end" value="4593"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.343" references="/0/generateParams/%/%.1/%">
+      <details key="start" value="4564"/>
+      <details key="end" value="4574"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.344" references="/0/generateParams/%/%.1/%/param">
+      <details key="start" value="4564"/>
+      <details key="end" value="4569"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.345" references="/0/generateParams/%/%.2">
+      <details key="start" value="4595"/>
+      <details key="end" value="4596"/>
+      <details key="line" value="112"/>
+    </eAnnotations>
+    <eAnnotations source="positions.346" references="/0/generateParams/%/%.3">
+      <details key="start" value="4597"/>
+      <details key="end" value="4613"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.347" references="/0/generateParams/%/%.3/param">
+      <details key="start" value="4597"/>
+      <details key="end" value="4602"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.348" references="/0/generateParams/%/param">
+      <details key="start" value="4493"/>
+      <details key="end" value="4509"/>
+      <details key="line" value="112"/>
+    </eAnnotations>
+    <eAnnotations source="positions.349" references="/0/generateParams/%/params">
+      <details key="start" value="4512"/>
+      <details key="end" value="4518"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.350" references="/0/generateParams/%/%.4">
+      <details key="start" value="4530"/>
+      <details key="end" value="4534"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.351" references="/0/generateParams/params">
+      <details key="start" value="4455"/>
+      <details key="end" value="4484"/>
+      <details key="line" value="111"/>
+    </eAnnotations>
+    <eAnnotations source="positions.352" references="/0/spec">
+      <details key="start" value="4635"/>
+      <details key="end" value="4758"/>
+      <details key="line" value="115"/>
+    </eAnnotations>
+    <eAnnotations source="positions.353" references="/0/spec/%">
+      <details key="start" value="4680"/>
+      <details key="end" value="4746"/>
+      <details key="line" value="116"/>
+    </eAnnotations>
+    <eAnnotations source="positions.354" references="/0/spec/%/%">
+      <details key="start" value="4684"/>
+      <details key="end" value="4711"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.355" references="/0/spec/%/%/specifier">
+      <details key="start" value="4684"/>
+      <details key="end" value="4693"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.356" references="/0/spec/%/%/%">
+      <details key="start" value="4696"/>
+      <details key="end" value="4711"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.357" references="/0/spec/%/%.1">
+      <details key="start" value="4712"/>
+      <details key="end" value="4741"/>
+      <details key="line" value="116"/>
+    </eAnnotations>
+    <eAnnotations source="positions.358" references="/0/spec/%/%.1/%">
+      <details key="start" value="4719"/>
+      <details key="end" value="4739"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.359" references="/0/spec/%/%.1/%/specifier">
+      <details key="start" value="4719"/>
+      <details key="end" value="4728"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.360" references="/0/spec/specifier">
+      <details key="start" value="4657"/>
+      <details key="end" value="4677"/>
+      <details key="line" value="115"/>
+    </eAnnotations>
+    <eAnnotations source="positions.361" references="/0/varSpec">
+      <details key="start" value="4760"/>
+      <details key="end" value="4892"/>
+      <details key="line" value="119"/>
+    </eAnnotations>
+    <eAnnotations source="positions.362" references="/0/varSpec/%">
+      <details key="start" value="4811"/>
+      <details key="end" value="4880"/>
+      <details key="line" value="120"/>
+    </eAnnotations>
+    <eAnnotations source="positions.363" references="/0/varSpec/%/%">
+      <details key="start" value="4815"/>
+      <details key="end" value="4845"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.364" references="/0/varSpec/%/%/specifier">
+      <details key="start" value="4815"/>
+      <details key="end" value="4824"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.365" references="/0/varSpec/%/%/%">
+      <details key="start" value="4827"/>
+      <details key="end" value="4845"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.366" references="/0/varSpec/%/%.1">
+      <details key="start" value="4846"/>
+      <details key="end" value="4875"/>
+      <details key="line" value="120"/>
+    </eAnnotations>
+    <eAnnotations source="positions.367" references="/0/varSpec/%/%.1/%">
+      <details key="start" value="4853"/>
+      <details key="end" value="4873"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.368" references="/0/varSpec/%/%.1/%/specifier">
+      <details key="start" value="4853"/>
+      <details key="end" value="4862"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.369" references="/0/varSpec/specifier">
+      <details key="start" value="4785"/>
+      <details key="end" value="4808"/>
+      <details key="line" value="119"/>
+    </eAnnotations>
+    <eAnnotations source="positions.370" references="/0/access">
+      <details key="start" value="4894"/>
+      <details key="end" value="5207"/>
+      <details key="line" value="123"/>
+    </eAnnotations>
+    <eAnnotations source="positions.371" references="/0/access/%">
+      <details key="start" value="4950"/>
+      <details key="end" value="5195"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.372" references="/0/access/%/%">
+      <details key="start" value="4954"/>
+      <details key="end" value="4990"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.373" references="/0/access/%/%/accessability">
+      <details key="start" value="4954"/>
+      <details key="end" value="4967"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.374" references="/0/access/%/%/%">
+      <details key="start" value="4970"/>
+      <details key="end" value="4990"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.375" references="/0/access/%/%.1">
+      <details key="start" value="4991"/>
+      <details key="end" value="5190"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.376" references="/0/access/%/%.1/%">
+      <details key="start" value="4997"/>
+      <details key="end" value="5190"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.377" references="/0/access/%/%.1/%/%">
+      <details key="start" value="5051"/>
+      <details key="end" value="5068"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.378" references="/0/access/%/%.1/%/%.1">
+      <details key="start" value="5001"/>
+      <details key="end" value="5050"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.379" references="/0/access/%/%.1/%/%.1/accessability">
+      <details key="start" value="5001"/>
+      <details key="end" value="5014"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.380" references="/0/access/%/%.1/%/%.1/%">
+      <details key="start" value="5017"/>
+      <details key="end" value="5050"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.381" references="/0/access/%/%.1/%/%.2">
+      <details key="start" value="5068"/>
+      <details key="end" value="5185"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.382" references="/0/access/%/%.1/%/%.2/%">
+      <details key="start" value="5074"/>
+      <details key="end" value="5185"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.383" references="/0/access/%/%.1/%/%.2/%/%">
+      <details key="start" value="5129"/>
+      <details key="end" value="5147"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.384" references="/0/access/%/%.1/%/%.2/%/%.1">
+      <details key="start" value="5078"/>
+      <details key="end" value="5128"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.385" references="/0/access/%/%.1/%/%.2/%/%.1/accessability">
+      <details key="start" value="5078"/>
+      <details key="end" value="5091"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.386" references="/0/access/%/%.1/%/%.2/%/%.1/%">
+      <details key="start" value="5094"/>
+      <details key="end" value="5128"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.387" references="/0/access/%/%.1/%/%.2/%/%.2">
+      <details key="start" value="5147"/>
+      <details key="end" value="5180"/>
+      <details key="line" value="124"/>
+    </eAnnotations>
+    <eAnnotations source="positions.388" references="/0/access/%/%.1/%/%.2/%/%.2/%">
+      <details key="start" value="5154"/>
+      <details key="end" value="5178"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.389" references="/0/access/%/%.1/%/%.2/%/%.2/%/accessability">
+      <details key="start" value="5154"/>
+      <details key="end" value="5167"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.390" references="/0/access/accessability">
+      <details key="start" value="4918"/>
+      <details key="end" value="4947"/>
+      <details key="line" value="123"/>
+    </eAnnotations>
+  </ecore:EAnnotation>
+</xmi:XMI>
diff --git a/projectMDE_acceleo/bin/projectMDE_acceleo/main/generate.mtl b/projectMDE_acceleo/bin/projectMDE_acceleo/main/generate.mtl
new file mode 100644
index 0000000000000000000000000000000000000000..ef24021bc8e5ee6a667a6ccbaaae429e8b22d46c
--- /dev/null
+++ b/projectMDE_acceleo/bin/projectMDE_acceleo/main/generate.mtl
@@ -0,0 +1,134 @@
+[comment encoding = UTF-8 /]
+[module generate('http://www.example.org/cs.ecore')]
+
+[query public fileName(f: File) : String = f.filename.concat('.cs')/] 
+
+[template public generateProgram(program : Program)]
+[comment @main/]
+[for (f: File | program.files)]
+[generateFile(f)/]
+[/for]
+[/template]
+
+[template public generateFile(f : File)]
+[file (fileName(f), false, 'UTF-8')]
+[for (ns: Namespace | f.namespaces)]
+[generateNamespace(ns)/] 
+[/for]
+[/file]
+[/template]
+
+[template public generateNamespace(ns : Namespace)]
+namespace [ns.namespace/] {
+	[for (using: String | ns.using) before('\t// using directives\n')]
+	using [using/];
+	[/for]
+	[for (childNs: Namespace | ns.innerNamespaces)]
+	[generateNamespace(childNs)/]
+	[/for]
+	[for (typeDef: InternalType | ns.typedefs) before('\t// Type definitions\n') separator('\n')]
+	[generateInternalType(typeDef)/]
+	[/for]
+}
+[/template]
+
+[template public generateInternalType(type : InternalType)]
+[/template]
+
+[template public generateInternalType(struct: Struct)]
+[generateInternalType(struct, struct.implements)/]
+[/template]
+
+[template public generateInternalType(class: Class)]
+[generateInternalType(class, class.baseType->asOrderedSet()->addAll(class.implements))/]
+[/template]
+
+[template public generateInternalType(containment : Containment, derivations: OrderedSet(TypeDef))]
+[generateTypeDef(containment.accessability, containment.specifier, containment.getType(), containment.identifier, derivations)/] {
+	[for (member : MemberDef | containment.members) before('\n\t// members\n')]
+	[generateMember(member)/]
+	[/for]
+	[for (constructor: ConstructorDef | containment.constructors) before('\n\t// constructors\n')]
+	[generateConstructor(constructor)/]
+	[/for]
+	[for (method : MethodDef | containment.methods) before('\n\t// methods\n') separator('\n')]
+	[generateMethod(method)/]
+	[/for]
+	[for (typeDef : InternalType | containment.typedefs) before('\n\t// inner types\n')]
+	[generateInternalType(typeDef)/]
+	[/for]
+
+}
+[/template]
+
+[template public generateInternalType(interface : Interface)]
+[generateTypeDef(interface.accessability, interface.specifier, interface.getType(), interface.identifier, OrderedSet{})/] {
+	[for (method : MethodDef | interface.methods) before('\t// interface methods\n')]
+	[access(method.accessability)/] [spec(method.specifier)/] [method.returnType.getQualifiedName()/] [method.identifier/]([generateParams(method.parameters)/]);
+	[/for]
+}
+[/template]
+
+[template public generateInternalType(delegate : Delegate)]
+[generateTypeDef(delegate.accessability, delegate.specifier, delegate.getType(), delegate.identifier, OrderedSet{})/]([generateParams(delegate.parameters)/]);
+[/template]
+
+[template public generateInternalType(enum : Enum)]
+[generateTypeDef(enum.accessability, enum.specifier, enum.getType(), enum.identifier, OrderedSet{})/][if enum.base <> EPrimitiveType::int] : [enum.base.toString()/][/if] {
+	[for (literal: Literal | enum.literals) separator(', ')][literal.identifier/][if literal.useValue] = [literal.value/][/if][/for]
+}
+[/template]
+
+[template public generateTypeDef(access: AccessModifier, spec: Specifier, type: EType, id: String, derivations: OrderedSet(TypeDef))]
+[access(access)/] [spec(spec)/] [type.toString()/] [id/][for (derivation: TypeDef | derivations) before(' : ') separator(', ')][derivation.getQualifiedName()/][/for]
+[/template]
+
+[template public generateMember(member: MemberDef)]
+[access(member.accessability)/] [spec(member.specifier)/] [member.type.getQualifiedName()/] [member.identifier/];
+[/template]
+
+[template public generateConstructor(constructor: ConstructorDef)]
+[generateFunction(constructor.accessability, constructor.specifier, '<retType>', '<constructType>', constructor.parameters, constructor._body)/]
+[spec(constructor.specifier)/] [access(constructor.accessability)/] {
+	[for (stat : String | constructor._body)]
+	[stat/]
+	[/for]
+}
+[/template]
+
+[template public generateMethod(method: MethodDef)]
+[generateFunction(method.accessability, method.specifier, method.returnType.getQualifiedName(), method.identifier, method.parameters, method._body)/]
+[/template]
+
+[template public generateFunction(access: AccessModifier, spec: Specifier, returnType: String, identifier: String, params: OrderedSet(Parameter), _body: OrderedSet(String))]
+[access(access)/] [spec(spec)/] [returnType/] [identifier/]([generateParams(params)/]) {
+	[for (stat : String | _body)]
+	[stat/]
+	[/for]
+}
+[/template]
+
+[template public generateParams(params: OrderedSet(Parameter))]
+[for (param: Parameter | params) separator(', ')][varSpec(param.specifier)/][param.type.getQualifiedName()/] [param.identifier/][/for]
+[/template]
+
+[template public spec(specifier: Specifier)]
+[if specifier = Specifier::none][else][specifier.toString()/][/if]
+[/template]
+
+[template public varSpec(specifier: VarSpecifier)]
+[if specifier = VarSpecifier::none][else][specifier.toString()/][/if]
+[/template]
+
+[template public access(accessability: AccessModifier)]
+[if accessability = AccessModifier::none][else][if accessability = AccessModifier::private_protected]private protected[else][if accessability = AccessModifier::protected_internal]protected internal[else][accessability.toString()/][/if][/if][/if]
+[/template]
+
+
+
+
+
+
+
+
+
diff --git a/projectMDE_acceleo/build.properties b/projectMDE_acceleo/build.properties
new file mode 100644
index 0000000000000000000000000000000000000000..32300568cca958366892fe4a85aaca0f6a528c62
--- /dev/null
+++ b/projectMDE_acceleo/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
+jre.compilation.profile = JavaSE-11
diff --git a/projectMDE_acceleo/src-gen/Bullet.cs b/projectMDE_acceleo/src-gen/Bullet.cs
new file mode 100644
index 0000000000000000000000000000000000000000..18db88d7a13495bc23efb0f33e687263af28e246
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/Bullet.cs
@@ -0,0 +1,22 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	// Type definitions
+	public  class Bullet : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.Rigidbody2D body;
+		public  int speed;
+	
+		// methods
+		public  void Awake() {
+			body = gameObjects.GetComponent<Rigidbody2D>();
+		}
+	
+		public  void Start() {
+			body.addForce(new Vector2(1, 0) * speed, ForceMode2D.Impulse);
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/src-gen/Character.cs b/projectMDE_acceleo/src-gen/Character.cs
new file mode 100644
index 0000000000000000000000000000000000000000..25017298c47c6cd2682ffbd6a7d039d63625989c
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/Character.cs
@@ -0,0 +1,41 @@
+namespace DSL {
+	// Type definitions
+	public  class Character : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.Rigidbody2D body;
+		public  float speed;
+		public  float jumpForce;
+		public  float horizontal;
+		public  bool isGrounded;
+		public  UnityEngine.GameObject objectCreated;
+	
+		// methods
+		public  void Update() {
+			horizontal = Input.GetAxis("Horizontal");
+			if (Input.GetButtonDown("Jump") && isGrounded) {
+						isGrounded = false;
+						body.AddForce(new Vector2(0, 1) * jumpforce, ForceMode2D.Impulse);
+					}
+			body.velocity = new Vector2(horizontal * speed, body.velocity.y);
+			if (Input.GetKeyDown(KeyCode.K)) {
+						Instantiate(objectCreated, transform.position + new Vector3(2, 0, 0), transform.rotation);
+					}
+		}
+	
+		public  void OnCollisionEnter2D(UnityEngine.Collision2D collider) {
+						if (collider.gameObject.tag == "Floor") {
+									isGrounded = true;
+								}
+					}
+	
+		public  void OnTriggerEnter2D(UnityEngine.Collider2D collider) {
+									DataManager manager = DataManager.instance;
+									if (collider.gameObject.tag == "Enemy") {
+												manager.score.setValue(manager.score.getValue() + 100);
+												Destroy(gameObject);
+											}
+								}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/src-gen/DataManager.cs b/projectMDE_acceleo/src-gen/DataManager.cs
new file mode 100644
index 0000000000000000000000000000000000000000..758b9e3ffa43dc77bf0707aa759cfbcc20d9bbd8
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/DataManager.cs
@@ -0,0 +1,23 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	// Type definitions
+	public  class DataManager : UnityEngine.MonoBehaviour {
+	
+		// members
+		public static DSL.DataManager instance;
+		public  int score;
+		public  int initialScore;
+		public  int lives;
+		public  int initialLives;
+	
+		// methods
+		public  void Awake() {
+			instance ??= this;
+			score = new DataInt(initialScore);
+			lives = new DataInt(initialLives);
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/src-gen/Enemy.cs b/projectMDE_acceleo/src-gen/Enemy.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cf7f7eda0af4bf877371747bdf02159b9fed3e52
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/Enemy.cs
@@ -0,0 +1,22 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	// Type definitions
+	public  class Enemy : UnityEngine.MonoBehaviour {
+	
+		// methods
+		public  void OnTriggerEnter2D(UnityEngine.Collider2D collider) {
+			DataManager manager = DataManager.instance;
+			if (colider.gameObject.tag == "PlayerFoot") {
+						manager.score.setValue(manager.score.getValue() + 100);
+						Destroy(gameObject);
+					}
+			if (colider.gameObject.tag == "Bullet") {
+						manager.score.setValue(manager.score.getValue() + 100);
+						Destroy(gameObject);
+					}
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/src-gen/LivesText.cs b/projectMDE_acceleo/src-gen/LivesText.cs
new file mode 100644
index 0000000000000000000000000000000000000000..485ff94d665f0573fb99acd29946562fe1e0dc6e
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/LivesText.cs
@@ -0,0 +1,23 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	using UnityEngine.UI;
+	// Type definitions
+	public  class LivesText : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.UI.Text view;
+		public  string displayed;
+	
+		// methods
+		public  void Start() {
+			view = gameObject.GetComponent<Text>();
+		}
+	
+		public  void Update() {
+			view.text = displayed + DataManager.instance.lives.getValue();
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/src-gen/ScoreText.cs b/projectMDE_acceleo/src-gen/ScoreText.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d6c7a8752782cb413ec7f38e5fd17cadd665a454
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/ScoreText.cs
@@ -0,0 +1,23 @@
+namespace DSL {
+	// using directives
+	using UnityEngine;
+	using System;
+	using UnityEngine.UI;
+	// Type definitions
+	public  class ScoreText : UnityEngine.MonoBehaviour {
+	
+		// members
+		public  UnityEngine.UI.Text view;
+		public  string displayed;
+	
+		// methods
+		public  void Start() {
+			view = gameObject.GetComponent<Text>();
+		}
+	
+		public  void Update() {
+			view.text = displayed + DataManager.instance.score.getValue();
+		}
+	
+	}
+} 
diff --git a/projectMDE_acceleo/src-gen/Types.cs b/projectMDE_acceleo/src-gen/Types.cs
new file mode 100644
index 0000000000000000000000000000000000000000..eb4ea5442aa09a081b70a0fd000bf573a26ffe60
--- /dev/null
+++ b/projectMDE_acceleo/src-gen/Types.cs
@@ -0,0 +1,38 @@
+namespace Test {
+	// Type definitions
+	public  interface MyInterface {
+		// interface methods
+		public  void Method1(float floaty);
+		public  int Add(int adder);
+	}
+
+	public  delegate MyDelegate(string s);
+
+	public  class MyClass {
+	
+		// members
+		private  Test.MyClass.InnerClass data;
+	
+		// methods
+		public  Test.MyClass.InnerClass GetData() {
+		}
+	
+		// inner types
+		private  class InnerClass {
+		
+		}
+	
+	}
+
+	public  enum MyEnum {
+		ONE = 1, TWO, THREE
+	}
+
+	public readonly struct MyStruct {
+	
+	}
+
+	public  enum MyByteEnum : byte {
+		s1 = 1, s2, s3 = 1, s4 = 1, s5 = 1, s6 = 1, s7 = 1, s8 = 1
+	}
+} 
diff --git a/projectMDE_acceleo/src/projectMDE_acceleo/Activator.java b/projectMDE_acceleo/src/projectMDE_acceleo/Activator.java
new file mode 100644
index 0000000000000000000000000000000000000000..40504754f74650cd6956d31addbabc625452f2f7
--- /dev/null
+++ b/projectMDE_acceleo/src/projectMDE_acceleo/Activator.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 Obeo.
+ * 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package projectMDE_acceleo;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends Plugin {
+
+    /**
+     * The plug-in ID.
+     */
+    public static final String PLUGIN_ID = "projectMDE_acceleo";
+
+    /**
+     * The shared instance.
+     */
+    private static Activator plugin;
+    
+    /**
+     * The constructor.
+     */
+    public Activator() {
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
+     */
+    public void start(BundleContext context) throws Exception {
+        super.start(context);
+        plugin = this;
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+     */
+    public void stop(BundleContext context) throws Exception {
+        plugin = null;
+        super.stop(context);
+    }
+
+    /**
+     * Returns the shared instance.
+     *
+     * @return the shared instance
+     */
+    public static Activator getDefault() {
+        return plugin;
+    }
+
+}
diff --git a/projectMDE_acceleo/src/projectMDE_acceleo/main/Generate.java b/projectMDE_acceleo/src/projectMDE_acceleo/main/Generate.java
new file mode 100644
index 0000000000000000000000000000000000000000..c07ea4a02c55886ca988a80198e5b6f3997b2e98
--- /dev/null
+++ b/projectMDE_acceleo/src/projectMDE_acceleo/main/Generate.java
@@ -0,0 +1,412 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2012 Obeo.
+ * 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package projectMDE_acceleo.main;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'Generate' generation module.
+ *
+ * @generated
+ */
+public class Generate extends AbstractAcceleoGenerator {
+    /**
+     * The name of the module.
+     *
+     * @generated
+     */
+    public static final String MODULE_FILE_NAME = "/projectMDE_acceleo/main/generate";
+    
+    /**
+     * The name of the templates that are to be generated.
+     *
+     * @generated
+     */
+    public static final String[] TEMPLATE_NAMES = { "generateProgram" };
+    
+    /**
+     * The list of properties files from the launch parameters (Launch configuration).
+     *
+     * @generated
+     */
+    private List<String> propertiesFiles = new ArrayList<String>();
+
+    /**
+     * Allows the public constructor to be used. Note that a generator created
+     * this way cannot be used to launch generations before one of
+     * {@link #initialize(EObject, File, List)} or
+     * {@link #initialize(URI, File, List)} is called.
+     * <p>
+     * The main reason for this constructor is to allow clients of this
+     * generation to call it from another Java file, as it allows for the
+     * retrieval of {@link #getProperties()} and
+     * {@link #getGenerationListeners()}.
+     * </p>
+     *
+     * @generated
+     */
+    public Generate() {
+        // Empty implementation
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param modelURI
+     *            URI where the model on which this generator will be used is located.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+     *             the model cannot be loaded.
+     * @generated
+     */
+    public Generate(URI modelURI, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(modelURI, targetFolder, arguments);
+    }
+
+    /**
+     * This allows clients to instantiates a generator with all required information.
+     * 
+     * @param model
+     *            We'll iterate over the content of this element to find Objects matching the first parameter
+     *            of the template we need to call.
+     * @param targetFolder
+     *            This will be used as the output folder for this generation : it will be the base path
+     *            against which all file block URLs will be resolved.
+     * @param arguments
+     *            If the template which will be called requires more than one argument taken from the model,
+     *            pass them here.
+     * @throws IOException
+     *             This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+     * @generated
+     */
+    public Generate(EObject model, File targetFolder,
+            List<? extends Object> arguments) throws IOException {
+        initialize(model, targetFolder, arguments);
+    }
+    
+    /**
+     * This can be used to launch the generation from a standalone application.
+     * 
+     * @param args
+     *            Arguments of the generation.
+     * @generated
+     */
+    public static void main(String[] args) {
+        try {
+            if (args.length < 2) {
+                System.out.println("Arguments not valid : {model, folder}.");
+            } else {
+                URI modelURI = URI.createFileURI(args[0]);
+                File folder = new File(args[1]);
+                
+                List<String> arguments = new ArrayList<String>();
+                
+                /*
+                 * If you want to change the content of this method, do NOT forget to change the "@generated"
+                 * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+                 * of the Acceleo module with the main template that has caused the creation of this class will
+                 * revert your modifications.
+                 */
+
+                /*
+                 * Add in this list all the arguments used by the starting point of the generation
+                 * If your main template is called on an element of your model and a String, you can
+                 * add in "arguments" this "String" attribute.
+                 */
+                
+                Generate generator = new Generate(modelURI, folder, arguments);
+                
+                /*
+                 * Add the properties from the launch arguments.
+                 * If you want to programmatically add new properties, add them in "propertiesFiles"
+                 * You can add the absolute path of a properties files, or even a project relative path.
+                 * If you want to add another "protocol" for your properties files, please override 
+                 * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
+                 * The behavior of the properties loader service is explained in the Acceleo documentation
+                 * (Help -> Help Contents).
+                 */
+                 
+                for (int i = 2; i < args.length; i++) {
+                    generator.addPropertiesFile(args[i]);
+                }
+                
+                generator.doGenerate(new BasicMonitor());
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Launches the generation described by this instance.
+     * 
+     * @param monitor
+     *            This will be used to display progress information to the user.
+     * @throws IOException
+     *             This will be thrown if any of the output files cannot be saved to disk.
+     * @generated
+     */
+    @Override
+    public void doGenerate(Monitor monitor) throws IOException {
+        /*
+         * TODO if you wish to change the generation as a whole, override this. The default behavior should
+         * be sufficient in most cases. If you want to change the content of this method, do NOT forget to
+         * change the "@generated" tag in the Javadoc of this method to "@generated NOT". Without this new tag,
+         * any compilation of the Acceleo module with the main template that has caused the creation of this
+         * class will revert your modifications. If you encounter a problem with an unresolved proxy during the
+         * generation, you can remove the comments in the following instructions to check for problems. Please
+         * note that those instructions may have a significant impact on the performances.
+         */
+
+        //org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(model);
+
+        /*
+         * If you want to check for potential errors in your models before the launch of the generation, you
+         * use the code below.
+         */
+
+        //if (model != null && model.eResource() != null) {
+        //    List<org.eclipse.emf.ecore.resource.Resource.Diagnostic> errors = model.eResource().getErrors();
+        //    for (org.eclipse.emf.ecore.resource.Resource.Diagnostic diagnostic : errors) {
+        //        System.err.println(diagnostic.toString());
+        //    }
+        //}
+
+        super.doGenerate(monitor);
+    }
+    
+    /**
+     * If this generator needs to listen to text generation events, listeners can be returned from here.
+     * 
+     * @return List of listeners that are to be notified when text is generated through this launch.
+     * @generated
+     */
+    @Override
+    public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+        List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+        /*
+         * TODO if you need to listen to generation event, add listeners to the list here. If you want to change
+         * the content of this method, do NOT forget to change the "@generated" tag in the Javadoc of this method
+         * to "@generated NOT". Without this new tag, any compilation of the Acceleo module with the main template
+         * that has caused the creation of this class will revert your modifications.
+         */
+        return listeners;
+    }
+    
+    /**
+     * If you need to change the way files are generated, this is your entry point.
+     * <p>
+     * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates
+     * files on the fly. If you only need to preview the results, return a new
+     * {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of
+     * the running Eclipse and can be used standalone.
+     * </p>
+     * <p>
+     * If you need the file generation to be aware of the workspace (A typical example is when you wanna
+     * override files that are under clear case or any other VCS that could forbid the overriding), then
+     * return a new {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}.
+     * <b>Note</b>, however, that this <b>cannot</b> be used standalone.
+     * </p>
+     * <p>
+     * All three of these default strategies support merging through JMerge.
+     * </p>
+     * 
+     * @return The generation strategy that is to be used for generations launched through this launcher.
+     * @generated
+     */
+    @Override
+    public IAcceleoGenerationStrategy getGenerationStrategy() {
+        return super.getGenerationStrategy();
+    }
+    
+    /**
+     * This will be called in order to find and load the module that will be launched through this launcher.
+     * We expect this name not to contain file extension, and the module to be located beside the launcher.
+     * 
+     * @return The name of the module that is to be launched.
+     * @generated
+     */
+    @Override
+    public String getModuleName() {
+        return MODULE_FILE_NAME;
+    }
+    
+    /**
+     * If the module(s) called by this launcher require properties files, return their qualified path from
+     * here.Take note that the first added properties files will take precedence over subsequent ones if they
+     * contain conflicting keys.
+     * 
+     * @return The list of properties file we need to add to the generation context.
+     * @see java.util.ResourceBundle#getBundle(String)
+     * @generated
+     */
+    @Override
+    public List<String> getProperties() {
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+
+        /*
+         * TODO if your generation module requires access to properties files, add their qualified path to the list here.
+         * 
+         * Properties files can be located in an Eclipse plug-in or in the file system (all Acceleo projects are Eclipse
+         * plug-in). In order to use properties files located in an Eclipse plugin, you need to add the path of the properties
+         * files to the "propertiesFiles" list:
+         * 
+         * final String prefix = "platform:/plugin/";
+         * final String pluginName = "org.eclipse.acceleo.module.sample";
+         * final String packagePath = "/org/eclipse/acceleo/module/sample/properties/";
+         * final String fileName = "default.properties";
+         * propertiesFiles.add(prefix + pluginName + packagePath + fileName);
+         * 
+         * With this mechanism, you can load properties files from your plugin or from another plugin.
+         * 
+         * You may want to load properties files from the file system, for that you need to add the absolute path of the file:
+         * 
+         * propertiesFiles.add("C:\Users\MyName\MyFile.properties");
+         * 
+         * If you want to let your users add properties files located in the same folder as the model:
+         *
+         * if (EMFPlugin.IS_ECLIPSE_RUNNING && model != null && model.eResource() != null) { 
+         *     propertiesFiles.addAll(AcceleoEngineUtils.getPropertiesFilesNearModel(model.eResource()));
+         * }
+         * 
+         * To learn more about Properties Files, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+        return propertiesFiles;
+    }
+    
+    /**
+     * Adds a properties file in the list of properties files.
+     * 
+     * @param propertiesFile
+     *            The properties file to add.
+     * @generated
+     * @since 3.1
+     */
+    @Override
+    public void addPropertiesFile(String propertiesFile) {
+        this.propertiesFiles.add(propertiesFile);
+    }
+    
+    /**
+     * This will be used to get the list of templates that are to be launched by this launcher.
+     * 
+     * @return The list of templates to call on the module {@link #getModuleName()}.
+     * @generated
+     */
+    @Override
+    public String[] getTemplateNames() {
+        return TEMPLATE_NAMES;
+    }
+    
+    /**
+     * This can be used to update the resource set's package registry with all needed EPackages.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerPackages(ResourceSet resourceSet) {
+        super.registerPackages(resourceSet);
+        
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * If you need additional package registrations, you can register them here. The following line
+         * (in comment) is an example of the package registration for UML.
+         * 
+         * You can use the method  "isInWorkspace(Class c)" to check if the package that you are about to
+         * register is in the workspace.
+         * 
+         * To register a package properly, please follow the following conventions:
+         *
+         * If the package is located in another plug-in, already installed in Eclipse. The following content should
+         * have been generated at the beginning of this method. Do not register the package using this mechanism if
+         * the metamodel is located in the workspace.
+         *  
+         * if (!isInWorkspace(UMLPackage.class)) {
+         *     // The normal package registration if your metamodel is in a plugin.
+         *     resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+         * }
+         * 
+         * If the package is located in another project in your workspace, the plugin containing the package has not
+         * been register by EMF and Acceleo should register it automatically. If you want to use the generator in
+         * stand alone, the regular registration (seen a couple lines before) is needed.
+         * 
+         * To learn more about Package Registration, have a look at the Acceleo documentation (Help -> Help Contents).
+         */
+    }
+
+    /**
+     * This can be used to update the resource set's resource factory registry with all needed factories.
+     * 
+     * @param resourceSet
+     *            The resource set which registry has to be updated.
+     * @generated
+     */
+    @Override
+    public void registerResourceFactories(ResourceSet resourceSet) {
+        super.registerResourceFactories(resourceSet);
+        /*
+         * If you want to change the content of this method, do NOT forget to change the "@generated"
+         * tag in the Javadoc of this method to "@generated NOT". Without this new tag, any compilation
+         * of the Acceleo module with the main template that has caused the creation of this class will
+         * revert your modifications.
+         */
+        
+        /*
+         * TODO If you need additional resource factories registrations, you can register them here. the following line
+         * (in comment) is an example of the resource factory registration.
+         *
+         * If you want to use the generator in stand alone, the resource factory registration will be required.
+         *  
+         * To learn more about the registration of Resource Factories, have a look at the Acceleo documentation (Help -> Help Contents). 
+         */ 
+        
+        // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(XyzResource.FILE_EXTENSION, XyzResource.Factory.INSTANCE);
+        
+        /*
+         * Some metamodels require a very complex setup for standalone usage. For example, if you want to use a generator
+         * targetting UML models in standalone, you NEED to use the following:
+         */ 
+        // UMLResourcesUtil.init(resourceSet)
+    }
+    
+}
diff --git a/projectMDE_acceleo/src/projectMDE_acceleo/main/generate.mtl b/projectMDE_acceleo/src/projectMDE_acceleo/main/generate.mtl
new file mode 100644
index 0000000000000000000000000000000000000000..ef24021bc8e5ee6a667a6ccbaaae429e8b22d46c
--- /dev/null
+++ b/projectMDE_acceleo/src/projectMDE_acceleo/main/generate.mtl
@@ -0,0 +1,134 @@
+[comment encoding = UTF-8 /]
+[module generate('http://www.example.org/cs.ecore')]
+
+[query public fileName(f: File) : String = f.filename.concat('.cs')/] 
+
+[template public generateProgram(program : Program)]
+[comment @main/]
+[for (f: File | program.files)]
+[generateFile(f)/]
+[/for]
+[/template]
+
+[template public generateFile(f : File)]
+[file (fileName(f), false, 'UTF-8')]
+[for (ns: Namespace | f.namespaces)]
+[generateNamespace(ns)/] 
+[/for]
+[/file]
+[/template]
+
+[template public generateNamespace(ns : Namespace)]
+namespace [ns.namespace/] {
+	[for (using: String | ns.using) before('\t// using directives\n')]
+	using [using/];
+	[/for]
+	[for (childNs: Namespace | ns.innerNamespaces)]
+	[generateNamespace(childNs)/]
+	[/for]
+	[for (typeDef: InternalType | ns.typedefs) before('\t// Type definitions\n') separator('\n')]
+	[generateInternalType(typeDef)/]
+	[/for]
+}
+[/template]
+
+[template public generateInternalType(type : InternalType)]
+[/template]
+
+[template public generateInternalType(struct: Struct)]
+[generateInternalType(struct, struct.implements)/]
+[/template]
+
+[template public generateInternalType(class: Class)]
+[generateInternalType(class, class.baseType->asOrderedSet()->addAll(class.implements))/]
+[/template]
+
+[template public generateInternalType(containment : Containment, derivations: OrderedSet(TypeDef))]
+[generateTypeDef(containment.accessability, containment.specifier, containment.getType(), containment.identifier, derivations)/] {
+	[for (member : MemberDef | containment.members) before('\n\t// members\n')]
+	[generateMember(member)/]
+	[/for]
+	[for (constructor: ConstructorDef | containment.constructors) before('\n\t// constructors\n')]
+	[generateConstructor(constructor)/]
+	[/for]
+	[for (method : MethodDef | containment.methods) before('\n\t// methods\n') separator('\n')]
+	[generateMethod(method)/]
+	[/for]
+	[for (typeDef : InternalType | containment.typedefs) before('\n\t// inner types\n')]
+	[generateInternalType(typeDef)/]
+	[/for]
+
+}
+[/template]
+
+[template public generateInternalType(interface : Interface)]
+[generateTypeDef(interface.accessability, interface.specifier, interface.getType(), interface.identifier, OrderedSet{})/] {
+	[for (method : MethodDef | interface.methods) before('\t// interface methods\n')]
+	[access(method.accessability)/] [spec(method.specifier)/] [method.returnType.getQualifiedName()/] [method.identifier/]([generateParams(method.parameters)/]);
+	[/for]
+}
+[/template]
+
+[template public generateInternalType(delegate : Delegate)]
+[generateTypeDef(delegate.accessability, delegate.specifier, delegate.getType(), delegate.identifier, OrderedSet{})/]([generateParams(delegate.parameters)/]);
+[/template]
+
+[template public generateInternalType(enum : Enum)]
+[generateTypeDef(enum.accessability, enum.specifier, enum.getType(), enum.identifier, OrderedSet{})/][if enum.base <> EPrimitiveType::int] : [enum.base.toString()/][/if] {
+	[for (literal: Literal | enum.literals) separator(', ')][literal.identifier/][if literal.useValue] = [literal.value/][/if][/for]
+}
+[/template]
+
+[template public generateTypeDef(access: AccessModifier, spec: Specifier, type: EType, id: String, derivations: OrderedSet(TypeDef))]
+[access(access)/] [spec(spec)/] [type.toString()/] [id/][for (derivation: TypeDef | derivations) before(' : ') separator(', ')][derivation.getQualifiedName()/][/for]
+[/template]
+
+[template public generateMember(member: MemberDef)]
+[access(member.accessability)/] [spec(member.specifier)/] [member.type.getQualifiedName()/] [member.identifier/];
+[/template]
+
+[template public generateConstructor(constructor: ConstructorDef)]
+[generateFunction(constructor.accessability, constructor.specifier, '<retType>', '<constructType>', constructor.parameters, constructor._body)/]
+[spec(constructor.specifier)/] [access(constructor.accessability)/] {
+	[for (stat : String | constructor._body)]
+	[stat/]
+	[/for]
+}
+[/template]
+
+[template public generateMethod(method: MethodDef)]
+[generateFunction(method.accessability, method.specifier, method.returnType.getQualifiedName(), method.identifier, method.parameters, method._body)/]
+[/template]
+
+[template public generateFunction(access: AccessModifier, spec: Specifier, returnType: String, identifier: String, params: OrderedSet(Parameter), _body: OrderedSet(String))]
+[access(access)/] [spec(spec)/] [returnType/] [identifier/]([generateParams(params)/]) {
+	[for (stat : String | _body)]
+	[stat/]
+	[/for]
+}
+[/template]
+
+[template public generateParams(params: OrderedSet(Parameter))]
+[for (param: Parameter | params) separator(', ')][varSpec(param.specifier)/][param.type.getQualifiedName()/] [param.identifier/][/for]
+[/template]
+
+[template public spec(specifier: Specifier)]
+[if specifier = Specifier::none][else][specifier.toString()/][/if]
+[/template]
+
+[template public varSpec(specifier: VarSpecifier)]
+[if specifier = VarSpecifier::none][else][specifier.toString()/][/if]
+[/template]
+
+[template public access(accessability: AccessModifier)]
+[if accessability = AccessModifier::none][else][if accessability = AccessModifier::private_protected]private protected[else][if accessability = AccessModifier::protected_internal]protected internal[else][accessability.toString()/][/if][/if][/if]
+[/template]
+
+
+
+
+
+
+
+
+
diff --git a/projectMDE_acceleo/tasks/generate.xml b/projectMDE_acceleo/tasks/generate.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ef300de47de7b01f27675ad27f4080d9e60135b9
--- /dev/null
+++ b/projectMDE_acceleo/tasks/generate.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="generate" name="projectMDE_acceleo">
+    <property name="ECLIPSE_HOME" value="../../../eclipse"/>
+    <property name="ECLIPSE_WORKSPACE" value="../.."/>
+
+    <!-- The classpath with only the dependencies used by the project -->
+    <path id="projectMDE_acceleo.libraryclasspath">
+        <pathelement location="${ECLIPSE_WORKSPACE}/projectMDE_acceleo/bin"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.23.0.v20210730-2035.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.17.0.v20210823-1805.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.osgi.compatibility.state_1.2.500.v20210730-0750.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.15.0.v20210518-0604.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.12.0.v20210723-1034.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.11.0.v20210723-1953.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.9.0.v20210726-0943.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.8.0.v20210621-0954.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.6.0.v20210723-1130.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.25.0.v20210816-0937.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.23.0.v20210618-0700.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.16.0.v20190528-0725.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.16.200.v20210907-2013.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.common_1.16.0.v20210907-2013.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.16.200.v20210907-2013.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.7.11.202102190929.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.7.11.202102190929.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.profiler_3.7.11.202102190929.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.7.11.202102190929.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen.ecore_2.27.0.v20210816-1137.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/org.eclipse.emf.codegen_2.22.0.v20210420-0623.jar"/>
+        <pathelement location="${ECLIPSE_HOME}/plugins/com.google.guava_30.1.0.v20210127-2300.jar"/>
+    </path>
+
+    <path id="projectMDE_acceleo.classpath">
+        <path refid="projectMDE_acceleo.libraryclasspath"/>
+    </path>
+
+    <!-- The classpath with only the jars available in the plugin folder of Eclipse -->
+    <path id="projectMDE_acceleo.libraryclasspath.alljars">
+        <pathelement location="../projectMDE_acceleo/bin"/>
+        <fileset dir="${ECLIPSE_HOME}/plugins/" includes="*.jar"/>
+    </path>
+
+    <path id="projectMDE_acceleo.classpath.alljars">
+        <path refid="projectMDE_acceleo.libraryclasspath.alljars"/>
+    </path>
+
+    <!-- The default task with the jars used by this project -->
+    <target name="generate">
+        <java classname="projectMDE_acceleo.main.Generate" classpathref="projectMDE_acceleo.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+
+    <!--
+        In case of problem you can also try with all the jar available in your Eclipse
+        Keep in mind that having two versions of the same jar can create problems
+    -->
+    <target name="generate.alljars">
+        <java classname="projectMDE_acceleo.main.Generate" classpathref="projectMDE_acceleo.classpath">
+            <arg value="${model}"/>
+            <arg value="${target}"/>
+        </java>
+    </target>
+</project>
diff --git a/projectMDE_acceleo/tasks/generateTarget.xml b/projectMDE_acceleo/tasks/generateTarget.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9b4ce1b2269cfae1d0e5209425651a3cb5cf8d8e
--- /dev/null
+++ b/projectMDE_acceleo/tasks/generateTarget.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Place this file in the target project and call it with "External Tools > Run As > Ant Build" -->
+<!-- You have to change the MODEL and the TARGET values -->
+
+<project basedir="." default="generateSample" name="projectMDE_acceleoSample">
+	<import file="../../projectMDE_acceleo/tasks/generate.xml"/>
+
+    <!-- Change the values of MODEL and TARGET to point to your model and output folder -->
+	<property name="MODEL" value="${basedir}/model/file.xmi"/>
+	<property name="TARGET" value="${basedir}/src-gen"/>
+
+	<target name="generateSample" description="Generate files in 'TARGET'">
+		<antcall target="generate" >
+			<param name="model" value="${MODEL}"/>
+			<param name="target" value="${TARGET}"/>
+		</antcall>
+	</target>
+</project>