diff --git a/org.framed.iorm.model.edit/META-INF/MANIFEST.MF b/org.framed.iorm.model.edit/META-INF/MANIFEST.MF
index e7e1f1b3aa2fdca628c4f4a85837419cb7c31cf8..010c6ac2f0a962bf0ba4d8542c6782a4f88b70cf 100644
--- a/org.framed.iorm.model.edit/META-INF/MANIFEST.MF
+++ b/org.framed.iorm.model.edit/META-INF/MANIFEST.MF
@@ -11,6 +11,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.framed.iorm.featuremodel.provider,
  org.framed.iorm.model.provider
 Require-Bundle: org.eclipse.core.runtime,
- org.framed.iorm.model;visibility:=reexport,
+ org.framed.iorm.model;bundle-version="1.0.0";visibility:=reexport,
  org.eclipse.emf.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
diff --git a/org.framed.iorm.model/META-INF/MANIFEST.MF b/org.framed.iorm.model/META-INF/MANIFEST.MF
index 13209b324e329ae59c534305e14c4bce1ba60324..bd3313a6857818500b3c4d3eefe5a8ab349fd06f 100644
--- a/org.framed.iorm.model/META-INF/MANIFEST.MF
+++ b/org.framed.iorm.model/META-INF/MANIFEST.MF
@@ -7,12 +7,31 @@ Bundle-ClassPath: .
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.framed.iorm.featuremodel,
- org.framed.iorm.featuremodel.impl,
- org.framed.iorm.featuremodel.util,
+Export-Package: org.framed.iorm.featuremodel;uses:="org.eclipse.emf.ecore,org.eclipse.emf.common.util",
+ org.framed.iorm.featuremodel.impl;
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.ecore.impl,
+   org.eclipse.emf.common.util,
+   org.framed.iorm.featuremodel",
+ org.framed.iorm.featuremodel.util;
+  uses:="org.eclipse.emf.ecore,
+   org.framed.iorm.featuremodel,
+   org.eclipse.emf.common.notify,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.emf.ecore.util",
  org.framed.iorm.model,
- org.framed.iorm.model.impl,
- org.framed.iorm.model.util
+ org.framed.iorm.model.impl;
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.ecore.impl,
+   org.eclipse.emf.common.util,
+   org.framed.iorm.featuremodel,
+   org.framed.iorm.model",
+ org.framed.iorm.model.util;
+  uses:="org.eclipse.emf.ecore,
+   org.eclipse.emf.common.notify,
+   org.eclipse.emf.common.notify.impl,
+   org.eclipse.emf.ecore.util,
+   org.framed.iorm.model"
 Require-Bundle: org.eclipse.emf.common;bundle-version="2.13.0",
  org.eclipse.core.runtime,
  org.eclipse.emf.ecore;bundle-version="2.13.0";visibility:=reexport
diff --git a/org.framed.iorm.model/model/IORM.aird b/org.framed.iorm.model/model/IORM.aird
new file mode 100644
index 0000000000000000000000000000000000000000..23b8bb1a6348c129e9110989495e5100543e0374
--- /dev/null
+++ b/org.framed.iorm.model/model/IORM.aird
@@ -0,0 +1,923 @@
+<?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:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+  <viewpoint:DAnalysis xmi:id="_-B4sMC6SEei7UoQ9pjBF3w" selectedViews="_-QfI4C6SEei7UoQ9pjBF3w _-QskQC6SEei7UoQ9pjBF3w _-Q5_oC6SEei7UoQ9pjBF3w _-ROvwC6SEei7UoQ9pjBF3w" version="12.1.0.201708031200">
+    <semanticResources>IORM.ecore</semanticResources>
+    <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
+    <semanticResources>IORM.genmodel</semanticResources>
+    <ownedViews xmi:type="viewpoint:DView" xmi:id="_-QfI4C6SEei7UoQ9pjBF3w">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_Chx-8C6TEei7UoQ9pjBF3w" name="iorm class diagram" repPath="#_CfQ2cC6TEei7UoQ9pjBF3w">
+        <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="IORM.ecore#/"/>
+      </ownedRepresentationDescriptors>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" xmi:id="_-QskQC6SEei7UoQ9pjBF3w">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" xmi:id="_-Q5_oC6SEei7UoQ9pjBF3w">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" xmi:id="_-ROvwC6SEei7UoQ9pjBF3w">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/>
+    </ownedViews>
+  </viewpoint:DAnalysis>
+  <diagram:DSemanticDiagram xmi:id="_ChtGcC6TEei7UoQ9pjBF3w" name="iorm class diagram" uid="_CfQ2cC6TEei7UoQ9pjBF3w">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_ChtGcS6TEei7UoQ9pjBF3w" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_ChtGci6TEei7UoQ9pjBF3w">
+        <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_HvLQ4C6TEei7UoQ9pjBF3w" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+          <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <labelFormat>bold</labelFormat>
+          <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+        </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_HwNLoS6TEei7UoQ9pjBF3w" showIcon="false" labelExpression="service:render">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </centerLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_HwNLoi6TEei7UoQ9pjBF3w" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_Hwk_EC6TEei7UoQ9pjBF3w" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_Hwk_ES6TEei7UoQ9pjBF3w" showIcon="false" labelExpression="service:renderEOpposite">
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </beginLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_Hwk_Ei6TEei7UoQ9pjBF3w" showIcon="false" labelExpression="service:render">
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
+        <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_HwmNMC6TEei7UoQ9pjBF3w" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan">
+          <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_HwmNMS6TEei7UoQ9pjBF3w" showIcon="false" labelExpression="service:renderEOpposite">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </beginLabelStyleDescription>
+          <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_HwmNMi6TEei7UoQ9pjBF3w" showIcon="false" labelExpression="service:render">
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </endLabelStyleDescription>
+        </computedStyleDescriptions>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_CiTjYC6TEei7UoQ9pjBF3w" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_CiTjYS6TEei7UoQ9pjBF3w" type="Sirius" element="_ChtGcC6TEei7UoQ9pjBF3w" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_Hwth8C6TEei7UoQ9pjBF3w" type="2003" element="_HueGQC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HwuwEC6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_HwxzYC6TEei7UoQ9pjBF3w" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_Hw4hEC6TEei7UoQ9pjBF3w" type="3010" element="_HvFKQC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw5IIC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw5IIS6TEei7UoQ9pjBF3w"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_HwxzYS6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_HwxzYi6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Hwth8S6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" fillColor="15329769"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hwth8i6TEei7UoQ9pjBF3w" x="375" y="110" height="60"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_HwyacC6TEei7UoQ9pjBF3w" type="2003" element="_HupFYC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HwzBgC6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_HwzBgS6TEei7UoQ9pjBF3w" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_Hw5vMC6TEei7UoQ9pjBF3w" type="3010" element="_HvKCwC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw5vMS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" bold="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw5vMi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_HwzBgi6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_HwzBgy6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_HwyacS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" fillColor="15329769"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hwyaci6TEei7UoQ9pjBF3w" x="535" width="203" height="58"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_HwzBhC6TEei7UoQ9pjBF3w" type="2003" element="_Huq6kC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HwzokC6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_HwzokS6TEei7UoQ9pjBF3w" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_Hw6WQC6TEei7UoQ9pjBF3w" type="3010" element="_HvNtIC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw6WQS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw6WQi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Hwzoki6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Hwzoky6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_HwzBhS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" fillColor="15329769"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HwzBhi6TEei7UoQ9pjBF3w" x="170" height="58"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_Hw0PoC6TEei7UoQ9pjBF3w" type="2003" element="_HutW0C6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hw0Poy6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_Hw02sC6TEei7UoQ9pjBF3w" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Hw02sS6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Hw02si6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Hw0PoS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" fillColor="15329769"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hw0Poi6TEei7UoQ9pjBF3w" x="605" y="225" height="53"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_Hw02sy6TEei7UoQ9pjBF3w" type="2003" element="_HuvMAC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hw1dwC6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_Hw1dwS6TEei7UoQ9pjBF3w" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Hw1dwi6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Hw1dwy6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Hw02tC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" fillColor="15329769"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hw02tS6TEei7UoQ9pjBF3w" x="170" y="110" height="58"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_Hw1dxC6TEei7UoQ9pjBF3w" type="2003" element="_HuxoQC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hw2E0C6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_Hw2E0S6TEei7UoQ9pjBF3w" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Hw2E0i6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Hw2E0y6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Hw1dxS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" fillColor="15329769"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hw1dxi6TEei7UoQ9pjBF3w" x="765" height="58"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_Hw2r4C6TEei7UoQ9pjBF3w" type="2003" element="_HuzdcC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hw3S8C6TEei7UoQ9pjBF3w" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_Hw36AC6TEei7UoQ9pjBF3w" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_Hw69UC6TEei7UoQ9pjBF3w" type="3010" element="_HvYsQC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw69US6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw69Ui6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw7kYC6TEei7UoQ9pjBF3w" type="3010" element="_HvZTUC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw7kYS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw7kYi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw7kYy6TEei7UoQ9pjBF3w" type="3010" element="_HvZ6YC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw7kZC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw7kZS6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw8LcC6TEei7UoQ9pjBF3w" type="3010" element="_HvahcC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw8LcS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw8Lci6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw8ygC6TEei7UoQ9pjBF3w" type="3010" element="_HvbvkC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw8ygS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw8ygi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw8ygy6TEei7UoQ9pjBF3w" type="3010" element="_HvcWoC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw8yhC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw8yhS6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw9ZkC6TEei7UoQ9pjBF3w" type="3010" element="_HvcWoi6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw9ZkS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw9Zki6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw9Zky6TEei7UoQ9pjBF3w" type="3010" element="_HvdkwC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw9ZlC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw9ZlS6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw-AoC6TEei7UoQ9pjBF3w" type="3010" element="_Hvdkwi6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw-AoS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw-Aoi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw-nsC6TEei7UoQ9pjBF3w" type="3010" element="_Hvey4S6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw-nsS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw-nsi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw-nsy6TEei7UoQ9pjBF3w" type="3010" element="_HvfZ8S6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw-ntC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw-ntS6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw_OwC6TEei7UoQ9pjBF3w" type="3010" element="_HvgBAS6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw_OwS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw_Owi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Hw_10C6TEei7UoQ9pjBF3w" type="3010" element="_HvhPIC6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Hw_10S6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Hw_10i6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_HxC5IC6TEei7UoQ9pjBF3w" type="3010" element="_HvhPIi6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_HxC5IS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_HxC5Ii6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_HxDgMC6TEei7UoQ9pjBF3w" type="3010" element="_Hvh2MS6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_HxDgMS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_HxDgMi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_HxEuUC6TEei7UoQ9pjBF3w" type="3010" element="_HvidQS6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_HxEuUS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_HxEuUi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_HxF8cC6TEei7UoQ9pjBF3w" type="3010" element="_HvjEUS6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_HxF8cS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_HxF8ci6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_HxF8cy6TEei7UoQ9pjBF3w" type="3010" element="_HvjrYS6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_HxF8dC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_HxF8dS6TEei7UoQ9pjBF3w"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_HxGjgC6TEei7UoQ9pjBF3w" type="3010" element="_HvkScS6TEei7UoQ9pjBF3w">
+              <styles xmi:type="notation:FontStyle" xmi:id="_HxGjgS6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_HxGjgi6TEei7UoQ9pjBF3w"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_Hw36AS6TEei7UoQ9pjBF3w"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_Hw36Ai6TEei7UoQ9pjBF3w"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_Hw2r4S6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hw2r4i6TEei7UoQ9pjBF3w" x="15"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_CiUKcC6TEei7UoQ9pjBF3w"/>
+        <edges xmi:type="notation:Edge" xmi:id="_HxN4QC6TEei7UoQ9pjBF3w" type="4001" element="_HwLWcC6TEei7UoQ9pjBF3w" source="_Hw0PoC6TEei7UoQ9pjBF3w" target="_Hwth8C6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxPtcC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxPtcS6TEei7UoQ9pjBF3w" x="-51" y="9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxQ7kC6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxQ7kS6TEei7UoQ9pjBF3w" x="17" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxRioC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxRioS6TEei7UoQ9pjBF3w" x="14"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxOfUC6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxOfUS6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxOfUi6TEei7UoQ9pjBF3w" points="[-6, 2, 142, 32]$[-178, 2, -30, 32]$[-178, -65, -30, -35]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxchwC6TEei7UoQ9pjBF3w" id="(0.058333333333333334,0.17294117647058824)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxchwS6TEei7UoQ9pjBF3w" id="(0.75,1.6041379310344825)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxdI0C6TEei7UoQ9pjBF3w" type="4001" element="_HwSrMC6TEei7UoQ9pjBF3w" source="_Hw0PoC6TEei7UoQ9pjBF3w" target="_Hwth8C6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxdI1C6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxdI1S6TEei7UoQ9pjBF3w" x="153" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxdv4C6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxdv4S6TEei7UoQ9pjBF3w" x="-13"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxdv4i6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxdv4y6TEei7UoQ9pjBF3w" x="-205" y="-71"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxdI0S6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxdI0i6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxdI0y6TEei7UoQ9pjBF3w" points="[18, -11, 232, 51]$[50, -11, 264, 51]$[50, -121, 264, -59]$[-212, -121, 2, -59]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hxdv5C6TEei7UoQ9pjBF3w" id="(0.85,0.32666666666666666)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hxdv5S6TEei7UoQ9pjBF3w" id="(0.9833333333333333,1.1986206896551723)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Hxdv5i6TEei7UoQ9pjBF3w" type="4001" element="_HwT5UC6TEei7UoQ9pjBF3w" source="_Hw0PoC6TEei7UoQ9pjBF3w" target="_Hw0PoC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hxdv6i6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxdv6y6TEei7UoQ9pjBF3w" x="-1" y="67"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxdv7C6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxdv7S6TEei7UoQ9pjBF3w" x="-42" y="22"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxeW8C6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxeW8S6TEei7UoQ9pjBF3w" x="44" y="-10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Hxdv5y6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Hxdv6C6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hxdv6S6TEei7UoQ9pjBF3w" points="[59, -21, 2, -15]$[195, -21, 138, -15]$[195, 1, 138, 7]$[59, 1, 2, 7]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxeW8i6TEei7UoQ9pjBF3w" id="(0.5,0.9607843137254902)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxeW8y6TEei7UoQ9pjBF3w" id="(0.9833333333333333,0.8490566037735849)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxeW9C6TEei7UoQ9pjBF3w" type="4001" element="_HwVHcC6TEei7UoQ9pjBF3w" source="_Hw0PoC6TEei7UoQ9pjBF3w" target="_Hw02sy6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hxe-AC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxe-AS6TEei7UoQ9pjBF3w" x="-195" y="8"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxe-Ai6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxe-Ay6TEei7UoQ9pjBF3w" x="-43" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxe-BC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxe-BS6TEei7UoQ9pjBF3w" x="34" y="353"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxeW9S6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxeW9i6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxeW9y6TEei7UoQ9pjBF3w" points="[-3, 1, 420, 66]$[-422, 1, 1, 66]$[-422, -87, 1, -22]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxflEC6TEei7UoQ9pjBF3w" id="(0.03333333333333333,0.5505757858699035)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxflES6TEei7UoQ9pjBF3w" id="(0.13333333333333333,1.4000000000000001)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxflEi6TEei7UoQ9pjBF3w" type="4001" element="_HwWVkC6TEei7UoQ9pjBF3w" source="_Hw02sy6TEei7UoQ9pjBF3w" target="_Hw1dxC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxgMIC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxgMIS6TEei7UoQ9pjBF3w" x="-49" y="-9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxgMIi6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxgMIy6TEei7UoQ9pjBF3w" x="476" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxgMJC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxgMJS6TEei7UoQ9pjBF3w" x="25" y="-97"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxflEy6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxflFC6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxflFS6TEei7UoQ9pjBF3w" points="[-5, -41, -619, 68]$[-5, -12, -619, 97]$[655, -12, 41, 97]$[655, -151, 41, -42]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxgMJi6TEei7UoQ9pjBF3w" id="(0.3416666666666667,1.7325)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxgMJy6TEei7UoQ9pjBF3w" id="(0.5,1.75)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxgMKC6TEei7UoQ9pjBF3w" type="4001" element="_HwXjsy6TEei7UoQ9pjBF3w" source="_Hw02sy6TEei7UoQ9pjBF3w" target="_Hw1dxC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxgzMC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxgzMS6TEei7UoQ9pjBF3w" x="-39" y="-9"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxgzMi6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxgzMy6TEei7UoQ9pjBF3w" x="442" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxgzNC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxgzNS6TEei7UoQ9pjBF3w" x="33" y="-72"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxgMKS6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxgMKi6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxgMKy6TEei7UoQ9pjBF3w" points="[1, 56, -594, 68]$[1, 65, -594, 77]$[611, 65, 16, 77]$[611, -54, 16, -42]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxhaQC6TEei7UoQ9pjBF3w" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxhaQS6TEei7UoQ9pjBF3w" id="(0.5,1.75)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxhaQi6TEei7UoQ9pjBF3w" type="4001" element="_HwYx0C6TEei7UoQ9pjBF3w" source="_Hw02sy6TEei7UoQ9pjBF3w" target="_Hwth8C6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxhaRi6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxhaRy6TEei7UoQ9pjBF3w" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxhaSC6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxhaSS6TEei7UoQ9pjBF3w" x="9" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxhaSi6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxhaSy6TEei7UoQ9pjBF3w" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxhaQy6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxhaRC6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxhaRS6TEei7UoQ9pjBF3w" points="[59, 27, -110, -55]$[146, 27, -23, -55]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxiBUC6TEei7UoQ9pjBF3w" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxiBUS6TEei7UoQ9pjBF3w" id="(0.2,1.4182758620689655)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxiBUi6TEei7UoQ9pjBF3w" type="4001" element="_HwZ_8y6TEei7UoQ9pjBF3w" source="_Hw1dxC6TEei7UoQ9pjBF3w" target="_Hwth8C6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxioYC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxioYS6TEei7UoQ9pjBF3w" x="163" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxioYi6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxioYy6TEei7UoQ9pjBF3w" x="15" y="5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxioZC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxioZS6TEei7UoQ9pjBF3w" x="-226" y="-119"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxiBUy6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxiBVC6TEei7UoQ9pjBF3w" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxiBVS6TEei7UoQ9pjBF3w" points="[-9, 56, 381, -149]$[-9, 145, 381, -60]$[-331, 145, 59, -60]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxjPcC6TEei7UoQ9pjBF3w" id="(0.5,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxjPcS6TEei7UoQ9pjBF3w" id="(0.5,1.6379310344827587)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Hxkdki6TEei7UoQ9pjBF3w" type="4001" element="_HwgtoC6TEei7UoQ9pjBF3w" source="_Hw0PoC6TEei7UoQ9pjBF3w" target="_HwyacC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxlEoC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxlEoS6TEei7UoQ9pjBF3w" x="-45" y="19"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxlEoi6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxlEoy6TEei7UoQ9pjBF3w" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxlEpC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxlEpS6TEei7UoQ9pjBF3w" x="-62" y="5"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Hxkdky6TEei7UoQ9pjBF3w" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxkdlC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxkdlS6TEei7UoQ9pjBF3w" points="[0, -2, -8, 214]$[0, -132, -8, 84]$[0, -132, -8, 84]$[0, -171, -8, 45]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxlrsC6TEei7UoQ9pjBF3w" id="(0.13333333333333333,0.05660377358490566)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxlrsS6TEei7UoQ9pjBF3w" id="(0.4630541871921182,0.20689655172413793)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Hxlrsi6TEei7UoQ9pjBF3w" type="4001" element="_HwhUsC6TEei7UoQ9pjBF3w" source="_Hw02sy6TEei7UoQ9pjBF3w" target="_HwyacC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxmSwC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxmSwS6TEei7UoQ9pjBF3w" x="65" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxmSwi6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxmSwy6TEei7UoQ9pjBF3w" x="58" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxmSxC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxmSxS6TEei7UoQ9pjBF3w" x="48" y="-2"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Hxlrsy6TEei7UoQ9pjBF3w" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxlrtC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxlrtS6TEei7UoQ9pjBF3w" points="[0, -6, -296, 32]$[0, -46, -296, -8]$[263, -46, -33, -8]$[263, -60, -33, -22]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hxng4C6TEei7UoQ9pjBF3w" id="(0.9083333333333333,0.12250000000000001)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hxng4S6TEei7UoQ9pjBF3w" id="(0.19207980199504987,1.4000000000000001)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxoH8C6TEei7UoQ9pjBF3w" type="4001" element="_Hwii0C6TEei7UoQ9pjBF3w" source="_HwyacC6TEei7UoQ9pjBF3w" target="_Hw0PoC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxoH9C6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxoH9S6TEei7UoQ9pjBF3w" x="41" y="-7"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxoH9i6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxoH9y6TEei7UoQ9pjBF3w" y="-19"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxoH-C6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxoH-S6TEei7UoQ9pjBF3w" x="11" y="-41"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxoH8S6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxoH8i6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxoH8y6TEei7UoQ9pjBF3w" points="[17, 7, -14, -218]$[17, 176, -14, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxovAC6TEei7UoQ9pjBF3w" id="(0.49004975124378103,0.875)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxovAS6TEei7UoQ9pjBF3w" id="(0.5,0.9607843137254902)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxovAi6TEei7UoQ9pjBF3w" type="4001" element="_HwkYAC6TEei7UoQ9pjBF3w" source="_HwyacC6TEei7UoQ9pjBF3w" target="_HwzBhC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxovBi6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxovBy6TEei7UoQ9pjBF3w" x="-40"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxpWEC6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxpWES6TEei7UoQ9pjBF3w" x="22" y="8"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxpWEi6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxpWEy6TEei7UoQ9pjBF3w" x="-23" y="-7"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxovAy6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxovBC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8" bold="true"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxovBS6TEei7UoQ9pjBF3w" points="[-98, -20, 232, -20]$[-197, -20, 133, -20]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxpWFC6TEei7UoQ9pjBF3w" id="(0.49004975124378103,0.875)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxpWFS6TEei7UoQ9pjBF3w" id="(0.5,0.875)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxpWFi6TEei7UoQ9pjBF3w" type="4001" element="_HwlmIC6TEei7UoQ9pjBF3w" source="_HwzBhC6TEei7UoQ9pjBF3w" target="_Hw02sy6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_Hxp9IC6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxp9IS6TEei7UoQ9pjBF3w" x="16" y="6"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxp9Ii6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxp9Iy6TEei7UoQ9pjBF3w" x="7" y="-5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Hxp9JC6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hxp9JS6TEei7UoQ9pjBF3w" x="-11" y="-6"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxpWFy6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxpWGC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxpWGS6TEei7UoQ9pjBF3w" points="[-89, 7, -15, -103]$[-89, 61, -15, -49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxqkMC6TEei7UoQ9pjBF3w" id="(0.5,0.875)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxqkMS6TEei7UoQ9pjBF3w" id="(0.5,0.875)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_HxqkMi6TEei7UoQ9pjBF3w" type="4001" element="_Hwm0QC6TEei7UoQ9pjBF3w" source="_HwyacC6TEei7UoQ9pjBF3w" target="_Hw0PoC6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_HxqkNi6TEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxqkNy6TEei7UoQ9pjBF3w" x="54" y="-7"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxrLQC6TEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxrLQS6TEei7UoQ9pjBF3w" x="3" y="-15"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_HxrLQi6TEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HxrLQy6TEei7UoQ9pjBF3w" x="-33" y="-61"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_HxqkMy6TEei7UoQ9pjBF3w" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_HxqkNC6TEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HxqkNS6TEei7UoQ9pjBF3w" points="[14, -35, 72, -219]$[38, -35, 96, -219]$[38, 155, 96, -29]$[1, 155, 59, -29]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxrLRC6TEei7UoQ9pjBF3w" id="(0.9308482712067803,1.61)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxrLRS6TEei7UoQ9pjBF3w" id="(0.5,0.9607843137254902)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_YJPvQC6WEei7UoQ9pjBF3w" type="4001" element="_YI9bYC6WEei7UoQ9pjBF3w" source="_HwyacC6TEei7UoQ9pjBF3w" target="_Hwth8C6TEei7UoQ9pjBF3w">
+          <children xmi:type="notation:Node" xmi:id="_YJQWUC6WEei7UoQ9pjBF3w" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YJQWUS6WEei7UoQ9pjBF3w" x="-54" y="-5"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_YJQ9YC6WEei7UoQ9pjBF3w" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YJQ9YS6WEei7UoQ9pjBF3w" x="-6" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_YJQ9Yi6WEei7UoQ9pjBF3w" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YJQ9Yy6WEei7UoQ9pjBF3w" x="-48" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_YJPvQS6WEei7UoQ9pjBF3w" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_YJPvQi6WEei7UoQ9pjBF3w" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YJPvQy6WEei7UoQ9pjBF3w" points="[0, -27, 92, -143]$[0, 12, 92, -104]$[-134, 12, -42, -104]$[-134, 27, -42, -89]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YJRkcC6WEei7UoQ9pjBF3w" id="(0.16252906322658067,1.4875)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YJRkcS6WEei7UoQ9pjBF3w" id="(0.85,1.536551724137931)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_HueGQC6TEei7UoQ9pjBF3w" name="NamedElement" tooltipText="" incomingEdges="_HwLWcC6TEei7UoQ9pjBF3w _HwSrMC6TEei7UoQ9pjBF3w _HwYx0C6TEei7UoQ9pjBF3w _HwZ_8y6TEei7UoQ9pjBF3w _YI9bYC6WEei7UoQ9pjBF3w" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//NamedElement"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//NamedElement"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Hukz8C6TEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" backgroundColor="233,233,233" foregroundColor="233,233,233">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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" xmi:id="_HvFKQC6TEei7UoQ9pjBF3w" name="name : EString" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="IORM.ecore#//NamedElement/name"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="IORM.ecore#//NamedElement/name"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvI0oC6TEei7UoQ9pjBF3w" 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" xmi:id="_HupFYC6TEei7UoQ9pjBF3w" name="ModelElement" tooltipText="" outgoingEdges="_Hwii0C6TEei7UoQ9pjBF3w _HwkYAC6TEei7UoQ9pjBF3w _Hwm0QC6TEei7UoQ9pjBF3w _YI9bYC6WEei7UoQ9pjBF3w" incomingEdges="_HwgtoC6TEei7UoQ9pjBF3w _HwhUsC6TEei7UoQ9pjBF3w" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//ModelElement"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//ModelElement"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_YIW-cC6WEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" backgroundColor="233,233,233" foregroundColor="233,233,233">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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" xmi:id="_HvKCwC6TEei7UoQ9pjBF3w" name="type : Type = CompartmentType" tooltipText="">
+        <target xmi:type="ecore:EAttribute" href="IORM.ecore#//ModelElement/type"/>
+        <semanticElements xmi:type="ecore:EAttribute" href="IORM.ecore#//ModelElement/type"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvMfAC6TEei7UoQ9pjBF3w" labelAlignment="LEFT" description="_HvLQ4C6TEei7UoQ9pjBF3w">
+          <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" xmi:id="_Huq6kC6TEei7UoQ9pjBF3w" name="Model" tooltipText="" outgoingEdges="_HwlmIC6TEei7UoQ9pjBF3w" incomingEdges="_HwkYAC6TEei7UoQ9pjBF3w" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//Model"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//Model"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_HusIsC6TEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" backgroundColor="233,233,233" foregroundColor="233,233,233">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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" xmi:id="_HvNtIC6TEei7UoQ9pjBF3w" name=" framedConfiguration : FRaMEDConfiguration" tooltipText="">
+        <target xmi:type="ecore:EReference" href="IORM.ecore#//Model/framedConfiguration"/>
+        <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Model/framedConfiguration"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvWQAC6TEei7UoQ9pjBF3w" labelAlignment="LEFT" color="114,159,207">
+          <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%20EReferenceNode']/@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%20EReferenceNode']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_HutW0C6TEei7UoQ9pjBF3w" name="Relation" tooltipText="" outgoingEdges="_HwLWcC6TEei7UoQ9pjBF3w _HwSrMC6TEei7UoQ9pjBF3w _HwT5UC6TEei7UoQ9pjBF3w _HwVHcC6TEei7UoQ9pjBF3w _HwgtoC6TEei7UoQ9pjBF3w" incomingEdges="_HwT5UC6TEei7UoQ9pjBF3w _Hwii0C6TEei7UoQ9pjBF3w _Hwm0QC6TEei7UoQ9pjBF3w" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//Relation"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//Relation"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Huuk8C6TEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" backgroundColor="233,233,233" foregroundColor="233,233,233">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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" xmi:id="_HuvMAC6TEei7UoQ9pjBF3w" name="Shape" tooltipText="" outgoingEdges="_HwWVkC6TEei7UoQ9pjBF3w _HwXjsy6TEei7UoQ9pjBF3w _HwYx0C6TEei7UoQ9pjBF3w _HwhUsC6TEei7UoQ9pjBF3w" incomingEdges="_HwVHcC6TEei7UoQ9pjBF3w _HwlmIC6TEei7UoQ9pjBF3w" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//Shape"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//Shape"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_HuwaIC6TEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" backgroundColor="233,233,233" foregroundColor="233,233,233">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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" xmi:id="_HuxoQC6TEei7UoQ9pjBF3w" name="Segment" tooltipText="" outgoingEdges="_HwZ_8y6TEei7UoQ9pjBF3w" incomingEdges="_HwWVkC6TEei7UoQ9pjBF3w _HwXjsy6TEei7UoQ9pjBF3w" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//Segment"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//Segment"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_HuyPUC6TEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" backgroundColor="233,233,233" foregroundColor="233,233,233">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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" xmi:id="_HuzdcC6TEei7UoQ9pjBF3w" name="Type" tooltipText="" width="12" height="10">
+      <target xmi:type="ecore:EEnum" href="IORM.ecore#//Type"/>
+      <semanticElements xmi:type="ecore:EEnum" href="IORM.ecore#//Type"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Hu0EgC6TEei7UoQ9pjBF3w" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="255,255,255">
+        <customFeatures>backgroundColor</customFeatures>
+        <customFeatures>foregroundColor</customFeatures>
+        <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%20EEnum']/@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%20EEnum']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_HvYsQC6TEei7UoQ9pjBF3w" name="CompartmentType" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/CompartmentType"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/CompartmentType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvYsQS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvZTUC6TEei7UoQ9pjBF3w" name="NaturalType" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/NaturalType"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/NaturalType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvZTUS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvZ6YC6TEei7UoQ9pjBF3w" name="RoleType" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleType"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvZ6YS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvahcC6TEei7UoQ9pjBF3w" name="DataType" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/DataType"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/DataType"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvahcS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvbvkC6TEei7UoQ9pjBF3w" name="RoleImplication" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleImplication"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleImplication"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvbvkS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvcWoC6TEei7UoQ9pjBF3w" name="RoleEquivalence" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleEquivalence"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleEquivalence"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvcWoS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvcWoi6TEei7UoQ9pjBF3w" name="Inheritance" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Inheritance"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Inheritance"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Hvc9sC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvdkwC6TEei7UoQ9pjBF3w" name="Relationship" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Relationship"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Relationship"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvdkwS6TEei7UoQ9pjBF3w" 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" xmi:id="_Hvdkwi6TEei7UoQ9pjBF3w" name="Total" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Total"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Total"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Hvey4C6TEei7UoQ9pjBF3w" 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" xmi:id="_Hvey4S6TEei7UoQ9pjBF3w" name="Cyclic" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Cyclic"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Cyclic"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvfZ8C6TEei7UoQ9pjBF3w" 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" xmi:id="_HvfZ8S6TEei7UoQ9pjBF3w" name="Irreflexive" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Irreflexive"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Irreflexive"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvgBAC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvgBAS6TEei7UoQ9pjBF3w" name="RoleProhibition" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleProhibition"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleProhibition"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvgoEC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvhPIC6TEei7UoQ9pjBF3w" name="RoleGroup" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleGroup"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RoleGroup"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvhPIS6TEei7UoQ9pjBF3w" 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" xmi:id="_HvhPIi6TEei7UoQ9pjBF3w" name="Group" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Group"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Group"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Hvh2MC6TEei7UoQ9pjBF3w" 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" xmi:id="_Hvh2MS6TEei7UoQ9pjBF3w" name="Fulfillment" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Fulfillment"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Fulfillment"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvidQC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvidQS6TEei7UoQ9pjBF3w" name="RelationshipImplication" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RelationshipImplication"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RelationshipImplication"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvjEUC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvjEUS6TEei7UoQ9pjBF3w" name="Acyclic" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Acyclic"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Acyclic"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvjrYC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvjrYS6TEei7UoQ9pjBF3w" name="Reflexive" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Reflexive"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/Reflexive"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_HvkScC6TEei7UoQ9pjBF3w" 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" xmi:id="_HvkScS6TEei7UoQ9pjBF3w" name="RelationshipExclusion" tooltipText="">
+        <target xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RelationshipExclusion"/>
+        <semanticElements xmi:type="ecore:EEnumLiteral" href="IORM.ecore#//Type/RelationshipExclusion"/>
+        <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Hvk5gC6TEei7UoQ9pjBF3w" 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" xmi:id="_HwLWcC6TEei7UoQ9pjBF3w" name="[0..1] sourceLabel" sourceNode="_HutW0C6TEei7UoQ9pjBF3w" targetNode="_HueGQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Relation/sourceLabel"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Relation/sourceLabel"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwQ2AC6TEei7UoQ9pjBF3w" description="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HwQ2AS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwQ2Ai6TEei7UoQ9pjBF3w" 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" xmi:id="_HwSrMC6TEei7UoQ9pjBF3w" name="[0..1] targetLabel" sourceNode="_HutW0C6TEei7UoQ9pjBF3w" targetNode="_HueGQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Relation/targetLabel"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Relation/targetLabel"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwTSQC6TEei7UoQ9pjBF3w" description="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HwTSQS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwTSQi6TEei7UoQ9pjBF3w" 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" xmi:id="_HwT5UC6TEei7UoQ9pjBF3w" name="[0..*] referencedRelation" sourceNode="_HutW0C6TEei7UoQ9pjBF3w" targetNode="_HutW0C6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Relation/referencedRelation"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Relation/referencedRelation"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwUgYC6TEei7UoQ9pjBF3w" 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" xmi:id="_HwUgYS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwUgYi6TEei7UoQ9pjBF3w" 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" xmi:id="_HwVHcC6TEei7UoQ9pjBF3w" name="[0..*] referencedRoles" sourceNode="_HutW0C6TEei7UoQ9pjBF3w" targetNode="_HuvMAC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Relation/referencedRoles"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Relation/referencedRoles"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwVugC6TEei7UoQ9pjBF3w" 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" xmi:id="_HwVugS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwVugi6TEei7UoQ9pjBF3w" 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" xmi:id="_HwWVkC6TEei7UoQ9pjBF3w" name="[0..1] firstSegment" sourceNode="_HuvMAC6TEei7UoQ9pjBF3w" targetNode="_HuxoQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Shape/firstSegment"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Shape/firstSegment"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwXjsC6TEei7UoQ9pjBF3w" description="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HwXjsS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwXjsi6TEei7UoQ9pjBF3w" 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" xmi:id="_HwXjsy6TEei7UoQ9pjBF3w" name="[0..1] secondSegment" sourceNode="_HuvMAC6TEei7UoQ9pjBF3w" targetNode="_HuxoQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Shape/secondSegment"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Shape/secondSegment"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwYKwC6TEei7UoQ9pjBF3w" description="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HwYKwS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwYKwi6TEei7UoQ9pjBF3w" 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" xmi:id="_HwYx0C6TEei7UoQ9pjBF3w" name="[0..1] description" sourceNode="_HuvMAC6TEei7UoQ9pjBF3w" targetNode="_HueGQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Shape/description"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Shape/description"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwZ_8C6TEei7UoQ9pjBF3w" description="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HwZ_8S6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwZ_8i6TEei7UoQ9pjBF3w" 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" xmi:id="_HwZ_8y6TEei7UoQ9pjBF3w" name="[0..*] elements" sourceNode="_HuxoQC6TEei7UoQ9pjBF3w" targetNode="_HueGQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Segment/elements"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Segment/elements"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwanAC6TEei7UoQ9pjBF3w" description="_HwNLoC6TEei7UoQ9pjBF3w" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HwanAS6TEei7UoQ9pjBF3w" showIcon="false">
+          <customFeatures>labelSize</customFeatures>
+        </centerLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwanAi6TEei7UoQ9pjBF3w" 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" xmi:id="_HwgtoC6TEei7UoQ9pjBF3w" sourceNode="_HutW0C6TEei7UoQ9pjBF3w" targetNode="_HupFYC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//Relation"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//Relation"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwgtoS6TEei7UoQ9pjBF3w" 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" xmi:id="_Hwgtoi6TEei7UoQ9pjBF3w" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Hwgtoy6TEei7UoQ9pjBF3w" 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" xmi:id="_HwhUsC6TEei7UoQ9pjBF3w" sourceNode="_HuvMAC6TEei7UoQ9pjBF3w" targetNode="_HupFYC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//Shape"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//Shape"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Hwh7wC6TEei7UoQ9pjBF3w" 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" xmi:id="_Hwh7wS6TEei7UoQ9pjBF3w" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Hwh7wi6TEei7UoQ9pjBF3w" 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" xmi:id="_Hwii0C6TEei7UoQ9pjBF3w" sourceNode="_HupFYC6TEei7UoQ9pjBF3w" targetNode="_HutW0C6TEei7UoQ9pjBF3w" beginLabel="[0..1] target" endLabel="[0..*] incomingRelations">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//ModelElement/incomingRelations"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//ModelElement/incomingRelations"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Relation/target"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Hwjw8C6TEei7UoQ9pjBF3w" sourceArrow="InputArrow" 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='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_Hwjw8S6TEei7UoQ9pjBF3w" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Hwjw8i6TEei7UoQ9pjBF3w" 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" xmi:id="_HwkYAC6TEei7UoQ9pjBF3w" sourceNode="_HupFYC6TEei7UoQ9pjBF3w" targetNode="_Huq6kC6TEei7UoQ9pjBF3w" beginLabel="[0..*] elements" endLabel="[1..1] container">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//ModelElement/container"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//ModelElement/container"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Model/elements"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Hwk_Ey6TEei7UoQ9pjBF3w" description="_Hwk_EC6TEei7UoQ9pjBF3w" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_Hwk_FC6TEei7UoQ9pjBF3w" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </beginLabelStyle>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_Hwk_FS6TEei7UoQ9pjBF3w" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </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='Bi-directional%20EC_EReference%20']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_HwlmIC6TEei7UoQ9pjBF3w" sourceNode="_Huq6kC6TEei7UoQ9pjBF3w" targetNode="_HuvMAC6TEei7UoQ9pjBF3w" beginLabel="[0..1] model" endLabel="[0..1] parent">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//Model/parent"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Shape/model"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Model/parent"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwmNMy6TEei7UoQ9pjBF3w" description="_HwmNMC6TEei7UoQ9pjBF3w" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_HwmNNC6TEei7UoQ9pjBF3w" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwmNNS6TEei7UoQ9pjBF3w" 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" xmi:id="_Hwm0QC6TEei7UoQ9pjBF3w" sourceNode="_HupFYC6TEei7UoQ9pjBF3w" targetNode="_HutW0C6TEei7UoQ9pjBF3w" beginLabel="[0..1] source" endLabel="[0..*] outgoingRelations">
+      <target xmi:type="ecore:EReference" href="IORM.ecore#//ModelElement/outgoingRelations"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//ModelElement/outgoingRelations"/>
+      <semanticElements xmi:type="ecore:EReference" href="IORM.ecore#//Relation/source"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HwnbUC6TEei7UoQ9pjBF3w" sourceArrow="InputArrow" 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='Bi-directional%20EC_EReference%20']/@style"/>
+        <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_HwnbUS6TEei7UoQ9pjBF3w" showIcon="false"/>
+        <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_HwnbUi6TEei7UoQ9pjBF3w" 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" xmi:id="_YI9bYC6WEei7UoQ9pjBF3w" sourceNode="_HupFYC6TEei7UoQ9pjBF3w" targetNode="_HueGQC6TEei7UoQ9pjBF3w">
+      <target xmi:type="ecore:EClass" href="IORM.ecore#//ModelElement"/>
+      <semanticElements xmi:type="ecore:EClass" href="IORM.ecore#//ModelElement"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_YI-pgC6WEei7UoQ9pjBF3w" 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" xmi:id="_YI-pgS6WEei7UoQ9pjBF3w" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_YI-pgi6WEei7UoQ9pjBF3w" 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>
+    <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" xmi:id="_ChtGdi6TEei7UoQ9pjBF3w"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+    <target xmi:type="ecore:EPackage" href="IORM.ecore#/"/>
+  </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/org.framed.iorm.model/model/IORM.ecore b/org.framed.iorm.model/model/IORM.ecore
index 43723b14ae830e6c8bcdd3e5575e6b8376089e4d..c21e45354e628263146bf7f5e3d7a33138a018fc 100644
--- a/org.framed.iorm.model/model/IORM.ecore
+++ b/org.framed.iorm.model/model/IORM.ecore
@@ -1,125 +1,125 @@
-<?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="iorm" nsURI="http://iorm/1.0" nsPrefix="org.framed.iorm.model">
-  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModelElement" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
-        eType="#//Model" eOpposite="#//Model/elements"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingRelations" upperBound="-1"
-        eType="#//Relation" eOpposite="#//Relation/target"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingRelations" upperBound="-1"
-        eType="#//Relation" eOpposite="#//Relation/source"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//Type"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Model">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
-        eType="#//ModelElement" containment="true" eOpposite="#//ModelElement/container"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Shape"
-        eOpposite="#//Shape/model"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="framedConfiguration" eType="#//featuremodel/FRaMEDConfiguration"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Relation" eSuperTypes="#//ModelElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//ModelElement"
-        eOpposite="#//ModelElement/incomingRelations"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//ModelElement"
-        eOpposite="#//ModelElement/outgoingRelations"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceLabel" eType="#//NamedElement"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="targetLabel" eType="#//NamedElement"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedRelation" upperBound="-1"
-        eType="#//Relation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedRoles" upperBound="-1"
-        eType="#//Shape"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Shape" eSuperTypes="#//ModelElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="firstSegment" eType="#//Segment"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="secondSegment" eType="#//Segment"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="model" eType="#//Model"
-        containment="true" eOpposite="#//Model/parent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="description" eType="#//NamedElement"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Segment">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
-        eType="#//NamedElement" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="Type">
-    <eLiterals name="CompartmentType"/>
-    <eLiterals name="NaturalType" value="1"/>
-    <eLiterals name="RoleType" value="2"/>
-    <eLiterals name="DataType" value="3"/>
-    <eLiterals name="RoleImplication" value="4"/>
-    <eLiterals name="RoleEquivalence" value="5"/>
-    <eLiterals name="Inheritance" value="6"/>
-    <eLiterals name="Relationship" value="7"/>
-    <eLiterals name="Total" value="8"/>
-    <eLiterals name="Cyclic" value="9"/>
-    <eLiterals name="Irreflexive" value="10"/>
-    <eLiterals name="RoleProhibition" value="11"/>
-    <eLiterals name="RoleGroup" value="12"/>
-    <eLiterals name="Group" value="13"/>
-    <eLiterals name="Fulfillment" value="14"/>
-    <eLiterals name="RelationshipImplication" value="15" literal="RelationshipImplication"/>
-    <eLiterals name="Acyclic" value="16"/>
-    <eLiterals name="Reflexive" value="17"/>
-    <eLiterals name="RelationshipExclusion" value="18" literal="RelationshipExclusion"/>
-  </eClassifiers>
-  <eSubpackages name="featuremodel" nsURI="http://iorm.featuremodel/1.0" nsPrefix="org.framed.iorm.model.featuremodel">
-    <eClassifiers xsi:type="ecore:EClass" name="FRaMEDFeature">
-      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
-          eType="#//featuremodel/FeatureName" defaultValueLiteral="RML_Feature_Model"
-          iD="true"/>
-      <eStructuralFeatures xsi:type="ecore:EAttribute" name="manuallySelected" lowerBound="1"
-          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
-    </eClassifiers>
-    <eClassifiers xsi:type="ecore:EClass" name="FRaMEDConfiguration">
-      <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
-          eType="#//featuremodel/FRaMEDFeature" containment="true"/>
-    </eClassifiers>
-    <eClassifiers xsi:type="ecore:EEnum" name="FeatureName">
-      <eLiterals name="RML_Feature_Model"/>
-      <eLiterals name="Role_Types" value="1"/>
-      <eLiterals name="Role_Structure" value="2"/>
-      <eLiterals name="Role_Properties" value="3"/>
-      <eLiterals name="Role_Behavior" value="4"/>
-      <eLiterals name="Role_Inheritance" value="5"/>
-      <eLiterals name="Playable" value="6"/>
-      <eLiterals name="Players" value="7"/>
-      <eLiterals name="Naturals" value="8"/>
-      <eLiterals name="Roles" value="9"/>
-      <eLiterals name="Compartments" value="10"/>
-      <eLiterals name="Dates" value="11"/>
-      <eLiterals name="Dependent" value="12"/>
-      <eLiterals name="On_Compartments" value="13"/>
-      <eLiterals name="On_Relationships" value="14"/>
-      <eLiterals name="Role_Constraints" value="15"/>
-      <eLiterals name="Role_Implication" value="16"/>
-      <eLiterals name="Role_Prohibition" value="17"/>
-      <eLiterals name="Role_Equivalence" value="18"/>
-      <eLiterals name="Group_Constraints" value="19"/>
-      <eLiterals name="Occurrence_Constraints" value="20"/>
-      <eLiterals name="Relationships" value="21"/>
-      <eLiterals name="Relationship_Constraints" value="22"/>
-      <eLiterals name="Relationship_Cardinality" value="23"/>
-      <eLiterals name="Intra_Relationship_Constraints" value="24"/>
-      <eLiterals name="Parthood_Constraints" value="25"/>
-      <eLiterals name="Inter_Relationship_Constraints" value="26"/>
-      <eLiterals name="Compartment_Types" value="27"/>
-      <eLiterals name="Compartment_Structure" value="28"/>
-      <eLiterals name="Compartment_Properties" value="29"/>
-      <eLiterals name="Compartment_Behavior" value="30"/>
-      <eLiterals name="Compartment_Inheritance" value="31"/>
-      <eLiterals name="Participants" value="32"/>
-      <eLiterals name="Contains_Compartments" value="33"/>
-      <eLiterals name="Playable_by_Defining_Compartment" value="34"/>
-      <eLiterals name="Data_Types" value="35"/>
-      <eLiterals name="Data_Type_Inheritance" value="36"/>
-    </eClassifiers>
-  </eSubpackages>
-</ecore:EPackage>
+<?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="iorm" nsURI="http://iorm/1.0" nsPrefix="org.framed.iorm.model">
+  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ModelElement" eSuperTypes="#//NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+        eType="#//Model" eOpposite="#//Model/elements"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingRelations" upperBound="-1"
+        eType="#//Relation" eOpposite="#//Relation/target"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingRelations" upperBound="-1"
+        eType="#//Relation" eOpposite="#//Relation/source"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//Type"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Model">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+        eType="#//ModelElement" containment="true" eOpposite="#//ModelElement/container"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Shape"
+        eOpposite="#//Shape/model"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="framedConfiguration" eType="#//featuremodel/FRaMEDConfiguration"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Relation" eSuperTypes="#//ModelElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//ModelElement"
+        eOpposite="#//ModelElement/incomingRelations"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//ModelElement"
+        eOpposite="#//ModelElement/outgoingRelations"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="sourceLabel" eType="#//NamedElement"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targetLabel" eType="#//NamedElement"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedRelation" upperBound="-1"
+        eType="#//Relation"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedRoles" upperBound="-1"
+        eType="#//Shape"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Shape" eSuperTypes="#//ModelElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="firstSegment" eType="#//Segment"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="secondSegment" eType="#//Segment"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="model" eType="#//Model"
+        containment="true" eOpposite="#//Model/parent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="description" eType="#//NamedElement"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Segment">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+        eType="#//NamedElement" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Type">
+    <eLiterals name="CompartmentType"/>
+    <eLiterals name="NaturalType" value="1"/>
+    <eLiterals name="RoleType" value="2"/>
+    <eLiterals name="DataType" value="3"/>
+    <eLiterals name="RoleImplication" value="4"/>
+    <eLiterals name="RoleEquivalence" value="5"/>
+    <eLiterals name="Inheritance" value="6"/>
+    <eLiterals name="Relationship" value="7"/>
+    <eLiterals name="Total" value="8"/>
+    <eLiterals name="Cyclic" value="9"/>
+    <eLiterals name="Irreflexive" value="10"/>
+    <eLiterals name="RoleProhibition" value="11"/>
+    <eLiterals name="RoleGroup" value="12"/>
+    <eLiterals name="Group" value="13"/>
+    <eLiterals name="Fulfillment" value="14"/>
+    <eLiterals name="RelationshipImplication" value="15" literal="RelationshipImplication"/>
+    <eLiterals name="Acyclic" value="16"/>
+    <eLiterals name="Reflexive" value="17"/>
+    <eLiterals name="RelationshipExclusion" value="18" literal="RelationshipExclusion"/>
+  </eClassifiers>
+  <eSubpackages name="featuremodel" nsURI="http://iorm.featuremodel/1.0" nsPrefix="org.framed.iorm.model.featuremodel">
+    <eClassifiers xsi:type="ecore:EClass" name="FRaMEDFeature">
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
+          eType="#//featuremodel/FeatureName" defaultValueLiteral="RML_Feature_Model"
+          iD="true"/>
+      <eStructuralFeatures xsi:type="ecore:EAttribute" name="manuallySelected" lowerBound="1"
+          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EClass" name="FRaMEDConfiguration">
+      <eStructuralFeatures xsi:type="ecore:EReference" name="features" upperBound="-1"
+          eType="#//featuremodel/FRaMEDFeature" containment="true"/>
+    </eClassifiers>
+    <eClassifiers xsi:type="ecore:EEnum" name="FeatureName">
+      <eLiterals name="RML_Feature_Model"/>
+      <eLiterals name="Role_Types" value="1"/>
+      <eLiterals name="Role_Structure" value="2"/>
+      <eLiterals name="Role_Properties" value="3"/>
+      <eLiterals name="Role_Behavior" value="4"/>
+      <eLiterals name="Role_Inheritance" value="5"/>
+      <eLiterals name="Playable" value="6"/>
+      <eLiterals name="Players" value="7"/>
+      <eLiterals name="Naturals" value="8"/>
+      <eLiterals name="Roles" value="9"/>
+      <eLiterals name="Compartments" value="10"/>
+      <eLiterals name="Dates" value="11"/>
+      <eLiterals name="Dependent" value="12"/>
+      <eLiterals name="On_Compartments" value="13"/>
+      <eLiterals name="On_Relationships" value="14"/>
+      <eLiterals name="Role_Constraints" value="15"/>
+      <eLiterals name="Role_Implication" value="16"/>
+      <eLiterals name="Role_Prohibition" value="17"/>
+      <eLiterals name="Role_Equivalence" value="18"/>
+      <eLiterals name="Group_Constraints" value="19"/>
+      <eLiterals name="Occurrence_Constraints" value="20"/>
+      <eLiterals name="Relationships" value="21"/>
+      <eLiterals name="Relationship_Constraints" value="22"/>
+      <eLiterals name="Relationship_Cardinality" value="23"/>
+      <eLiterals name="Intra_Relationship_Constraints" value="24"/>
+      <eLiterals name="Parthood_Constraints" value="25"/>
+      <eLiterals name="Inter_Relationship_Constraints" value="26"/>
+      <eLiterals name="Compartment_Types" value="27"/>
+      <eLiterals name="Compartment_Structure" value="28"/>
+      <eLiterals name="Compartment_Properties" value="29"/>
+      <eLiterals name="Compartment_Behavior" value="30"/>
+      <eLiterals name="Compartment_Inheritance" value="31"/>
+      <eLiterals name="Participants" value="32"/>
+      <eLiterals name="Contains_Compartments" value="33"/>
+      <eLiterals name="Playable_by_Defining_Compartment" value="34"/>
+      <eLiterals name="Data_Types" value="35"/>
+      <eLiterals name="Data_Type_Inheritance" value="36"/>
+    </eClassifiers>
+  </eSubpackages>
+</ecore:EPackage>
diff --git a/org.framed.iorm.model/model/IORM.genmodel b/org.framed.iorm.model/model/IORM.genmodel
index 42196deeede8b221f3a3c17576977a64652e0fc0..9eaf488dfb572055b3516551de90233fabc44a10 100644
--- a/org.framed.iorm.model/model/IORM.genmodel
+++ b/org.framed.iorm.model/model/IORM.genmodel
@@ -1,117 +1,117 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.framed.iorm.model/src" editDirectory="/org.framed.iorm.model.edit/src"
-    editorDirectory="/org.framed.iorm.model.editor/src" modelPluginID="org.framed.iorm.model"
-    modelName="ORM" modelPluginClass="" editPluginClass="org.framed.iorm.model.provider.ORMEditPlugin"
-    editorPluginClass="org.framed.iorm.model.presentation.ORMEditorPlugin" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    reflectiveDelegation="true" codeFormatting="true" importerID="org.eclipse.emf.importer.ecore"
-    featureDelegation="Reflective" complianceLevel="7.0" copyrightFields="false" editPluginID="org.framed.iorm.model.edit"
-    editorPluginID="org.framed.iorm.model.editor" operationReflection="true" importOrganizing="true">
-  <foreignModel>IORM.ecore</foreignModel>
-  <genPackages prefix="Orm" basePackage="org.framed" disposableProviderFactory="true"
-      interfacePackageSuffix="model" metaDataPackageSuffix="model" classPackageSuffix="model.impl"
-      utilityPackageSuffix="model.util" providerPackageSuffix="model.provider" presentationPackageSuffix="model.presentation"
-      testsPackageSuffix="model.tests" fileExtensions=".diagram" ecorePackage="IORM.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="IORM.ecore#//Type">
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/CompartmentType"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/NaturalType"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleType"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/DataType"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleImplication"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleEquivalence"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Inheritance"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Relationship"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Total"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Cyclic"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Irreflexive"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleProhibition"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleGroup"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Group"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Fulfillment"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RelationshipImplication"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Acyclic"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Reflexive"/>
-      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RelationshipExclusion"/>
-    </genEnums>
-    <genClasses ecoreClass="IORM.ecore#//NamedElement">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//NamedElement/name"/>
-    </genClasses>
-    <genClasses ecoreClass="IORM.ecore#//ModelElement">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference IORM.ecore#//ModelElement/container"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//ModelElement/incomingRelations"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//ModelElement/outgoingRelations"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//ModelElement/type"/>
-    </genClasses>
-    <genClasses ecoreClass="IORM.ecore#//Model">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Model/elements"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference IORM.ecore#//Model/parent"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Model/framedConfiguration"/>
-    </genClasses>
-    <genClasses ecoreClass="IORM.ecore#//Relation">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/target"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/source"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/sourceLabel"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/targetLabel"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/referencedRelation"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/referencedRoles"/>
-    </genClasses>
-    <genClasses ecoreClass="IORM.ecore#//Shape">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/firstSegment"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/secondSegment"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/model"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/description"/>
-    </genClasses>
-    <genClasses ecoreClass="IORM.ecore#//Segment">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Segment/elements"/>
-    </genClasses>
-    <nestedGenPackages prefix="Featuremodel" basePackage="org.framed.iorm" disposableProviderFactory="true"
-        ecorePackage="IORM.ecore#//featuremodel">
-      <genEnums typeSafeEnumCompatible="false" ecoreEnum="IORM.ecore#//featuremodel/FeatureName">
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/RML_Feature_Model"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Types"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Structure"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Properties"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Behavior"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Inheritance"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Playable"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Players"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Naturals"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Roles"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartments"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Dates"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Dependent"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/On_Compartments"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/On_Relationships"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Implication"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Prohibition"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Equivalence"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Group_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Occurrence_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Relationships"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Relationship_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Relationship_Cardinality"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Intra_Relationship_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Parthood_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Inter_Relationship_Constraints"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Types"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Structure"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Properties"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Behavior"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Inheritance"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Participants"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Contains_Compartments"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Playable_by_Defining_Compartment"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Data_Types"/>
-        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Data_Type_Inheritance"/>
-      </genEnums>
-      <genClasses ecoreClass="IORM.ecore#//featuremodel/FRaMEDFeature">
-        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//featuremodel/FRaMEDFeature/name"/>
-        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//featuremodel/FRaMEDFeature/manuallySelected"/>
-      </genClasses>
-      <genClasses ecoreClass="IORM.ecore#//featuremodel/FRaMEDConfiguration">
-        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//featuremodel/FRaMEDConfiguration/features"/>
-      </genClasses>
-    </nestedGenPackages>
-  </genPackages>
-</genmodel:GenModel>
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.framed.iorm.model/src" editDirectory="/org.framed.iorm.model.edit/src"
+    editorDirectory="/org.framed.iorm.model.editor/src" modelPluginID="org.framed.iorm.model"
+    modelName="ORM" modelPluginClass="" editPluginClass="org.framed.iorm.model.provider.ORMEditPlugin"
+    editorPluginClass="org.framed.iorm.model.presentation.ORMEditorPlugin" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    reflectiveDelegation="true" codeFormatting="true" importerID="org.eclipse.emf.importer.ecore"
+    featureDelegation="Reflective" complianceLevel="7.0" copyrightFields="false" editPluginID="org.framed.iorm.model.edit"
+    editorPluginID="org.framed.iorm.model.editor" operationReflection="true" importOrganizing="true">
+  <foreignModel>IORM.ecore</foreignModel>
+  <genPackages prefix="Orm" basePackage="org.framed" disposableProviderFactory="true"
+      interfacePackageSuffix="model" metaDataPackageSuffix="model" classPackageSuffix="model.impl"
+      utilityPackageSuffix="model.util" providerPackageSuffix="model.provider" presentationPackageSuffix="model.presentation"
+      testsPackageSuffix="model.tests" fileExtensions=".diagram" ecorePackage="IORM.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="IORM.ecore#//Type">
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/CompartmentType"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/NaturalType"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleType"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/DataType"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleImplication"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleEquivalence"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Inheritance"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Relationship"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Total"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Cyclic"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Irreflexive"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleProhibition"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RoleGroup"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Group"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Fulfillment"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RelationshipImplication"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Acyclic"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/Reflexive"/>
+      <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//Type/RelationshipExclusion"/>
+    </genEnums>
+    <genClasses ecoreClass="IORM.ecore#//NamedElement">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//NamedElement/name"/>
+    </genClasses>
+    <genClasses ecoreClass="IORM.ecore#//ModelElement">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference IORM.ecore#//ModelElement/container"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//ModelElement/incomingRelations"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//ModelElement/outgoingRelations"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//ModelElement/type"/>
+    </genClasses>
+    <genClasses ecoreClass="IORM.ecore#//Model">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Model/elements"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference IORM.ecore#//Model/parent"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Model/framedConfiguration"/>
+    </genClasses>
+    <genClasses ecoreClass="IORM.ecore#//Relation">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/target"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/source"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/sourceLabel"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/targetLabel"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/referencedRelation"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference IORM.ecore#//Relation/referencedRoles"/>
+    </genClasses>
+    <genClasses ecoreClass="IORM.ecore#//Shape">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/firstSegment"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/secondSegment"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/model"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Shape/description"/>
+    </genClasses>
+    <genClasses ecoreClass="IORM.ecore#//Segment">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//Segment/elements"/>
+    </genClasses>
+    <nestedGenPackages prefix="Featuremodel" basePackage="org.framed.iorm" disposableProviderFactory="true"
+        ecorePackage="IORM.ecore#//featuremodel">
+      <genEnums typeSafeEnumCompatible="false" ecoreEnum="IORM.ecore#//featuremodel/FeatureName">
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/RML_Feature_Model"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Types"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Structure"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Properties"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Behavior"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Inheritance"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Playable"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Players"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Naturals"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Roles"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartments"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Dates"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Dependent"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/On_Compartments"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/On_Relationships"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Implication"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Prohibition"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Role_Equivalence"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Group_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Occurrence_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Relationships"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Relationship_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Relationship_Cardinality"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Intra_Relationship_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Parthood_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Inter_Relationship_Constraints"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Types"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Structure"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Properties"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Behavior"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Compartment_Inheritance"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Participants"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Contains_Compartments"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Playable_by_Defining_Compartment"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Data_Types"/>
+        <genEnumLiterals ecoreEnumLiteral="IORM.ecore#//featuremodel/FeatureName/Data_Type_Inheritance"/>
+      </genEnums>
+      <genClasses ecoreClass="IORM.ecore#//featuremodel/FRaMEDFeature">
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//featuremodel/FRaMEDFeature/name"/>
+        <genFeatures createChild="false" ecoreFeature="ecore:EAttribute IORM.ecore#//featuremodel/FRaMEDFeature/manuallySelected"/>
+      </genClasses>
+      <genClasses ecoreClass="IORM.ecore#//featuremodel/FRaMEDConfiguration">
+        <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference IORM.ecore#//featuremodel/FRaMEDConfiguration/features"/>
+      </genClasses>
+    </nestedGenPackages>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/org.framed.iorm.transformation.test/META-INF/MANIFEST.MF b/org.framed.iorm.transformation.test/META-INF/MANIFEST.MF
index 69218139d564c24cae0a794189fd9aa5e343b029..3bcd422d9c42f98eb83102809ffbd902b5447e21 100644
--- a/org.framed.iorm.transformation.test/META-INF/MANIFEST.MF
+++ b/org.framed.iorm.transformation.test/META-INF/MANIFEST.MF
@@ -11,7 +11,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.framed.iorm.transformation;bundle-version="1.0.0",
  org.junit,
  org.rosi.crom.metamodel;visibility:=reexport,
- org.framed.iorm.model;bundle-version="0.1.0";visibility:=reexport,
+ org.framed.iorm.model;bundle-version="1.0.0";visibility:=reexport,
  org.eclipse.emf.ecore.xmi,
  org.eclipse.compare;bundle-version="3.5.501",
  org.eclipse.emf.compare;bundle-version="3.1.0",
diff --git a/org.framed.iorm.ui/META-INF/MANIFEST.MF b/org.framed.iorm.ui/META-INF/MANIFEST.MF
index 4c1d7105e85b753f2175ba2b78c1e838302ce505..0ab8a1ed7e51b6f2fab09113b24277eead3514f0 100644
--- a/org.framed.iorm.ui/META-INF/MANIFEST.MF
+++ b/org.framed.iorm.ui/META-INF/MANIFEST.MF
@@ -27,10 +27,9 @@ Require-Bundle: org.framed.iorm.featuremodel;bundle-version="1.0.0",
  org.eclipse.core.resources;bundle-version="3.11.1";visibility:=reexport,
  org.eclipse.ui.workbench,
  org.eclipse.emf.ecore,
- org.framed.iorm.editpolicymodel;bundle-version="0.1.0"
+ org.framed.iorm.editpolicymodel;bundle-version="0.1.0",
+ org.eclipse.osgi
 Import-Package: org.eclipse.graphiti.features;version="0.13.2",
- org.framed.iorm.model,
- org.framed.iorm.model.provider,
  org.framed.iorm.transformation
 Bundle-ClassPath: src/,
  .
diff --git a/org.framed.iorm.ui/core/attributeAndOperation/AttributePattern.java b/org.framed.iorm.ui/core/attributeAndOperation/AttributePattern.java
index fa84c5cbc3e7c18b4aa74c980fee1655b02e32b5..e7c876ac7bdb19db77fe46e768c27338ef360bad 100644
--- a/org.framed.iorm.ui/core/attributeAndOperation/AttributePattern.java
+++ b/org.framed.iorm.ui/core/attributeAndOperation/AttributePattern.java
@@ -49,17 +49,15 @@ public class AttributePattern extends AttributeOperationCommonPattern implements
 		Object businessObject =  getBusinessObjectForPictogramElement(pictogramElement);
 		if(businessObject instanceof org.framed.iorm.model.Shape) {
 			org.framed.iorm.model.Shape shape = (org.framed.iorm.model.Shape) businessObject; 
-			if(shape.getFirstSegment() != null && shape.getSecondSegment() !=null) {
-				if(util.usedInModelTypes(usedInReferences).contains(shape.getType())) {
-					boolean isShadowShape = false;
-					for(AbstractHasAttsAndOpsReference haaor : usedInReferences) {
-						if(UIUtil.isShape_IdValue((Shape) pictogramElement, haaor.getShadowShapeID()))
-							isShadowShape = true;
-					}
-					if(!isShadowShape) {
-						return EditPolicyService.getHandler(this.getDiagram()).canCreateAttribute(createContext, shape.getType());
-					}
-		}	}	}
+			if(util.usedInModelTypes(usedInReferences).contains(shape.getType())) {
+				boolean isShadowShape = false;
+				for(AbstractHasAttsAndOpsReference haaor : usedInReferences) {
+					if(UIUtil.isShape_IdValue((Shape) pictogramElement, haaor.getShadowShapeID()))
+						isShadowShape = true;
+				}
+				if(!isShadowShape)
+					return EditPolicyService.getHandler(this.getDiagram()).canCreateAttribute(createContext, shape.getType());
+		}	}
 		return false;
 	}
 
diff --git a/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationFeature.java b/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationFeature.java
index 8725897236fefbf2716eabdc84b5994e042ddda9..428e7e2b00a3615ed6378e58745e21211413c2c1 100644
--- a/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationFeature.java
+++ b/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationFeature.java
@@ -1,14 +1,19 @@
 package customFeatures;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.graphiti.features.IFeatureProvider;
 import org.eclipse.graphiti.features.context.ICustomContext;
 import org.eclipse.graphiti.mm.pictograms.Diagram;
 import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.pattern.IPattern;
 import org.framed.iorm.featuremodel.FRaMEDConfiguration;
 import org.framed.iorm.featuremodel.FRaMEDFeature;
 import org.framed.iorm.featuremodel.FeatureName;
 import org.framed.iorm.featuremodel.FeaturemodelFactory;
+import org.framed.iorm.model.Model;
 import org.framed.iorm.ui.FRaMEDCustomFeature;
 import org.framed.iorm.ui.UIUtil;
 
@@ -16,6 +21,7 @@ import de.ovgu.featureide.fm.core.base.IFeature;
 import de.ovgu.featureide.fm.core.configuration.Configuration;
 
 import org.framed.iorm.ui.palette.FeaturePaletteDescriptor; //*import for javadoc link
+import org.framed.iorm.ui.providers.FeatureProvider;
 import org.framed.iorm.ui.configuration.ChangeConfigurationContext; //*import for javadoc link
 import org.framed.iorm.ui.editPolicy.EditPolicyService;
 import org.framed.iorm.ui.configuration.ChangeConfigurationCommand; //*import for javadoc link
@@ -36,15 +42,58 @@ public class ChangeConfigurationFeature extends FRaMEDCustomFeature  {
 	 */
 	Literals literals = new Literals();
 	
+	/**
+	 * the register for the multipage editors to synchronize
+	 */
+	private List<ChangeConfigurationListener> registeredListeners = new ArrayList<ChangeConfigurationListener>();
+	
 	/**
 	 * Class constructor
+	 * <p>
+	 * It adds any pattern of its feature provider which is also a {@link ChangeConfigurationListener} to its list of
+	 * listeners.
 	 * @param featureProvider the feature provider the feature belongs to
 	 */
 	public ChangeConfigurationFeature(IFeatureProvider featureProvider) {
 		super(featureProvider);
 		FEATURE_NAME = literals.CHANGE_CONFIGURATION_FEATURE_NAME;
+		if(featureProvider instanceof FeatureProvider) {
+			FeatureProvider framedFeatureProvider = (FeatureProvider) featureProvider;
+			for(IPattern ipattern : framedFeatureProvider.getPatterns()) {
+				if(ipattern instanceof ChangeConfigurationListener) {
+					registerListener((ChangeConfigurationListener) ipattern);
+		}	}	}
+	}
+	
+	
+	
+	/**
+	 * operation to add a pattern to the list of listeners
+	 * @param multipageEditor the multipage editor to add
+	 */
+	private void registerListener(ChangeConfigurationListener listener) {
+		registeredListeners.add(listener);
 	}
 	
+	/**
+	 * notify listeners about changes in the configuration by giving the the old and new configuration in the form of a string list
+	 * @param framedFeatureConfiguration the newly changed configuration
+	 * @param oldFramedConfiguration the configuration before the changes
+	 */
+	private void notifyListeners(FRaMEDConfiguration framedFeatureConfiguration, FRaMEDConfiguration oldFramedConfiguration) {
+		List<String> newFramedFeatureNames = new ArrayList<String>();
+		for(FRaMEDFeature framedFeature : framedFeatureConfiguration.getFeatures()) {
+			newFramedFeatureNames.add(framedFeature.getName().getLiteral());
+		}
+		List<String> oldFramedFeatureNames = new ArrayList<String>();
+		for(FRaMEDFeature framedFeature : oldFramedConfiguration.getFeatures()) {
+			oldFramedFeatureNames.add(framedFeature.getName().getLiteral());
+		}
+		for(ChangeConfigurationListener listener : registeredListeners) {
+			listener.configurationChanged(newFramedFeatureNames, oldFramedFeatureNames);
+		}
+	}
+		
 	/**
 	 * this operation encapsulates when the custom feature should be visible in the context menu
 	 * @return false, since the feature is never visible in the context menu
@@ -72,31 +121,39 @@ public class ChangeConfigurationFeature extends FRaMEDCustomFeature  {
 	/**
 	 * This method changes the role models configuration using the following steps:
 	 * <p>
-	 * Step 1: It creates a new empty {@link FRaMEDConfiguration}.<br>
-	 * Step 2: For every selected feature in the feature editors configuration add an equivalent
+	 * Step 1: It saves the configuration before the changes done.<br>
+	 * Step 2: It executes the changes.<br>
+	 * Step 3: It creates a new empty {@link FRaMEDConfiguration}.<br>
+	 * Step 4: For every selected feature in the feature editors configuration add an equivalent
 	 *    	   {@link FRaMEDFeature} to the created FRaMEDConfiguration.<br>
-	 * Step 3: Set the created FRaMEDConfiguration as configuration of the edited role model.
-	 * Step 4: Refresh the palette to change the shown palette entries according to their feature expressions. 
-	 * 	       See {@link FeaturePaletteDescriptor} for further informations.
+	 * Step 5: Set the created FRaMEDConfiguration as configuration of the edited role model.
+	 * Step 6: Refresh the palette to change the shown palette entries according to their feature expressions. 
+	 * 	       See {@link FeaturePaletteDescriptor} for further informations.<br>
+	 * Step 7: It notifies its listeners about the changes in the configuration.
 	 * @throws ConfigurationInconsistentException
 	 */
 	@Override
 	public void execute(ICustomContext context) {
-		ChangeConfigurationContext cfmc = (ChangeConfigurationContext) context;
 		//Step 1
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());    
+		Model mainModel = UIUtil.getLinkedModelForDiagram(mainDiagram);
+		FRaMEDConfiguration oldFramedConfiguration = mainModel.getFramedConfiguration();
+		//Step 2
+		ChangeConfigurationContext cfmc = (ChangeConfigurationContext) context;
+		//Step 3
 		FRaMEDConfiguration framedFeatureConfiguration = FeaturemodelFactory.eINSTANCE.createFRaMEDConfiguration();
 		Configuration editorFeatureConfiguration = cfmc.getConfiguration();
 		for(IFeature editorFeature : editorFeatureConfiguration.getSelectedFeatures()) {
-			//Step 2
+			//Step 4
 			FRaMEDFeature framedFeature = FeaturemodelFactory.eINSTANCE.createFRaMEDFeature();
 			framedFeature.setName(FeatureName.getByName(editorFeature.getName()));
 			framedFeatureConfiguration.getFeatures().add(framedFeature);	
 		}
-		//Step 3
-		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());    
-		UIUtil.getLinkedModelForDiagram(mainDiagram).setFramedConfiguration(framedFeatureConfiguration);
-		EditPolicyService.setConfiguration(mainDiagram, framedFeatureConfiguration);
-		//Step 4 
+		//Step 5
+		mainModel.setFramedConfiguration(framedFeatureConfiguration);
+		//Step 6 
 		getFeatureProvider().getDiagramTypeProvider().getDiagramBehavior().refreshPalette();
+		//Step 7
+		notifyListeners(framedFeatureConfiguration, oldFramedConfiguration);
 	}
 }
diff --git a/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationListener.java b/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2b688efa8b64746d4b2c3afb282dff448076690
--- /dev/null
+++ b/org.framed.iorm.ui/core/customFeatures/ChangeConfigurationListener.java
@@ -0,0 +1,16 @@
+package customFeatures;
+
+import java.util.List;
+
+/**
+ * This interface is meant for graphiti pattern that 
+ */
+public interface ChangeConfigurationListener {
+		
+	/**
+	 * When the configuration is changed this operation is called on the listener implementing this interface.
+	 * @param newframedFeatureNames the newly changed configuration
+	 * @param oldframedFeatureNames the configuration before the changes
+	 */
+	public void configurationChanged(List<String> newframedFeatureNames, List<String> oldframedFeatureNames);
+}
diff --git a/org.framed.iorm.ui/core/inheritance/InheritancePattern.java b/org.framed.iorm.ui/core/inheritance/InheritancePattern.java
index 6690f7a407fa4c34323b9a8128eafef4845271e8..a2ebd79b8a39df28678f9644cc89e16998248352 100644
--- a/org.framed.iorm.ui/core/inheritance/InheritancePattern.java
+++ b/org.framed.iorm.ui/core/inheritance/InheritancePattern.java
@@ -181,15 +181,13 @@ public class InheritancePattern extends FRaMEDConnectionPattern {
 	    if(source instanceof org.framed.iorm.model.Shape && target instanceof org.framed.iorm.model.Shape) {
 			org.framed.iorm.model.Shape sourceShape = (org.framed.iorm.model.Shape) source;
 			org.framed.iorm.model.Shape targetShape = (org.framed.iorm.model.Shape) target;
-			if(sourceShape.getFirstSegment() != null && sourceShape.getSecondSegment() !=null &&
-			   targetShape.getFirstSegment() != null && targetShape.getSecondSegment() !=null) {
-			    if(sourceShape != null && targetShape != null) {
-			    	if(sourceShape.getContainer() == targetShape.getContainer() &&
-			    	   !(sourceShape.equals(targetShape))) {
-			    		if(types.contains(sourceShape.getType()))
-			    			if(targetShape.getType() == sourceShape.getType())
-								return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.INHERITANCE);
-		}	} 	}	}
+			if(sourceShape != null && targetShape != null) {
+				if(sourceShape.getContainer() == targetShape.getContainer() &&
+			       !(sourceShape.equals(targetShape))) {
+			    	if(types.contains(sourceShape.getType()))
+			    		if(targetShape.getType() == sourceShape.getType())
+							return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.INHERITANCE);
+		}	} 	}
 	    return false;
 	}
 	 
diff --git a/org.framed.iorm.ui/modules/rolemodel/AddRoleModelContext.java b/org.framed.iorm.ui/core/rolemodel/AddRoleModelContext.java
similarity index 100%
rename from org.framed.iorm.ui/modules/rolemodel/AddRoleModelContext.java
rename to org.framed.iorm.ui/core/rolemodel/AddRoleModelContext.java
diff --git a/org.framed.iorm.ui/modules/rolemodel/Literals.java b/org.framed.iorm.ui/core/rolemodel/Literals.java
similarity index 52%
rename from org.framed.iorm.ui/modules/rolemodel/Literals.java
rename to org.framed.iorm.ui/core/rolemodel/Literals.java
index f8790f8b8244a89f2dc91d442b62ec7703bdf56c..f5cf3309fc97e975885816b9d17210493af776b6 100644
--- a/org.framed.iorm.ui/modules/rolemodel/Literals.java
+++ b/org.framed.iorm.ui/core/rolemodel/Literals.java
@@ -4,13 +4,18 @@ import org.eclipse.graphiti.util.IColorConstant;
 import org.framed.iorm.ui.UILiterals;
 import org.framed.iorm.ui.palette.PaletteView;
 
+/**
+ * The literals of role models are mostly the same as the ones of a compartment type, since a created role model is handled like
+ * a compartment type if the corresponding feature is chosen. 
+ * @author Kevin Kassin
+ */
 public class Literals {
 	
 	/**
 	 * the features names used for the palette entry of this feature
 	 */
 	public final String FEATURE_NAME = "Role Model",
-						ELEMENTS_FEATURE_NAME = "RoleModelPattern";
+						ELEMENTS_FEATURE_NAME = "RoleModelElementPattern";
 	
 	/**
 	 * the standard name for a pictogramm element and business object created by the feature
@@ -20,9 +25,9 @@ public class Literals {
 	/**
 	 * the ids or the paths for icon used for palette entry of this feature
 	 */		
-	public final String	ICON_IMG_ID = "org.framed.iorm.ui.modules.roleModel",
-						ELEMENTS_ICON_IMG_ID = "org.framed.iorm.ui.modules.roleModelElements",
-						ICON_IMG_PATH = "modules/rolemodel/icon_rolemodel.png";
+	public final String	ICON_IMG_ID = "org.framed.iorm.ui.core.rolemodel",
+						ELEMENTS_ICON_IMG_ID = "org.framed.iorm.ui.core.roleModelElements",
+						ICON_IMG_PATH = "core/rolemodel/icon_rolemodel.png";
 	
 	/**
 	 * the kind of diagram this module's pattern creates
@@ -35,7 +40,7 @@ public class Literals {
 	public final PaletteView paletteView = PaletteView.COMPARTMENT_VIEW; 
 	
 	/**
-	 * identifiers used for role models: most are the same as a compartment types identifier
+	 * identifiers used for role models
 	 * <p>
 	 * can be for:<br>
 	 * (1) the container shape or<br>
@@ -51,23 +56,31 @@ public class Literals {
 	 * (11) the elements in the content preview segment or<br>
 	 * (12) the dot elements that indicate some elements are not shown in the preview
 	 */
-	public final String SHAPE_ID_COMPARTMENTTYPE_CONTAINER = "shape_ct_container",
-						SHAPE_ID_COMPARTMENTTYPE_TYPEBODY = "shape_ct_typebody",
-						SHAPE_ID_COMPARTMENTTYPE_SHADOW = "shape_ct_shadow",
-						SHAPE_ID_COMPARTMENTTYPE_NAME = "shape_ct_name", 
-						SHAPE_ID_COMPARTMENTTYPE_FIRSTLINE = "shape_ct_firstline",
-						SHAPE_ID_COMPARTMENTTYPE_SECONDLINE = "shape_ct_secondline", 
-						SHAPE_ID_COMPARTMENTTYPE_THIRDLINE = "shape_ct_thirdline", 
-						SHAPE_ID_COMPARTMENTTYPE_ATTRIBUTECONTAINER = "shape_ct_attcontainer",
-						SHAPE_ID_COMPARTMENTTYPE_OPERATIONCONTAINER = "shape_ct_opcontainer",
-						SHAPE_ID_COMPARTMENTTYPE_CONTENT_PREVIEW = "shape_ct_contentpreview",
-						SHAPE_ID_ROLEMODEL_ELEMENT = "shape_rm_element",
-						SHAPE_ID_ROLEMODEL_INDICATOR_DOTS = "shape_rm_indicator_dots";
+	public final String SHAPE_ID_ROLEMODEL_CONTAINER = "shape_ct_container",
+						SHAPE_ID_ROLEMODEL_TYPEBODY = "shape_ct_typebody",
+						SHAPE_ID_ROLEMODEL_SHADOW = "shape_ct_shadow",
+						SHAPE_ID_ROLEMODEL_NAME = "shape_ct_name", 
+						SHAPE_ID_ROLEMODEL_FIRSTLINE = "shape_ct_firstline",
+						SHAPE_ID_ROLEMODEL_SECONDLINE = "shape_ct_secondline", 
+						SHAPE_ID_ROLEMODEL_THIRDLINE = "shape_ct_thirdline", 
+						SHAPE_ID_ROLEMODEL_ATTRIBUTECONTAINER = "shape_ct_attcontainer",
+						SHAPE_ID_ROLEMODEL_OPERATIONCONTAINER = "shape_ct_opcontainer",
+						SHAPE_ID_ROLEMODEL_CONTENT_PREVIEW = "shape_ct_contentpreview",
+						SHAPE_ID_ROLEMODEL_ELEMENT = "shape_ct_element",
+						SHAPE_ID_ROLEMODEL_INDICATOR_DOTS = "shape_ct_indicator_dots";
+	
+	/**
+	 * messages used as direct editing tips
+	 */
+	public final String DIRECTEDITING_ROLEMODEL = "A compartment types name cant be empty or contain spaces. Numbers are allowed but not as first symbol.",
+						NAME_ALREADY_USED_ROLEMODEL = "Another compartment type already has the same name!";
 	
 	/**
 	 * reason messages used in the <em>updateNeeded</em> operations of the shape pattern
 	 */
-	public final String REASON_AMOUNT_ELEMENTS = "Different amount of elements.",
+	public final String REASON_NAME_NULL = "Name is null.",
+						REASON_NAME_OUT_OF_DATE = "Name is out of date.",
+						REASON_AMOUNT_ELEMENTS = "Different amount of elements.",
 						REASON_NAMES_ELEMENTS = "Different names of elements.";	
 	
 	/**
@@ -89,8 +102,8 @@ public class Literals {
 	 * (3) the color of backgrounds or<br>
 	 * (4) the color of graphiti shapes shadows
 	 */
-	public final IColorConstant COLOR_TEXT = IColorConstant.GRAY,
-			   					COLOR_LINES = IColorConstant.GRAY,
+	public final IColorConstant COLOR_TEXT = UILiterals.COLOR_TEXT,
+			   					COLOR_LINES = UILiterals.COLOR_LINES,
 			   					COLOR_BACKGROUND = UILiterals.COLOR_BACKGROUND,
-			   					COLOR_SHADOW = IColorConstant.LIGHT_GRAY;
+			   					COLOR_SHADOW = UILiterals.COLOR_SHADOW;
 }
diff --git a/org.framed.iorm.ui/modules/rolemodel/RoleModelElementPattern.java b/org.framed.iorm.ui/core/rolemodel/RoleModelElementPattern.java
similarity index 100%
rename from org.framed.iorm.ui/modules/rolemodel/RoleModelElementPattern.java
rename to org.framed.iorm.ui/core/rolemodel/RoleModelElementPattern.java
diff --git a/org.framed.iorm.ui/modules/rolemodel/RoleModelGroupingFeatureReference.java b/org.framed.iorm.ui/core/rolemodel/RoleModelGroupingFeatureReference.java
similarity index 73%
rename from org.framed.iorm.ui/modules/rolemodel/RoleModelGroupingFeatureReference.java
rename to org.framed.iorm.ui/core/rolemodel/RoleModelGroupingFeatureReference.java
index 471951f1cd8d0bee74390529a8e91cacd190bca2..caf2edef6168161ff91a84e86c0013760150cd0a 100644
--- a/org.framed.iorm.ui/modules/rolemodel/RoleModelGroupingFeatureReference.java
+++ b/org.framed.iorm.ui/core/rolemodel/RoleModelGroupingFeatureReference.java
@@ -20,9 +20,9 @@ public class RoleModelGroupingFeatureReference extends AbstractGroupingFeatureRe
 	public RoleModelGroupingFeatureReference() {
 		modelType = Type.COMPARTMENT_TYPE;
 		DIAGRAM_KIND = literals.DIAGRAM_KIND;
-		SHAPE_ID_CONTAINER = literals.SHAPE_ID_COMPARTMENTTYPE_CONTAINER;
-		SHAPE_ID_NAME = literals.SHAPE_ID_COMPARTMENTTYPE_NAME;
-		SHAPE_ID_TYPEBODY = literals.SHAPE_ID_COMPARTMENTTYPE_TYPEBODY;
+		SHAPE_ID_CONTAINER = literals.SHAPE_ID_ROLEMODEL_CONTAINER;
+		SHAPE_ID_NAME = literals.SHAPE_ID_ROLEMODEL_NAME;
+		SHAPE_ID_TYPEBODY = literals.SHAPE_ID_ROLEMODEL_TYPEBODY;
 		paletteView = literals.paletteView;
 	}
 }
diff --git a/org.framed.iorm.ui/modules/rolemodel/RoleModelPattern.java b/org.framed.iorm.ui/core/rolemodel/RoleModelPattern.java
similarity index 59%
rename from org.framed.iorm.ui/modules/rolemodel/RoleModelPattern.java
rename to org.framed.iorm.ui/core/rolemodel/RoleModelPattern.java
index 021d825a3f3fefbc41cca4df6a081b5176409302..0a95f89f000d1a348a860720a5b2b5a75d08248f 100644
--- a/org.framed.iorm.ui/modules/rolemodel/RoleModelPattern.java
+++ b/org.framed.iorm.ui/core/rolemodel/RoleModelPattern.java
@@ -7,6 +7,7 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.graphiti.features.IDeleteFeature;
+import org.eclipse.graphiti.features.IDirectEditingInfo;
 import org.eclipse.graphiti.features.IFeature;
 import org.eclipse.graphiti.features.IReason;
 import org.eclipse.graphiti.features.context.IAddContext;
@@ -36,9 +37,11 @@ import org.eclipse.graphiti.ui.editor.DiagramEditorInput;
 import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
+import org.framed.iorm.featuremodel.FRaMEDFeature;
 import org.framed.iorm.model.Model;
 import org.framed.iorm.model.ModelElement;
 import org.framed.iorm.model.OrmFactory;
+import org.framed.iorm.model.Segment;
 import org.framed.iorm.model.Type;
 import org.framed.iorm.ui.FRaMEDShapePattern;
 import org.framed.iorm.ui.UILiterals;
@@ -49,22 +52,26 @@ import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
 import org.framed.iorm.ui.palette.PaletteCategory;
 import org.framed.iorm.ui.palette.PaletteView;
 import org.framed.iorm.ui.palette.ViewVisibility;
+import org.framed.iorm.ui.references.AbstractAttributeAndOperationReference;
 import org.framed.iorm.ui.references.AbstractGroupingFeatureReference;
 import org.framed.iorm.ui.references.AbstractStepInReference;
 import org.framed.iorm.ui.wizards.RoleModelWizard;
 
 /**
- * This graphiti pattern class is used to work with role models, which {@link org.framed.iorm.model.Shape}s
- * of the type {@link Type#COMPARTMENT_TYPE} when compartment_type feature is not choosen.
+ * This graphiti pattern class is used to work with {@link org.framed.iorm.model.Shape}s
+ * of the type {@link Type#COMPARTMENT_TYPE} created by the role model feature in the editor.
  * <p>
- * It deals with the following aspects of role models:<br>
+ * It is mostly the same as the pattern of the compartment type, since a created role model is handled like
+ * a compartment type if the corresponding feature is chosen.
+ * <p> 
+ * It deals with the following aspects of role model:<br>
  * (1) adding a role model to the diagram, especially its pictogram elements<br>
  * (2) creating the role model, especially its business object<br>
- * (3) layout the group, especially setting lines and role models elements at the right positions<br>
- * (4) updating its content overview<br>
+ * (3) layout the group, especially setting lines and role model elements at the right positions<br>
+ * (4) updating the role model's content overview<br>
  * (5) moves the drop shadow with the type body and disables moving the drop shadow manually<br>
  * (6) resizes the drop shadow with the type body and disables resizing the drop shadow manually<br>
- * (7) deleting all the compartments pictogram elements and its diagram, also disables deleting the drop 
+ * (7) deleting all the role model's pictogram elements and its diagram, also disables deleting the drop 
  *     shadow manually
  * @author Kevin Kassin
  */
@@ -84,7 +91,12 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 * the reference to the step in feature 
 	 */
 	private final AbstractStepInReference stepInReference = UIUtil.getStepInFeatureReference();
-		
+	
+	/**
+	 * a reference class which encapsulates the dependency to the attribute and operation features
+	 */
+	private final AbstractAttributeAndOperationReference attOpsReference = UIUtil.getAttributeAndOperationFeatureReference();
+	
 	/**
 	 * the list of reference classes which save in module feature's shapes can group objects
 	 * @see AbstractGroupingFeatureReference
@@ -129,18 +141,24 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		if(stepInReference == null) return null;
 		return (ICustomFeature) UIUtil.findFeatureByName(customFeatures, stepInReference.getStepInFeatureName());
 	}
-		
+	
 	/**
 	 * checks if pattern is applicable for a given business object
-	 * @return true, if business object is a {@link org.framed.iorm.model.Shape} of type {@link Type#COMPARTMENT_TYPE}
+	 * @return true, if business object is a {@link org.framed.iorm.model.Shape} of type {@link Type#COMPARTMENT_TYPE} and the
+	 * compartment type feature is not chosen
 	 */
 	@Override
 	public boolean isMainBusinessObjectApplicable(Object businessObject) {
 		if(businessObject instanceof org.framed.iorm.model.Shape) {
 			org.framed.iorm.model.Shape shape = (org.framed.iorm.model.Shape) businessObject;
-			if(shape.getType() == Type.COMPARTMENT_TYPE && 
-			   shape.getFirstSegment()==null &&
-			   shape.getSecondSegment()==null) return true;
+			Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());
+			Model mainModel = (Model) getBusinessObjectForPictogramElement(mainDiagram);
+			List<String> framedFeatureNames = new ArrayList<String>();
+			for(FRaMEDFeature framedFeature : mainModel.getFramedConfiguration().getFeatures()) {
+				framedFeatureNames.add(framedFeature.getName().getLiteral());
+			}
+			if(shape.getType() == Type.COMPARTMENT_TYPE &&
+			   !(framedFeatureNames.contains("Compartment_Types"))) return true;
 		}
 		return false;
 	}
@@ -165,14 +183,13 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		return isMainBusinessObjectApplicable(businessObject);
 	}
 	
-	
 	// add feature
 	//~~~~~~~~~~~~~
 	/**
 	 * calculates if the role model can be added to the diagram
 	 * <p>
 	 * returns true if:<br>
-	 * (1) if the added business object is a role model and <br>
+	 * (1) if the added business object is a compartment type and <br>
 	 * (2) if the target container is a diagram with a model linked
 	 * @return if the role model can be added
 	 */
@@ -203,23 +220,32 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 * 			  <ul><li>name text</li></ul>
 	 * 			<li>first line container</li>
 	 * 			  <ul><li>first polyline</li></ul>
+	 * 			<li>attribute container shape</li>
+	 * 			  <ul><li>attribute container rectangle</li></ul>
+	 * 			<li>second line container</li>
+	 * 			  <ul><li>second polyline</li></ul>
+	 * 			<li>operation container shape</li>
+	 * 			  <ul><li>operation container rectangle</li></ul>
+	 * 			<li>third line container</li>
+	 * 			  <ul><li>third polyline</li></ul>
 	 * 			<li>model content preview container</li>
 	 * 			  <ul><li>model content preview rectangle</li></ul>
 	 * 		   </ul>
 	 * 	   </ul>
 	 * </ul> 
 	 * <p>
-	 * The (this patterns) role model diagram will be created outside of (this patterns) role models <em>container shape</em>. 
-	 * It can be found as child of the <em>container diagram</em> of the overall model. If its not clear what <em>container 
-	 * diagram</em> means, see {@link RoleModelWizard#createEmfFileForDiagram} for reference.
+	 * The role model's diagram will be created outside of the role model <em>container shape</em>. It can be 
+	 * found as child of the <em>container diagram</em> of the role model. If its not clear what <em>container diagram</em> 
+	 * means, see {@link RoleModelWizard#createEmfFileForDiagram} for reference.
 	 * <p>
 	 * It uses follows this steps:<br>
 	 * Step 1: It gets the new object, the diagram to create the role model in and calculates the height and width 
 	 * 		   of the role model's representation.<br>
 	 * Step 2: It creates the structure shown above.<br>
 	 * Step 3: It sets the shape identifiers for the created graphics algorithms of the role model.<br>
-	 * Step 4: It links the created shapes of the role model to its business objects.<br> 
-	 * Step 5: It enables anchors and layouting of the role model. Also updates the group it is created in.
+	 * Step 4: It links the created shapes of the group to its business objects.<br> 
+	 * Step 5: It enables direct editing, anchors and layouting of the role model. It also updates the group in which 
+	 * 		   its created, if any.
 	 */
 	@Override
 	public PictogramElement add(IAddContext addContext) {
@@ -259,16 +285,43 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		Shape firstLineShape = pictogramElementCreateService.createShape(typeBodyShape, false);
 		Polyline firstPolyline = graphicAlgorithmService.createPolyline(firstLineShape, new int[] {0, literals.HEIGHT_NAME_SHAPE, width, literals.HEIGHT_NAME_SHAPE});
 		firstPolyline.setForeground(manageColor(literals.COLOR_LINES));
-					
+				
+		//attribute container
+		ContainerShape attributeContainer = pictogramElementCreateService.createContainerShape(typeBodyShape, false);
+		Rectangle attributeRectangle = graphicAlgorithmService.createRectangle(attributeContainer);
+		attributeRectangle.setLineVisible(false);
+		attributeRectangle.setBackground(manageColor(literals.COLOR_BACKGROUND));
+		int horizontalFirstThird = util.calculateHorizontaltFirstThird(height);
+		graphicAlgorithmService.setLocationAndSize(attributeRectangle, literals.PUFFER_BETWEEN_ELEMENTS, literals.HEIGHT_NAME_SHAPE+literals.PUFFER_BETWEEN_ELEMENTS, 
+												   width-2*literals.PUFFER_BETWEEN_ELEMENTS, horizontalFirstThird-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS);
+		//second line
+		Shape secondLineShape = pictogramElementCreateService.createShape(typeBodyShape, false);	
+		Polyline secondPolyline = graphicAlgorithmService.createPolyline(secondLineShape, new int[] {0, horizontalFirstThird, width, horizontalFirstThird});
+		secondPolyline.setForeground(manageColor(literals.COLOR_LINES));
+				
+		//operation container
+		ContainerShape operationContainer = pictogramElementCreateService.createContainerShape(typeBodyShape, false);
+		Rectangle operationRectangle = graphicAlgorithmService.createRectangle(operationContainer);
+		operationRectangle.setLineVisible(false);
+		operationRectangle.setBackground(manageColor(literals.COLOR_BACKGROUND));
+		graphicAlgorithmService.setLocationAndSize(operationRectangle, literals.PUFFER_BETWEEN_ELEMENTS, horizontalFirstThird+literals.PUFFER_BETWEEN_ELEMENTS, 
+											 	   width-2*literals.PUFFER_BETWEEN_ELEMENTS, horizontalFirstThird-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS);
+		
+		//third line
+		Shape thirdLineShape = pictogramElementCreateService.createShape(typeBodyShape, false);	
+		int horizontalSecondThird = util.calculateHorizontaltSecondThird(height);
+		Polyline thirdPolyline = graphicAlgorithmService.createPolyline(thirdLineShape, new int[] {0, horizontalSecondThird, width, horizontalSecondThird});
+		thirdPolyline.setForeground(manageColor(literals.COLOR_LINES));
+			
 		//model content preview container
 		ContainerShape modelContainer = pictogramElementCreateService.createContainerShape(typeBodyShape, false);
 		Rectangle modelRectangle = graphicAlgorithmService.createRectangle(modelContainer);
-		modelRectangle.setBackground(manageColor(literals.COLOR_BACKGROUND));
 		modelRectangle.setLineVisible(false);
-		graphicAlgorithmService.setLocationAndSize(modelRectangle, literals.PUFFER_BETWEEN_ELEMENTS, literals.HEIGHT_NAME_SHAPE+literals.PUFFER_BETWEEN_ELEMENTS, 
-												   width-2*literals.PUFFER_BETWEEN_ELEMENTS, height-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS);	
+		modelRectangle.setBackground(manageColor(literals.COLOR_BACKGROUND));
+		graphicAlgorithmService.setLocationAndSize(modelRectangle, literals.PUFFER_BETWEEN_ELEMENTS, horizontalSecondThird+literals.PUFFER_BETWEEN_ELEMENTS, 
+												   width-2*literals.PUFFER_BETWEEN_ELEMENTS, horizontalFirstThird-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS);	
 		
-		//role model diagram
+		//role model's diagram
 		Diagram contentDiagram = pictogramElementCreateService.createDiagram(UILiterals.DIAGRAM_TYPE_ID, addedCompartmentType.getName(), 10, true);
 		UIUtil.setDiagram_KindValue(contentDiagram, literals.DIAGRAM_KIND);
 		AddRoleModelContext agctc = (AddRoleModelContext) addContext;
@@ -276,12 +329,16 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		getDiagram().getContainer().getChildren().add(contentDiagram);
 		
 		//Step 3
-		UIUtil.setShape_IdValue(containerShape, literals.SHAPE_ID_COMPARTMENTTYPE_CONTAINER);
-		UIUtil.setShape_IdValue(typeBodyShape, literals.SHAPE_ID_COMPARTMENTTYPE_TYPEBODY);
-		UIUtil.setShape_IdValue(dropShadowShape, literals.SHAPE_ID_COMPARTMENTTYPE_SHADOW);
-		UIUtil.setShape_IdValue(nameShape, literals.SHAPE_ID_COMPARTMENTTYPE_NAME);
-		UIUtil.setShape_IdValue(firstLineShape, literals.SHAPE_ID_COMPARTMENTTYPE_FIRSTLINE);
-		UIUtil.setShape_IdValue(modelContainer, literals.SHAPE_ID_COMPARTMENTTYPE_CONTENT_PREVIEW);
+		UIUtil.setShape_IdValue(containerShape, literals.SHAPE_ID_ROLEMODEL_CONTAINER);
+		UIUtil.setShape_IdValue(typeBodyShape, literals.SHAPE_ID_ROLEMODEL_TYPEBODY);
+		UIUtil.setShape_IdValue(dropShadowShape, literals.SHAPE_ID_ROLEMODEL_SHADOW);
+		UIUtil.setShape_IdValue(nameShape, literals.SHAPE_ID_ROLEMODEL_NAME);
+		UIUtil.setShape_IdValue(firstLineShape, literals.SHAPE_ID_ROLEMODEL_FIRSTLINE);
+		UIUtil.setShape_IdValue(attributeContainer, literals.SHAPE_ID_ROLEMODEL_ATTRIBUTECONTAINER);
+		UIUtil.setShape_IdValue(secondLineShape, literals.SHAPE_ID_ROLEMODEL_SECONDLINE);
+		UIUtil.setShape_IdValue(operationContainer, literals.SHAPE_ID_ROLEMODEL_OPERATIONCONTAINER);
+		UIUtil.setShape_IdValue(thirdLineShape, literals.SHAPE_ID_ROLEMODEL_THIRDLINE);
+		UIUtil.setShape_IdValue(modelContainer, literals.SHAPE_ID_ROLEMODEL_CONTENT_PREVIEW);
 		
 		//Step 4
 		link(containerShape, addedCompartmentType);
@@ -289,9 +346,18 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		link(dropShadowShape, addedCompartmentType);
 		link(nameShape, addedCompartmentType);
 		link(firstLineShape, addedCompartmentType);
+		link(attributeContainer, addedCompartmentType);
+		link(secondLineShape, addedCompartmentType);
+		link(operationContainer, addedCompartmentType);
+		link(thirdLineShape, addedCompartmentType);
 		link(modelContainer, addedCompartmentType);
 		
 		//Step 5
+		getFeatureProvider().getDirectEditingInfo().setActive(true);
+		IDirectEditingInfo directEditingInfo = getFeatureProvider().getDirectEditingInfo();
+		directEditingInfo.setMainPictogramElement(typeBodyShape);
+		directEditingInfo.setPictogramElement(nameShape);
+		directEditingInfo.setGraphicsAlgorithm(text);
 		pictogramElementCreateService.createChopboxAnchor(typeBodyShape);
 		layoutPictogramElement(containerShape);
 		updateContainingGroupingFeaturesObject();
@@ -323,7 +389,9 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 * <ul>
 	 *   <li>(org.framed.iorm.model.Shape) role model</li>
 	 * 	   <ul>
-	 * 	     <li>(Model) model</li> 
+	 * 	     <li>(Segment) first segment (for attributes)</li> 
+	 *  	 <li>(Segment) second segment (for operations)</li> 
+	 * 	     <li>(Model) role model model</li> 
 	 * 	   </ul>
 	 * </ul> 
 	 * <p>
@@ -331,37 +399,44 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 * Step 1: It creates the structure shown above.<br>
 	 * Step 2: It adds the new role model to the elements of the model of the diagram in which its created.<br>
 	 * Step 3: It call the add function to add the pictogram elements of the role model using a 
-	 * 		   {@link AddRoleModelTypeContext}.
+	 * 		   {@link AddRoleModelContext}.
 	 * @return the created business object of the role model
 	 */
 	@Override
 	public Object[] create(ICreateContext createContext) {
 		//Step 1
 		//compartment type
-		org.framed.iorm.model.Shape newRoleModel = OrmFactory.eINSTANCE.createShape();
-		newRoleModel.setType(Type.COMPARTMENT_TYPE);
+		org.framed.iorm.model.Shape newCompartmentType = OrmFactory.eINSTANCE.createShape();
+		newCompartmentType.setType(Type.COMPARTMENT_TYPE);
 		String standardName = UIUtil.calculateStandardNameRoleModelWide(getDiagram(), Type.COMPARTMENT_TYPE, literals.STANDARD_NAME);
-		newRoleModel.setName(standardName);
+		newCompartmentType.setName(standardName);
+		//create segments
+		Segment attributeSegment = OrmFactory.eINSTANCE.createSegment(),
+				operationSegment = OrmFactory.eINSTANCE.createSegment();
+		getDiagram().eResource().getContents().add(attributeSegment);
+		getDiagram().eResource().getContents().add(operationSegment);
+		newCompartmentType.setFirstSegment(attributeSegment);
+		newCompartmentType.setSecondSegment(operationSegment);
 		//model
 		Model compartmentsModel = OrmFactory.eINSTANCE.createModel();
 		getDiagram().eResource().getContents().add(compartmentsModel);
-		newRoleModel.setModel(compartmentsModel);
+		newCompartmentType.setModel(compartmentsModel);
 		
 		//Step 2
 		Model model = UIUtil.getLinkedModelForDiagram((Diagram) getDiagram());
-		if(newRoleModel.eResource() != null) getDiagram().eResource().getContents().add(newRoleModel);
-		model.getElements().add(newRoleModel);
-		newRoleModel.setContainer(model);
+		if(newCompartmentType.eResource() != null) getDiagram().eResource().getContents().add(newCompartmentType);
+		model.getElements().add(newCompartmentType);
+		newCompartmentType.setContainer(model);
 	
 		//Step 3
 		AddRoleModelContext actc = new AddRoleModelContext();
 		UIUtil.getAddContextForCreateShapeContext(actc, createContext);
-		actc.setNewObject(newRoleModel);
+		actc.setNewObject(newCompartmentType);
 		actc.setModelToLink(compartmentsModel);
 		if(canAdd(actc)) add(actc);
-		return new Object[] { newRoleModel };
+		return new Object[] { newCompartmentType };
 	}
-		
+	
 	//layout feature
 	//~~~~~~~~~~~~~~
 	/**
@@ -373,7 +448,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 * 	   of the type {@link Type#COMPARTMENT_TYPE} 
 	 * @return if the given pictogram can be layouted
 	 */
-	@Override
+    @Override
 	public boolean canLayout(ILayoutContext layoutContext) {
 		PictogramElement element = layoutContext.getPictogramElement();
 		if(element instanceof ContainerShape) {
@@ -392,7 +467,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 * layout the whole role model using the following steps:
 	 * <p>
 	 * Step 1: Its fetches the type body shape and drop shadow shape<br>
-	 * Step 2: It calculates the new height and width. It also uses this data to set
+	 * Step 2: It calculates the new height, width and horizontal center. It also uses this data to set
 	 * 		   the size of the type body and drop shadow shape.<br>
 	 * Step 3: It now iterates over all shapes of the role model:<br>
 	 * (a) It sets the width of the names shape.<br>
@@ -404,11 +479,11 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	@Override
 	public boolean layout(ILayoutContext layoutContext) {
 		boolean layoutChanged = false;
-		int newHeight, newWidth;
+		int newHeight, newWidth, newY;
 		Shape indicatorDotsShapeToDelete;
 		ContainerShape container = (ContainerShape) layoutContext.getPictogramElement();
 		//Step 1
-		if(!(UIUtil.isShape_IdValue(container, literals.SHAPE_ID_COMPARTMENTTYPE_TYPEBODY))) return false;
+		if(!(UIUtil.isShape_IdValue(container, literals.SHAPE_ID_ROLEMODEL_TYPEBODY))) return false;
 		else {
 			Rectangle typeBodyRectangle = (Rectangle) container.getGraphicsAlgorithm();
 			Rectangle dropShadowRectangle = (Rectangle) container.getContainer().getChildren().get(0).getGraphicsAlgorithm();
@@ -424,32 +499,128 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		    //Step 3    
 		    for (Shape shape : container.getChildren()){
 		    	GraphicsAlgorithm graphicsAlgorithm = shape.getGraphicsAlgorithm(); 
+		        int horizontalFirstThird = util.calculateHorizontaltFirstThird(height);
+		        int horizontalSecondThird = util.calculateHorizontaltSecondThird(height);
 		        //(a) name shape
  		        if (graphicsAlgorithm instanceof Text) {
 		        	Text text = (Text) graphicsAlgorithm;	
-		        	if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_COMPARTMENTTYPE_NAME)) {
+		        	if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_NAME)) {
 		        		graphicAlgorithmService.setLocationAndSize(text, 0, 0, width, literals.HEIGHT_NAME_SHAPE);
 		            	layoutChanged=true;
 		        }	}
 		        //(b) line shapes
 		        if (graphicsAlgorithm instanceof Polyline) {	
 		        	Polyline polyline = (Polyline) graphicsAlgorithm;  
-			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_COMPARTMENTTYPE_FIRSTLINE)) {
+			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_FIRSTLINE)) {
 			        	polyline.getPoints().set(1, graphicAlgorithmService.createPoint(width, polyline.getPoints().get(1).getY()));
 			        	layoutChanged=true;
 			        }
-			    }    
-		        //attribute and operation container + elements
+			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_SECONDLINE)) {   
+			        	polyline.getPoints().set(0, graphicAlgorithmService.createPoint(0, horizontalFirstThird));
+			           	polyline.getPoints().set(1, graphicAlgorithmService.createPoint(width, horizontalFirstThird));
+			           	layoutChanged=true;
+			        }
+			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_THIRDLINE)) {   
+			           	polyline.getPoints().set(0, graphicAlgorithmService.createPoint(0, horizontalSecondThird));
+			           	polyline.getPoints().set(1, graphicAlgorithmService.createPoint(width, horizontalSecondThird));
+			           	layoutChanged=true;
+			    }	}
 		        if (graphicsAlgorithm instanceof Rectangle) {
 		        	Rectangle rectangle = (Rectangle) graphicsAlgorithm;  
+		        	//(c) attribute container shape
+			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_ATTRIBUTECONTAINER)) {
+			        	//resize and positioning the container
+			        	newHeight = horizontalFirstThird-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS;
+			            newWidth = width-2*literals.PUFFER_BETWEEN_ELEMENTS; 
+			            newY = literals.HEIGHT_NAME_SHAPE+literals.PUFFER_BETWEEN_ELEMENTS;
+			            rectangle.setHeight(newHeight);
+			           	rectangle.setWidth(newWidth);
+			           	ContainerShape attributeContainerShape = (ContainerShape) shape;	       
+			           	EList<Shape> attributes = attributeContainerShape.getChildren();
+			           	//set place of attributes
+			            for(int m = 0; m<attributes.size(); m++) {
+			            	Text attributeText = (Text) attributeContainerShape.getChildren().get(m).getGraphicsAlgorithm();
+			            	attributeText.setY(newY+m*attOpsReference.HEIGHT_OPERATION_SHAPE);
+			            	attributeText.setWidth(newWidth);
+		            	}
+			            //set all attributes visible
+			            indicatorDotsShapeToDelete = null;
+			            for(int j = 0; j<attributes.size(); j++) {
+			            	attributes.get(j).setVisible(true);	   
+			            	if(UIUtil.isShape_IdValue(attributes.get(j), attOpsReference.SHAPE_ID_ATTRIBUTE_INDICATOR_DOTS))
+			            		indicatorDotsShapeToDelete = attributes.get(j);
+			            }
+			            attributeContainerShape.getChildren().remove(indicatorDotsShapeToDelete);
+			            //check if not all attributes fit in the attribute field
+			            if(attributeContainerShape.getChildren().size()*attOpsReference.HEIGHT_ATTRIBUTE_SHAPE>newHeight) {	            		
+			            	int fittingAttributes = (newHeight-attOpsReference.HEIGHT_ATTRIBUTE_SHAPE)/attOpsReference.HEIGHT_ATTRIBUTE_SHAPE;	   
+			            	//set not fitting attributes to invisible
+			            	for(int k = fittingAttributes; k<attributes.size(); k++) {
+			            		attributeContainerShape.getChildren().get(k).setVisible(false);
+			            	}
+			            	//add dots to indicate that not all attributes fit
+			            	Shape indicatorDotsShape = pictogramElementCreateService.createShape(attributeContainerShape, true); 
+					        Text indicatorDots = graphicAlgorithmService.createText(indicatorDotsShape, "...");
+					        indicatorDots.setForeground(manageColor(literals.COLOR_TEXT));
+					        graphicAlgorithmService.setLocationAndSize(indicatorDots, 
+					        	literals.PUFFER_BETWEEN_ELEMENTS, attOpsReference.HEIGHT_ATTRIBUTE_SHAPE+fittingAttributes*attOpsReference.HEIGHT_ATTRIBUTE_SHAPE, 
+					           	newWidth-2*literals.PUFFER_BETWEEN_ELEMENTS, attOpsReference.HEIGHT_OPERATION_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS);
+					        UIUtil.setShape_IdValue(indicatorDotsShape, attOpsReference.SHAPE_ID_ATTRIBUTE_INDICATOR_DOTS);
+			            }	            			
+			            layoutChanged=true;
+			        }
+			        //(d) operation container shape
+			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_OPERATIONCONTAINER)) {
+			        	//resize and positioning the container
+			        	newHeight = horizontalFirstThird-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS;
+			        	newWidth = width-2*literals.PUFFER_BETWEEN_ELEMENTS;		
+			        	newY = horizontalFirstThird+literals.PUFFER_BETWEEN_ELEMENTS;	 
+			        	rectangle.setHeight(newHeight);
+			        	rectangle.setWidth(newWidth);
+			        	rectangle.setY(newY);
+			        	ContainerShape operationContainerShape = (ContainerShape) shape;
+			        	EList<Shape> operations = operationContainerShape.getChildren();
+			            //set place of attributes
+			            for(int m = 0; m<operations.size(); m++) {
+			            	Text operationText = (Text) operationContainerShape.getChildren().get(m).getGraphicsAlgorithm();
+			            	operationText.setY(newY+m*attOpsReference.HEIGHT_OPERATION_SHAPE);
+			            	operationText.setWidth(newWidth);
+		            	}
+			            //set all operations visible
+						indicatorDotsShapeToDelete = null;
+						for(int n = 0; n<operations.size(); n++) {
+						    operations.get(n).setVisible(true);
+						    if(UIUtil.isShape_IdValue(operations.get(n), attOpsReference.SHAPE_ID_OPERATION_INDICATOR_DOTS))
+						    	indicatorDotsShapeToDelete = operations.get(n);
+						}
+						operationContainerShape.getChildren().remove(indicatorDotsShapeToDelete);
+						//check if not all operations fit in the operations field
+						if(operations.size()*attOpsReference.HEIGHT_OPERATION_SHAPE>newHeight) {	            		
+							int fittingOperations = (newHeight-attOpsReference.HEIGHT_OPERATION_SHAPE)/attOpsReference.HEIGHT_OPERATION_SHAPE;	   
+						    //set not fitting operations to invisible
+						    for(int o = fittingOperations; o<operations.size(); o++) {
+						    	operationContainerShape.getChildren().get(o).setVisible(false);            				
+						    }   	
+						    //add dots to indicate that not all operations fit
+						    Shape indicatorDotsShape = pictogramElementCreateService.createShape(operationContainerShape, true); 
+					        Text indicatorDots = graphicAlgorithmService.createText(indicatorDotsShape, "...");
+					        indicatorDots.setForeground(manageColor(literals.COLOR_TEXT));
+					        graphicAlgorithmService.setLocationAndSize(indicatorDots, 
+					        	literals.PUFFER_BETWEEN_ELEMENTS, newY+fittingOperations*attOpsReference.HEIGHT_OPERATION_SHAPE, 
+					           	newWidth-2*literals.PUFFER_BETWEEN_ELEMENTS, attOpsReference.HEIGHT_OPERATION_SHAPE);
+					        UIUtil.setShape_IdValue(indicatorDotsShape, attOpsReference.SHAPE_ID_OPERATION_INDICATOR_DOTS);
+						} 	
+						layoutChanged=true;
+			        }	
 			        //(c) content preview container
-			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_COMPARTMENTTYPE_CONTENT_PREVIEW)) {
+			        if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_CONTENT_PREVIEW)) {
 			        	//resize and positioning the container
-			        	newHeight = height-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS;
-				        newWidth = width-2*literals.PUFFER_BETWEEN_ELEMENTS; 
-				        int containerY = literals.HEIGHT_NAME_SHAPE+literals.PUFFER_BETWEEN_ELEMENTS;
+			        	newHeight = horizontalFirstThird-literals.HEIGHT_NAME_SHAPE-2*literals.PUFFER_BETWEEN_ELEMENTS;
+				        newWidth = width-2*literals.PUFFER_BETWEEN_ELEMENTS;   
+				        newY = horizontalSecondThird+literals.PUFFER_BETWEEN_ELEMENTS;
 				        rectangle.setHeight(newHeight);
 				        rectangle.setWidth(newWidth);
+				        rectangle.setY(newY);
 				        ContainerShape elementsShape = (ContainerShape) shape;
 			          	EList<Shape> elements = elementsShape.getChildren();  
 			          	//set all elements visible, delete indicator dots and positions of the elements
@@ -458,7 +629,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		            	for(Shape elementShape : elements) {
 			           		elementShape.setVisible(true);
 			           		graphicAlgorithmService.setLocationAndSize(elementShape.getGraphicsAlgorithm(), 
-			           				literals.PUFFER_BETWEEN_ELEMENTS, containerY+literals.HEIGHT_COMPARTMENT_ELEMENT_SHAPE*counter, 
+			           				literals.PUFFER_BETWEEN_ELEMENTS, newY+literals.HEIGHT_COMPARTMENT_ELEMENT_SHAPE*counter, 
 			            			newWidth-2*literals.PUFFER_BETWEEN_ELEMENTS, literals.HEIGHT_COMPARTMENT_ELEMENT_SHAPE);
 			           		if(UIUtil.isShape_IdValue(elementShape, literals.SHAPE_ID_ROLEMODEL_INDICATOR_DOTS))
 			           			indicatorDotsShapeToDelete = elementShape;
@@ -477,7 +648,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 			           		Text indicatorDots = graphicAlgorithmService.createText(indicatorDotsShape, "...");
 			           		indicatorDots.setForeground(manageColor(literals.COLOR_TEXT));
 			           		graphicAlgorithmService.setLocationAndSize(indicatorDots, 
-			           			literals.PUFFER_BETWEEN_ELEMENTS, fittingAttributes*literals.HEIGHT_COMPARTMENT_ELEMENT_SHAPE, 
+			           			literals.PUFFER_BETWEEN_ELEMENTS, newY+fittingAttributes*literals.HEIGHT_COMPARTMENT_ELEMENT_SHAPE, 
 			            		newWidth-2*literals.PUFFER_BETWEEN_ELEMENTS, literals.HEIGHT_COMPARTMENT_ELEMENT_SHAPE);
 			            	UIUtil.setShape_IdValue(indicatorDotsShape, literals.SHAPE_ID_ROLEMODEL_INDICATOR_DOTS); 
 			           	}
@@ -495,9 +666,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		Object businessObject =  getBusinessObjectForPictogramElement(pictogramElement);
 		if(businessObject instanceof org.framed.iorm.model.Shape) {
 			org.framed.iorm.model.Shape shape = (org.framed.iorm.model.Shape) businessObject;
-			if(shape.getType() == Type.COMPARTMENT_TYPE &&
-			   shape.getFirstSegment() == null	&&
-			   shape.getSecondSegment() == null) {
+			if(shape.getType() == Type.COMPARTMENT_TYPE) {
 				return true;
 		}	}
 		return false;
@@ -509,16 +678,34 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		       modelContainerElementName;
 		PictogramElement pictogramElement = updateContext.getPictogramElement();
 	
-		if(UIUtil.isShape_IdValue((Shape) pictogramElement, literals.SHAPE_ID_COMPARTMENTTYPE_TYPEBODY)) {
+		if(UIUtil.isShape_IdValue((Shape) pictogramElement, literals.SHAPE_ID_ROLEMODEL_TYPEBODY)) {
+			//pictogram name, attributes, operations and elements
+			String pictogramTypeName = util.getNameOfPictogramElement(pictogramElement);
+			List<String> pictogramAttributeNames = util.getpictogramAttributeNames(pictogramElement);
+			List<String> pictogramOperationNames = util.getpictogramOperationNames(pictogramElement);
 			//model element names in model container of shape
 			List<String> pictogramElementsNames = util.getContentPreviewElementsNames(pictogramElement);
+			//business name and attributes
+			String businessTypeName = UIUtil.getNameOfBusinessObject(getBusinessObjectForPictogramElement(pictogramElement));
+			List<String> businessAttributeNames = util.getBusinessAttributeNames(pictogramElement);
+			List<String> businessOperationNames = util.getBusinessOperationNames(pictogramElement);
 			//at creation no diagram is existing so catch this
 			List<String> modelElementsNames = null;
 			try {
 				modelElementsNames = UIUtil.getGroupingFeaturesModelElementNames(pictogramElement, getDiagram(), Type.COMPARTMENT_TYPE);
 			} catch(NoDiagramFoundException e) { return Reason.createFalseReason(); }
  			
-			//check for update: different names/amount in the container preview
+			//check for update: different names, different amount of attibutes/ operations
+			if(pictogramTypeName==null || businessTypeName==null) return Reason.createTrueReason(literals.REASON_NAME_NULL);
+			if(!(pictogramTypeName.equals(businessTypeName))) return Reason.createTrueReason(literals.REASON_NAME_OUT_OF_DATE);  
+			if(pictogramAttributeNames.size() != businessAttributeNames.size()) return Reason.createTrueReason(attOpsReference.REASON_AMOUNT_ATTRIBUTES);
+			if(pictogramOperationNames.size() != businessOperationNames.size()) return Reason.createTrueReason(attOpsReference.REASON_AMOUNT_OPERATION);
+			for(int i=0; i<pictogramAttributeNames.size(); i++) {
+				if(!(pictogramAttributeNames.get(i).equals(businessAttributeNames.get(i)))) return Reason.createTrueReason(attOpsReference.REASON_NAMES_ATTRIBUTES);
+			}	
+			for(int i=0; i<pictogramOperationNames.size(); i++) {
+				if(!(pictogramOperationNames.get(i).equals(businessOperationNames.get(i)))) return Reason.createTrueReason(attOpsReference.REASON_NAMES_OPERATIONS);
+			}
 			if(modelElementsNames.size() != pictogramElementsNames.size()) {
 				return Reason.createTrueReason(literals.REASON_AMOUNT_ELEMENTS);
 			}
@@ -533,21 +720,57 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	@Override
 	public boolean update(IUpdateContext updateContext) {
 		int counter;
-		boolean changed = false; 
+		boolean changed = false;
+	         
 		PictogramElement pictogramElement = updateContext.getPictogramElement();
 			
+		//business names of natural type, attributes and operations
+		String businessTypeName = UIUtil.getNameOfBusinessObject(getBusinessObjectForPictogramElement(pictogramElement));
+		List<String> businessAttributeNames = util.getBusinessAttributeNames(pictogramElement);
+		List<String> businessOperationNames = util.getBusinessOperationNames(pictogramElement);
+			
 		//set type name in pictogram model
 	    if (pictogramElement instanceof ContainerShape) {     
 	    	ContainerShape typeBodyShape = (ContainerShape) pictogramElement;
         	Diagram diagram = util.getCompartmentTypeDiagramForItsShape(typeBodyShape, getDiagram());
 	        for (Shape shape : typeBodyShape.getChildren()) {
-		        //set container preview texts
+	        	if (shape.getGraphicsAlgorithm() instanceof Text) {
+	        		Text text = (Text) shape.getGraphicsAlgorithm();
+	                if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_NAME)) {
+	                	diagram.setName(businessTypeName);
+	                	//change group name
+	                	text.setValue(businessTypeName);
+	                	changed = true;
+	                }           
+	            }
+		        //set attribute and operation names and thier places in pictogram model
 		        if(shape instanceof ContainerShape) {
 		        	ContainerShape innerContainerShape = (ContainerShape) shape;
 		        	if(innerContainerShape.getGraphicsAlgorithm() instanceof Rectangle) {
-						if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_COMPARTMENTTYPE_CONTENT_PREVIEW)) {
+						//Attributes
+						counter = 0;
+						if(UIUtil.isShape_IdValue(innerContainerShape, literals.SHAPE_ID_ROLEMODEL_ATTRIBUTECONTAINER)) {
+							for(Shape attributeShape : innerContainerShape.getChildren()) {
+								if(UIUtil.isShape_IdValue(attributeShape, attOpsReference.SHAPE_ID_ATTRIBUTE_TEXT)) {
+									Text text = (Text) attributeShape.getGraphicsAlgorithm();
+									text.setValue(businessAttributeNames.get(counter));
+									changed = true;
+									counter++;
+						}	}	}
+						//Operations
+						counter = 0;
+						if(UIUtil.isShape_IdValue(innerContainerShape, literals.SHAPE_ID_ROLEMODEL_OPERATIONCONTAINER)) {
+							for(Shape operationShape : innerContainerShape.getChildren()) {
+								if(UIUtil.isShape_IdValue(operationShape, attOpsReference.SHAPE_ID_OPERATION_TEXT)) {
+									Text text = (Text) operationShape.getGraphicsAlgorithm();
+									text.setValue(businessOperationNames.get(counter));									
+									changed = true;
+									counter++;
+						}	}	}	
+						if(UIUtil.isShape_IdValue(shape, literals.SHAPE_ID_ROLEMODEL_CONTENT_PREVIEW)) {
 			                ContainerShape modelContainerShape = (ContainerShape) shape;
 				            Model compartmentModel = UIUtil.getLinkedModelForDiagram(diagram);
+			             
 				            counter = 0;
 			                modelContainerShape.getChildren().clear();
 				            for(ModelElement modelElement : compartmentModel.getElements()) {
@@ -556,7 +779,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 					            	Text elementText = graphicAlgorithmService.createText(elementShape, UIUtil.getGroupingFeaturesElementText(modelElement));
 					            	elementText.setForeground(manageColor(literals.COLOR_TEXT));
 					            	UIUtil.setShape_IdValue(elementShape, literals.SHAPE_ID_ROLEMODEL_ELEMENT);
-					            	counter=counter+1;		
+					            	counter++;		
 				            }	}
 				            changed = true;
 				            layoutPictogramElement(typeBodyShape);
@@ -574,7 +797,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 */
 	@Override
 	public boolean canMoveShape(IMoveShapeContext moveContext) {
-		if(UIUtil.isShape_IdValue((Shape) moveContext.getPictogramElement(), literals.SHAPE_ID_COMPARTMENTTYPE_SHADOW)) {
+		if(UIUtil.isShape_IdValue((Shape) moveContext.getPictogramElement(), literals.SHAPE_ID_ROLEMODEL_SHADOW)) {
 			return false;
 		}
 		ContainerShape typeBodyShape = (ContainerShape) moveContext.getPictogramElement();
@@ -618,7 +841,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 */
 	@Override
 	public boolean canResizeShape(IResizeShapeContext resizeContext) {
-		if(UIUtil.isShape_IdValue((Shape) resizeContext.getPictogramElement(), literals.SHAPE_ID_COMPARTMENTTYPE_SHADOW)) {
+		if(UIUtil.isShape_IdValue((Shape) resizeContext.getPictogramElement(), literals.SHAPE_ID_ROLEMODEL_SHADOW)) {
 			return false;
 		}
 		return super.canResizeShape(resizeContext);
@@ -631,22 +854,22 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 	 */
 	@Override
 	public boolean canDelete(IDeleteContext deleteContext) {
-		if(UIUtil.isShape_IdValue((Shape) deleteContext.getPictogramElement(), literals.SHAPE_ID_COMPARTMENTTYPE_SHADOW)) {
+		if(UIUtil.isShape_IdValue((Shape) deleteContext.getPictogramElement(), literals.SHAPE_ID_ROLEMODEL_SHADOW)) {
 			return false;
 		}
 		return super.canDelete(deleteContext);
 	}
 			
 	/**
-	 * deletes the role model and cares about all related concerns using the following steps
+	 * deletes the group as cares about all related concerns using the following steps
 	 * <p>
 	 * Step 1: It deletes attached connection to it.<br>
 	 * Step 2: It gets the role model diagram and creates a {@link DeleteContext} for it.<br>
-	 * Step 3: It gets all compartment types that are a child of this role models to delete them as well. This is needed to be 
+	 * Step 3: It gets all compartment types that are a child of this compartment type to delete them as well. This is needed to be 
 	 * 		   explicitly since otherwise the diagrams of the child compartments would not be deleted.<br>
-	 * Step 4: It closes all editors that opened the diagram of the role model to delete.<br>
+	 * Step 4: It closes all editors that opened the diagram of this group to delete.<br>
 	 * Step 5: It gets the container shape of the role model, so this can be deleted instead of the type body shape.<br>
-	 * Step 6: It deletes the shapes gathered in Step 2, 3 and 5. It also updates a group in which the group is in, if any.
+	 * Step 6: It deletes the shapes gathered in Step 2, 3 and 5.
 	 * <p>
 	 * If its not clear what the different shapes means, see {@link #add} for reference.
 	 */
@@ -658,8 +881,8 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 		//Step 2
 		Diagram compartmentDiagram = util.getCompartmentTypeDiagramForItsShape((Shape) deleteContext.getPictogramElement(), getDiagram());
 		if(compartmentDiagram != null) {	
-			DeleteContext deleteContextForRoleModelDiagram = new DeleteContext(compartmentDiagram);
-			deleteContextForRoleModelDiagram.setMultiDeleteInfo(new MultiDeleteInfo(false, false, 0));
+			DeleteContext deleteContextForGroupDiagram = new DeleteContext(compartmentDiagram);
+			deleteContextForGroupDiagram.setMultiDeleteInfo(new MultiDeleteInfo(false, false, 0));
 			//Step 3 
 			for(Shape shape : compartmentDiagram.getChildren()) {
 				if(shape instanceof ContainerShape) {
@@ -691,7 +914,7 @@ public class RoleModelPattern extends FRaMEDShapePattern implements IPattern {
 				deleteFeatureForCompartmentDiagram.delete(deleteContextForChildDiagram);
 			}
 			super.delete(deleteContextForAllShapes);
-			super.delete(deleteContextForRoleModelDiagram);
+			super.delete(deleteContextForGroupDiagram);
 			updateContainingGroupingFeaturesObject();
 		}
 	}
diff --git a/org.framed.iorm.ui/core/rolemodel/Util.java b/org.framed.iorm.ui/core/rolemodel/Util.java
new file mode 100644
index 0000000000000000000000000000000000000000..356926f1fd05ff5d7f3064465dc22de5f2493db1
--- /dev/null
+++ b/org.framed.iorm.ui/core/rolemodel/Util.java
@@ -0,0 +1,101 @@
+package rolemodel;
+
+import java.util.List;
+
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.Shape;
+import org.framed.iorm.ui.UIUtil;
+import org.framed.iorm.ui.references.AbstractAttributeAndOperationReference;
+
+/**
+* This class offers utility operations in the scope of the role model feature module. This operations are mostly the same as the 
+* ones of a compartment type, since a created role model is handled like a compartment type if the corresponding feature is chosen. 
+* @author Kevin Kassin
+*/
+public class Util {
+
+	/**
+	 * the object to get names, ids and so on for this feature
+	 */
+	private final Literals literals = new Literals();
+	
+	/**
+	 * a reference class which encapsulates the dependency to the attribute and operation features
+	 */
+	private final AbstractAttributeAndOperationReference aaoReference = UIUtil.getAttributeAndOperationFeatureReference();
+	
+	/**
+	 * This operation calculates where the horizontal first third of a role model is.
+	 * @param heightOfCompartmentType the height of the role model 
+	 * @return the horizontal first third of the role model 
+	 */
+	public final int calculateHorizontaltFirstThird(int heightOfCompartmentType) {
+		return ((heightOfCompartmentType-literals.HEIGHT_NAME_SHAPE)/3)+literals.HEIGHT_NAME_SHAPE;
+	}
+	
+	/**
+	 * This operation calculates where the horizontal second third of a role model is.
+	 * @param heightOfCompartmentType the height of the role model 
+	 * @return the horizontal second third of the role model 
+	 */
+	public final int calculateHorizontaltSecondThird(int heightOfCompartmentType) {
+		return 2*calculateHorizontaltFirstThird(heightOfCompartmentType)-literals.HEIGHT_NAME_SHAPE;
+	}
+	
+	//Diagram
+	//~~~~~~~
+	/**
+	 * Convenience operation to call {@link UIUtil#getDiagramForGroupingShape(Shape, Diagram, String, String, String)} 
+	 * with the correct parameters.
+	 */
+	public Diagram getCompartmentTypeDiagramForItsShape(Shape groupOrCompartmentTypeShape, Diagram diagram) {
+		return UIUtil.getDiagramForGroupingShape(groupOrCompartmentTypeShape, diagram, 
+				literals.SHAPE_ID_ROLEMODEL_TYPEBODY, literals.SHAPE_ID_ROLEMODEL_NAME, literals.DIAGRAM_KIND);
+	}
+	
+	//Update
+	//~~~~~~
+	/**
+	 * Convenience operation to call {@link UIUtil#getNameOfPictogramElement(PictogramElement, String)} with the correct parameters.
+	 */
+	public String getNameOfPictogramElement(PictogramElement pictogramElement) {
+		return UIUtil.getNameOfPictogramElement(pictogramElement, literals.SHAPE_ID_ROLEMODEL_NAME);
+	}
+		
+	/**
+	 * Convenience operation to call {@link UIUtil#getpictogramAttributeNames(PictogramElement, String, String)} with the correct parameters.
+	 */
+	public List<String> getpictogramAttributeNames(PictogramElement pictogramElement) {
+		return UIUtil.getpictogramAttributeNames(pictogramElement, literals.SHAPE_ID_ROLEMODEL_ATTRIBUTECONTAINER,  aaoReference.SHAPE_ID_ATTRIBUTE_TEXT);
+	}
+		
+	/**
+	 * Convenience operation to call {@link UIUtil#getBusinessAttributeNames(PictogramElement, String, String)} with the correct parameters.
+	 */
+	public List<String> getBusinessAttributeNames(PictogramElement pictogramElement) {
+		return UIUtil.getBusinessAttributeNames(pictogramElement, literals.SHAPE_ID_ROLEMODEL_ATTRIBUTECONTAINER, aaoReference.SHAPE_ID_ATTRIBUTE_TEXT);
+	}
+		
+	/**
+	 * Convenience operation to call {@link UIUtil#getpictogramOperationNames(PictogramElement, String, String)} with the correct parameters.
+	 */
+	public List<String> getpictogramOperationNames(PictogramElement pictogramElement) {
+		return UIUtil.getpictogramOperationNames(pictogramElement, literals.SHAPE_ID_ROLEMODEL_OPERATIONCONTAINER, aaoReference.SHAPE_ID_OPERATION_TEXT);
+	}	
+		
+	/**
+	 * Convenience operation to call {@link UIUtil#getBusinessOperationNames(PictogramElement, String, String)} with the correct parameters.
+	 */
+	public List<String> getBusinessOperationNames(PictogramElement pictogramElement) {
+		return UIUtil.getBusinessOperationNames(pictogramElement, literals.SHAPE_ID_ROLEMODEL_OPERATIONCONTAINER, aaoReference.SHAPE_ID_OPERATION_TEXT);
+	}
+	
+	/**
+	 * Convenience operation to call {@link UIUtil#getContentPreviewElementsNames(PictogramElement, String, String)} 
+	 * with the correct parameters.
+	 */
+	public List<String> getContentPreviewElementsNames(PictogramElement pictogramElement) {
+		return UIUtil.getContentPreviewElementsNames(pictogramElement, literals.SHAPE_ID_ROLEMODEL_CONTENT_PREVIEW, literals.SHAPE_ID_ROLEMODEL_ELEMENT);
+	}
+}
diff --git a/org.framed.iorm.ui/core/rolemodel/icon_rolemodel.png b/org.framed.iorm.ui/core/rolemodel/icon_rolemodel.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b5ed86355aa76f89b880b0e330a24768568185e
Binary files /dev/null and b/org.framed.iorm.ui/core/rolemodel/icon_rolemodel.png differ
diff --git a/org.framed.iorm.ui/core/roletype/Literals.java b/org.framed.iorm.ui/core/roletype/Literals.java
index 553a6738f1b67a1f8f3cd0cddefffddf4912b891..376210b56500f84f92e8459a4639cd40c94cadf6 100644
--- a/org.framed.iorm.ui/core/roletype/Literals.java
+++ b/org.framed.iorm.ui/core/roletype/Literals.java
@@ -12,7 +12,8 @@ public class Literals {
 	/**
 	 * the features name used for the palette entry of this feature
 	 */
-	public final String FEATURE_NAME = "Role Type";
+	public final String FEATURE_NAME = "Role Type",
+						OC_FEATURE_NAME = "RT Occurrence Constraints";
 	
 	/**
 	 * name of the custom feature
@@ -30,6 +31,7 @@ public class Literals {
 	 * the id or the path for icon used for palette entry of this feature
 	 */		
 	public final String	ICON_IMG_ID = "org.framed.iorm.ui.core.roletype",
+						OC_ICON_IMG_ID = "org.framed.iorm.ui.modules.rt_oc",
 						ICON_IMG_PATH = "core/roletype/icon_roletype.png";
 	
 	/**
diff --git a/org.framed.iorm.ui/core/roletype/RoleTypePattern.java b/org.framed.iorm.ui/core/roletype/RoleTypePattern.java
index 2f40b6d010e6b23b68bef67c27db2bb32f4035cf..3988495c103dae15ef055470e21d281c860f4d4a 100644
--- a/org.framed.iorm.ui/core/roletype/RoleTypePattern.java
+++ b/org.framed.iorm.ui/core/roletype/RoleTypePattern.java
@@ -1,5 +1,6 @@
 package roletype;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.eclipse.emf.common.util.EList;
@@ -30,6 +31,8 @@ import org.eclipse.graphiti.mm.pictograms.PictogramElement;
 import org.eclipse.graphiti.mm.pictograms.Shape;
 import org.eclipse.graphiti.pattern.AbstractPattern;
 import org.eclipse.graphiti.pattern.IPattern;
+import org.framed.iorm.featuremodel.FRaMEDConfiguration;
+import org.framed.iorm.featuremodel.FRaMEDFeature;
 import org.framed.iorm.model.Model;
 import org.framed.iorm.model.NamedElement;
 import org.framed.iorm.model.OrmFactory;
@@ -101,7 +104,7 @@ public class RoleTypePattern extends FRaMEDShapePattern implements IPattern {
 		ICON_IMG_ID = literals.ICON_IMG_ID;
 		ICON_IMG_PATH = literals.ICON_IMG_PATH;
 		modelType = Type.ROLE_TYPE;
-		FPD = spec_FPD;
+		FPD = spec_FPD;	
 	}
 	
 	/**
@@ -244,13 +247,14 @@ public class RoleTypePattern extends FRaMEDShapePattern implements IPattern {
 		//occurence costraint
 		Shape cardinalityShape = pictogramElementCreateService.createShape(containerShape, true);
 		Text cardinalityText = graphicAlgorithmService.createText(cardinalityShape, addedRoleType.getDescription().getName());
-		cardinalityText.setForeground(manageColor(literals.COLOR_TEXT));													
+		cardinalityText.setForeground(manageColor(literals.COLOR_TEXT));	
+		cardinalityShape.setVisible(occurrenceConstraintChosen());
 		graphicAlgorithmService.setLocationAndSize(cardinalityText, 
 			x+width/2-literals.HEIGHT_OCCURRENCE_CONSTRAINT/2, 
 			y-literals.HEIGHT_OCCURRENCE_CONSTRAINT-literals.PUFFER_BETWEEN_ELEMENTS, 
 			literals.WIDTH_OCCURRENCE_CONSTRAINT, 
 			literals.HEIGHT_OCCURRENCE_CONSTRAINT);
-			
+		
 		//body shape of type
 		ContainerShape typeBodyShape = pictogramElementCreateService.createContainerShape(containerShape, true);		
 		RoundedRectangle typeBodyRectangle = graphicAlgorithmService.createRoundedRectangle(typeBodyShape, literals.ROLE_CORNER_RADIUS, literals.ROLE_CORNER_RADIUS);
@@ -325,7 +329,25 @@ public class RoleTypePattern extends FRaMEDShapePattern implements IPattern {
 		layoutPictogramElement(typeBodyShape);
 		updateContainingGroupingFeaturesObject();
 		return containerShape;
-	}	
+	}
+	
+	/**
+	 * calculates if the occurrence constraint feature is chosen when creating a role group
+	 * <p>
+	 * TODO: This should be modularized in a later stage of the development by separating the occurence constraint concern
+	 * from this pattern.
+	 * @return if the occurrence constraint feature is chosen when creating a role group
+	 */
+	private boolean occurrenceConstraintChosen() {
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());    
+		Model mainModel = UIUtil.getLinkedModelForDiagram(mainDiagram);
+		FRaMEDConfiguration framedConfiguration = mainModel.getFramedConfiguration();
+		List<String> framedFeatureNames = new ArrayList<String>();
+		for(FRaMEDFeature framedFeature : framedConfiguration.getFeatures()) {
+			framedFeatureNames.add(framedFeature.getName().getLiteral());
+		}
+		return framedFeatureNames.contains("Occurrence_Constraints");
+	}
 	
 	//create feature
 	//~~~~~~~~~~~~~~
diff --git a/org.framed.iorm.ui/modules/compartment/CompartmentTypePattern.java b/org.framed.iorm.ui/modules/compartment/CompartmentTypePattern.java
index 4ceeb43f3fa1b74d2cf39e4c2c29bbd12d7b60ae..5597515253c40ae59f5c7c9a14ef398b5a79a59f 100644
--- a/org.framed.iorm.ui/modules/compartment/CompartmentTypePattern.java
+++ b/org.framed.iorm.ui/modules/compartment/CompartmentTypePattern.java
@@ -38,6 +38,7 @@ import org.eclipse.graphiti.ui.editor.DiagramEditorInput;
 import org.eclipse.ui.IEditorReference;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
+import org.framed.iorm.featuremodel.FRaMEDFeature;
 import org.framed.iorm.model.Model;
 import org.framed.iorm.model.ModelElement;
 import org.framed.iorm.model.OrmFactory;
@@ -143,15 +144,21 @@ public class CompartmentTypePattern extends FRaMEDShapePattern implements IPatte
 	
 	/**
 	 * checks if pattern is applicable for a given business object
-	 * @return true, if business object is a {@link org.framed.iorm.model.Shape} of type {@link Type#COMPARTMENT_TYPE}
+	 * @return true, if business object is a {@link org.framed.iorm.model.Shape} of type {@link Type#COMPARTMENT_TYPE} and the
+	 * compartment type feature is chosen
 	 */
 	@Override
 	public boolean isMainBusinessObjectApplicable(Object businessObject) {
 		if(businessObject instanceof org.framed.iorm.model.Shape) {
 			org.framed.iorm.model.Shape shape = (org.framed.iorm.model.Shape) businessObject;
+			Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());
+			Model mainModel = (Model) getBusinessObjectForPictogramElement(mainDiagram);
+			List<String> framedFeatureNames = new ArrayList<String>();
+			for(FRaMEDFeature framedFeature : mainModel.getFramedConfiguration().getFeatures()) {
+				framedFeatureNames.add(framedFeature.getName().getLiteral());
+			}
 			if(shape.getType() == Type.COMPARTMENT_TYPE &&
-			   shape.getFirstSegment() != null &&
-			   shape.getSecondSegment() != null) return true;
+			   framedFeatureNames.contains("Compartment_Types")) return true;
 		}
 		return false;
 	}
diff --git a/org.framed.iorm.ui/modules/relationship/Literals.java b/org.framed.iorm.ui/modules/relationship/Literals.java
index 644f1f237c89d67ccd999881cc3c182c14445971..169ca5a96e53930f2995b6b0e52afd1255c22dcd 100644
--- a/org.framed.iorm.ui/modules/relationship/Literals.java
+++ b/org.framed.iorm.ui/modules/relationship/Literals.java
@@ -12,7 +12,8 @@ public class Literals {
 	/**
 	 * the features name used for the palette entry of this feature
 	 */
-	public final String FEATURE_NAME = "Relationship";
+	public final String FEATURE_NAME = "Relationship",
+						CARDINALITY_FEATURE_NAME = "Relationship Cardinality";
 	
 	/**
 	 * the standard name for a pictogramm element and business object created by the feature or<br>
@@ -25,6 +26,7 @@ public class Literals {
 	 * the id or the path for icon used for palette entry of this feature
 	 */		
 	public final String	ICON_IMG_ID = "org.framed.iorm.ui.modules.relationship",
+						CARDINALITIY_ICON_IMG_ID = "org.framed.iorm.ui.modules.rel_cardinality",
 						ICON_IMG_PATH = "modules/relationship/icon_relationship.png";
 	
 	/**
diff --git a/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java b/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java
index fe82ea2731b72c4dcdcdd1b8604c4ea007032b84..a64a1483a6a0032c1856ab3e11f64ab6b8bfa9bf 100644
--- a/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/RelationshipPattern.java
@@ -21,7 +21,10 @@ import org.eclipse.graphiti.mm.algorithms.Text;
 import org.eclipse.graphiti.mm.pictograms.Anchor;
 import org.eclipse.graphiti.mm.pictograms.Connection;
 import org.eclipse.graphiti.mm.pictograms.ConnectionDecorator;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
 import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.framed.iorm.featuremodel.FRaMEDConfiguration;
+import org.framed.iorm.featuremodel.FRaMEDFeature;
 import org.framed.iorm.model.Model;
 import org.framed.iorm.model.NamedElement;
 import org.framed.iorm.model.OrmFactory;
@@ -219,11 +222,13 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
 	    Text sourceLabel = graphicAlgorithmService.createText(connectionDecoratorForSourceLabel, addedRelationship.getSourceLabel().getName());
 	    graphicAlgorithmService.setLocation(sourceLabel, literals.DISTANCE_FROM_CONNECTION_LINE, -1*literals.DISTANCE_FROM_CONNECTION_LINE);
 	    sourceLabel.setForeground(manageColor(literals.COLOR_TEXT));
+	    connectionDecoratorForSourceLabel.setVisible(occurrenceConstraintChosen());
 	    ConnectionDecorator connectionDecoratorForTargetLabel = 
 	    	pictogramElementCreateService.createConnectionDecorator(connection, true, 0.9, true);
 	    Text targetLabel = graphicAlgorithmService.createText(connectionDecoratorForTargetLabel, addedRelationship.getTargetLabel().getName());
 	    graphicAlgorithmService.setLocation(targetLabel, literals.DISTANCE_FROM_CONNECTION_LINE, -1*literals.DISTANCE_FROM_CONNECTION_LINE);
 	    targetLabel.setForeground(manageColor(literals.COLOR_TEXT));
+	    connectionDecoratorForTargetLabel.setVisible(occurrenceConstraintChosen());
 	    //Step 4
 	    ConnectionDecorator connectionDecoratorForAnchor = 
 	    	pictogramElementCreateService.createConnectionDecorator(connection, true, 0.5, true);
@@ -255,6 +260,24 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
 			editRelationshipFeature.execute(customContext);
 		return connection;
 	}
+	
+	/**
+	 * calculates if the cardinality feature is chosen when creating a relationship
+	 * <p>
+	 * TODO: This should be modularized in a later stage of the development by separating the cardinality concern
+	 * from this pattern.
+	 * @return if the cardinality feature is chosen when creating a role group
+	 */
+	private boolean occurrenceConstraintChosen() {
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());    
+		Model mainModel = UIUtil.getLinkedModelForDiagram(mainDiagram);
+		FRaMEDConfiguration framedConfiguration = mainModel.getFramedConfiguration();
+		List<String> framedFeatureNames = new ArrayList<String>();
+		for(FRaMEDFeature framedFeature : framedConfiguration.getFeatures()) {
+			framedFeatureNames.add(framedFeature.getName().getLiteral());
+		}
+		return framedFeatureNames.contains("Occurrence_Constraints");
+	}
 		
 	//create feature
 	//~~~~~~~~~~~~~~
@@ -275,11 +298,10 @@ public class RelationshipPattern extends FRaMEDConnectionPattern {
 	    org.framed.iorm.model.ModelElement sourceShape = UIUtil.getModelElementForAnchor(sourceAnchor);
 	    org.framed.iorm.model.ModelElement targetShape = UIUtil.getModelElementForAnchor(targetAnchor);
 	    if(sourceShape != null && targetShape != null) {
-	    	if(sourceShape.getContainer() == targetShape.getContainer()) {
-	    		if(types.contains(sourceShape.getType()))
-		    		if(targetShape.getType() == sourceShape.getType())
-						return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.RELATIONSHIP);
-		}	}
+	    	if(types.contains(sourceShape.getType()))
+		   		if(targetShape.getType() == sourceShape.getType())
+					return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, Type.RELATIONSHIP);
+		}
 		return false;
 	}
 		 
diff --git a/org.framed.iorm.ui/modules/relationship/cardinality/RelationshipCardinalityPattern.java b/org.framed.iorm.ui/modules/relationship/cardinality/RelationshipCardinalityPattern.java
new file mode 100644
index 0000000000000000000000000000000000000000..28d6498f3b32161e8421e6bdaa357645e214d006
--- /dev/null
+++ b/org.framed.iorm.ui/modules/relationship/cardinality/RelationshipCardinalityPattern.java
@@ -0,0 +1,120 @@
+package relationship.cardinality;
+
+import java.util.List;
+
+import org.eclipse.graphiti.mm.pictograms.Connection;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.Shape;
+import org.eclipse.graphiti.pattern.IPattern;
+import org.eclipse.graphiti.mm.pictograms.ConnectionDecorator;
+import org.framed.iorm.model.Relation;
+import org.framed.iorm.model.Type;
+import org.framed.iorm.ui.FRaMEDShapePattern;
+import org.framed.iorm.ui.UIUtil;
+import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
+import org.framed.iorm.ui.palette.PaletteCategory;
+import org.framed.iorm.ui.palette.ViewVisibility;
+import org.framed.iorm.ui.wizards.RoleModelWizard;
+
+import customFeatures.ChangeConfigurationListener;
+
+/**
+ * This pattern manages setting occurrence constraints of role types (in)visible when changing the configuration. It is 
+ * a {@link ChangeConfigurationListener} for that reason.
+ * @author Kevin Kassin
+ */
+public class RelationshipCardinalityPattern extends FRaMEDShapePattern implements IPattern, ChangeConfigurationListener {
+
+	/**
+	 * literals of relationship
+	 */
+	relationship.Literals literals = new relationship.Literals();
+	
+	/**
+	 * the feature palette descriptor manages the palette visibility, see {@link FeaturePaletteDescriptor}
+	 */
+	private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
+			PaletteCategory.NONE,
+			ViewVisibility.NO_VIEW);
+	
+	/**
+	 * class constructor		
+	 */
+	public RelationshipCardinalityPattern() {
+		super();
+		FEATURE_NAME = literals.CARDINALITY_FEATURE_NAME;
+		ICON_IMG_ID = literals.CARDINALITIY_ICON_IMG_ID;
+		FPD = spec_FPD;
+	}
+	
+	/**
+	 * checks if pattern is applicable for a given business object
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	public boolean isMainBusinessObjectApplicable(Object mainBusinessObject) { return false; }
+
+	/**
+	 * checks if pattern is applicable for a given pictogram element
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	protected boolean isPatternControlled(PictogramElement pictogramElement) { return false; }
+
+	/**
+	 * checks if the pictogram element to edit with the pattern is its root
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	protected boolean isPatternRoot(PictogramElement pictogramElement) { return false; }
+
+	/**
+	 * If the editor's configuration changes this operation is called. It takes the old and the new chosen features 
+	 * as a list of strings. If the relationship cardinality feature changes its status {@link #setVisibilityOfCardinalities}
+	 * is called.
+	 */
+	@Override
+	public void configurationChanged(List<String> newframedFeatureNames, List<String> oldframedFeatureNames) {
+		if(newframedFeatureNames.contains("Relationship_Cardinality") && 
+		   !(oldframedFeatureNames.contains("Relationship_Cardinality")))
+			 setVisibilityOfCardinalities(true);
+		if(!(newframedFeatureNames.contains("Relationship_Cardinality")) && 
+		   oldframedFeatureNames.contains("Relationship_Cardinality"))
+			setVisibilityOfCardinalities(false);
+	}
+		
+	/**
+	 * Sets the visibility of all relationship cardinalities to a given boolean using the following steps:
+	 * <p>
+	 * Step 1: It gets the container diagram to interate over it.<br>
+	 * Step 2: For every child diagram of the container diagram iterates over the its element.<br>
+	 * Step 3: If the inner elements are a relationship it find its cardinalities and set it (in)visible.
+	 * <p>
+	 * If its not clear what <em>container diagram</em> and <em>main diagram</em> means, see 
+	 * {@link RoleModelWizard#createEmfFileForDiagram} for reference.
+	 * @param visible the boolean to set the visibility of all cardinalities to
+	 */ 
+	private void setVisibilityOfCardinalities(boolean visible) {
+		//Step 1
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());
+		if(mainDiagram.getContainer() instanceof Diagram) {
+			Diagram containerDiagram = (Diagram) mainDiagram.getContainer();
+			for(Shape shape : containerDiagram.getChildren()) {
+				//Step 2
+				if(shape instanceof Diagram) {
+					Diagram diagram = (Diagram) shape;
+					for(Connection connection : diagram.getConnections()) {
+						Object businessObject = getBusinessObjectForPictogramElement(connection);
+						//Step 3
+						if(businessObject instanceof Relation) {
+							if(((Relation) businessObject).getType() == Type.RELATIONSHIP) {
+								for(ConnectionDecorator decorator : connection.getConnectionDecorators()) {
+									if(UIUtil.isShape_IdValue(decorator, literals.SHAPE_ID_RELATIONSHIP_SOURCE_CARDINALITY_DECORATOR) ||
+									   UIUtil.isShape_IdValue(decorator, literals.SHAPE_ID_RELATIONSHIP_TARGET_CARDINALITY_DECORATOR)) {	
+									   decorator.setVisible(visible);
+	}	}	}	}	}	}	}	}	}
+}
diff --git a/org.framed.iorm.ui/modules/rolemodel/Util.java b/org.framed.iorm.ui/modules/rolemodel/Util.java
deleted file mode 100644
index 6a6e4117eb2760896a64336d2cfb7883b11d82bd..0000000000000000000000000000000000000000
--- a/org.framed.iorm.ui/modules/rolemodel/Util.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package rolemodel;
-
-import java.util.List;
-
-import org.eclipse.graphiti.mm.pictograms.Diagram;
-import org.eclipse.graphiti.mm.pictograms.PictogramElement;
-import org.eclipse.graphiti.mm.pictograms.Shape;
-import org.framed.iorm.ui.UIUtil;
-
-/**
-* This class offers utility operations in the scope of the role model feature module.
-* @author Kevin Kassin
-*/
-public class Util {
-
-	/**
-	 * the object to get names, ids and so on for this feature
-	 */
-	private final Literals literals = new Literals();
-			
-	//Diagram
-	//~~~~~~~
-	/**
-	 * Convenience operation to call {@link UIUtil#getDiagramForGroupingShape(Shape, Diagram, String, String, String)} 
-	 * with the correct parameters.
-	 */
-	public Diagram getCompartmentTypeDiagramForItsShape(Shape groupOrCompartmentTypeShape, Diagram diagram) {
-		return UIUtil.getDiagramForGroupingShape(groupOrCompartmentTypeShape, diagram, 
-				literals.SHAPE_ID_COMPARTMENTTYPE_TYPEBODY, literals.SHAPE_ID_COMPARTMENTTYPE_NAME, literals.DIAGRAM_KIND);
-	}
-	
-	//Update
-	//~~~~~~
-	/**
-	 * Convenience operation to call {@link UIUtil#getNameOfPictogramElement(PictogramElement, String)} with the correct parameters.
-	 */
-	public String getNameOfPictogramElement(PictogramElement pictogramElement) {
-		return UIUtil.getNameOfPictogramElement(pictogramElement, literals.SHAPE_ID_COMPARTMENTTYPE_NAME);
-	}
-		
-	/**
-	 * Convenience operation to call {@link UIUtil#getContentPreviewElementsNames(PictogramElement, String, String)} 
-	 * with the correct parameters.
-	 */
-	public List<String> getContentPreviewElementsNames(PictogramElement pictogramElement) {
-		return UIUtil.getContentPreviewElementsNames(pictogramElement, literals.SHAPE_ID_COMPARTMENTTYPE_CONTENT_PREVIEW, literals.SHAPE_ID_ROLEMODEL_ELEMENT);
-	}
-}
diff --git a/org.framed.iorm.ui/modules/rolemodel/icon_rolemodel.png b/org.framed.iorm.ui/modules/rolemodel/icon_rolemodel.png
deleted file mode 100644
index ccb93aa8de18f1ddce2892fdfd6a06c39d38ecad..0000000000000000000000000000000000000000
Binary files a/org.framed.iorm.ui/modules/rolemodel/icon_rolemodel.png and /dev/null differ
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/Literals.java b/org.framed.iorm.ui/modules/roletype/group_constraints/Literals.java
index b16ccf06b30c84f1be08cef47d37d625cce9d894..832447ca1e555a751d741c82a347a2ae95184265 100644
--- a/org.framed.iorm.ui/modules/roletype/group_constraints/Literals.java
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/Literals.java
@@ -12,7 +12,8 @@ public class Literals {
 	/**
 	 * the features names used for the palette entry of this feature
 	 */
-	public final String FEATURE_NAME = "Role Group";
+	public final String FEATURE_NAME = "Role Group",
+						OC_FEATURE_NAME = "RG Occurrence Constraints";
 	
 	/**
 	 * name of the custom feature
@@ -29,6 +30,7 @@ public class Literals {
 	 * the ids or the paths for icon used for palette entry of this feature
 	 */		
 	public final String	ICON_IMG_ID = "org.framed.iorm.ui.modules.rolegroup",
+						OC_ICON_IMG_ID = "org.framed.ior.ui.modules.rolegroupe.oc",
 						ICON_IMG_PATH = "modules/roletype/group_constraints/icon_rolegroup.png";
 	
 	/**
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupOccurrenceConstraintPattern.java b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupOccurrenceConstraintPattern.java
new file mode 100644
index 0000000000000000000000000000000000000000..0bd09b6b6110975a01490ba23c1f863a683f40a5
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupOccurrenceConstraintPattern.java
@@ -0,0 +1,116 @@
+package roletype.group_constraints;
+
+import java.util.List;
+
+import org.eclipse.graphiti.mm.pictograms.ContainerShape;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.Shape;
+import org.eclipse.graphiti.pattern.IPattern;
+import org.framed.iorm.ui.FRaMEDShapePattern;
+import org.framed.iorm.ui.UIUtil;
+import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
+import org.framed.iorm.ui.palette.PaletteCategory;
+import org.framed.iorm.ui.palette.ViewVisibility;
+import org.framed.iorm.ui.wizards.RoleModelWizard;
+
+import customFeatures.ChangeConfigurationListener;
+
+/**
+ * This pattern manages setting occurrence constraints of role groups (in)visible when changing the configuration. It is 
+ * a {@link ChangeConfigurationListener} for that reason.
+ * @author Kevin Kassin
+ */
+public class RoleGroupOccurrenceConstraintPattern extends FRaMEDShapePattern implements IPattern, ChangeConfigurationListener {
+
+	/**
+	 * literals of role groups
+	 */
+	Literals literals = new Literals();
+	
+	/**
+	 * the feature palette descriptor manages the palette visibility, see {@link FeaturePaletteDescriptor}
+	 */
+	private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
+			PaletteCategory.NONE,
+			ViewVisibility.NO_VIEW);
+	
+	/**
+	 * class constructor		
+	 */
+	public RoleGroupOccurrenceConstraintPattern() {
+		super();
+		FEATURE_NAME = literals.OC_FEATURE_NAME;
+		ICON_IMG_ID = literals.OC_ICON_IMG_ID;
+		FPD = spec_FPD;
+	}
+	
+	/**
+	 * checks if pattern is applicable for a given business object
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	public boolean isMainBusinessObjectApplicable(Object mainBusinessObject) { return false; }
+
+	/**
+	 * checks if pattern is applicable for a given pictogram element
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	protected boolean isPatternControlled(PictogramElement pictogramElement) { return false; }
+
+	/**
+	 * checks if the pictogram element to edit with the pattern is its root
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	protected boolean isPatternRoot(PictogramElement pictogramElement) { return false; }
+
+	
+	/**
+	 * If the editor's configuration changes this operation is called. It takes the old and the new chosen features 
+	 * as a list of strings. If the occurrence constraints feature changes its status {@link #setVisibilityOfOccurrenceConstraints}
+	 * is called.
+	 */
+	@Override
+	public void configurationChanged(List<String> newframedFeatureNames, List<String> oldframedFeatureNames) {
+		if(newframedFeatureNames.contains("Occurrence_Constraints") && 
+		   !(oldframedFeatureNames.contains("Occurrence_Constraints")))
+			 setVisibilityOfOccurrenceConstraints(true);
+		if(!(newframedFeatureNames.contains("Occurrence_Constraints")) && 
+		   oldframedFeatureNames.contains("Occurrence_Constraints"))
+			setVisibilityOfOccurrenceConstraints(false);
+	}
+		
+	/**
+	 * Sets the visibility of all occurrence constraints of role groups to a given boolean using the following steps:
+	 * <p>
+	 * Step 1: It gets the container diagram to interate over it.<br>
+	 * Step 2: For every child diagram of the container diagram iterates over the its element.<br>
+	 * Step 3: If the inner elements are a rolegroup it find its occurrence constraint and set it (in)visible.
+	 * <p>
+	 * If its not clear what <em>container diagram</em> and <em>main diagram</em> means, see 
+	 * {@link RoleModelWizard#createEmfFileForDiagram} for reference.
+	 * @param visible the boolean to set the visibility of all occurrence constraints to
+	 */
+	private void setVisibilityOfOccurrenceConstraints(boolean visible) {
+		//Step 1
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());
+		if(mainDiagram.getContainer() instanceof Diagram) {
+			Diagram containerDiagram = (Diagram) mainDiagram.getContainer();
+			for(Shape shape : containerDiagram.getChildren()) {
+				//Step 2
+				if(shape instanceof Diagram) {
+					Diagram diagram = (Diagram) shape;
+					for(Shape innerShape : diagram.getChildren()) {
+						//Step 3
+						if(UIUtil.isShape_IdValue(innerShape, literals.SHAPE_ID_ROLEGROUP_CONTAINER)) {
+							for(Shape innerInnerShape : ((ContainerShape) innerShape).getChildren()) {
+								if(!(innerInnerShape instanceof Diagram)) {
+									if(UIUtil.isShape_IdValue(innerInnerShape, literals.SHAPE_ID_ROLEGROUP_OCCURRENCE_CONSTRAINT)) {
+										innerInnerShape.setVisible(visible);
+	}	}	}	}	}	}	}	}	}
+}
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupPattern.java b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupPattern.java
index 4a860fe843db3f35c54bf0b64d3d06a37ad6e6d0..2c7e3678c96296f13044c98bf6d4344bddb8bf97 100644
--- a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupPattern.java
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroupPattern.java
@@ -30,6 +30,8 @@ import org.eclipse.graphiti.mm.pictograms.Diagram;
 import org.eclipse.graphiti.mm.pictograms.PictogramElement;
 import org.eclipse.graphiti.mm.pictograms.Shape;
 import org.eclipse.graphiti.pattern.IPattern;
+import org.framed.iorm.featuremodel.FRaMEDConfiguration;
+import org.framed.iorm.featuremodel.FRaMEDFeature;
 import org.framed.iorm.model.Model;
 import org.framed.iorm.model.ModelElement;
 import org.framed.iorm.model.NamedElement;
@@ -97,7 +99,7 @@ public class RoleGroupPattern extends FRaMEDShapePattern implements IPattern {
 				ViewVisibility.ALL_VIEWS) {
 			
 		};
-		
+
 	/**
 	 * class constructor		
 	 */
@@ -233,7 +235,8 @@ public class RoleGroupPattern extends FRaMEDShapePattern implements IPattern {
 		//occurence costraint
 		Shape cardinalityShape = pictogramElementCreateService.createShape(containerShape, true);
 		Text cardinalityText = graphicAlgorithmService.createText(cardinalityShape, addedRoleGroup.getDescription().getName());
-		cardinalityText.setForeground(manageColor(literals.COLOR_TEXT));													
+		cardinalityText.setForeground(manageColor(literals.COLOR_TEXT));	
+		cardinalityShape.setVisible(occurrenceConstraintChosen());
 		graphicAlgorithmService.setLocationAndSize(cardinalityText, 
 			x+width/2-literals.HEIGHT_OCCURRENCE_CONSTRAINT/2, 
 			y-literals.HEIGHT_OCCURRENCE_CONSTRAINT-literals.PUFFER_BETWEEN_ELEMENTS, 
@@ -292,6 +295,24 @@ public class RoleGroupPattern extends FRaMEDShapePattern implements IPattern {
 		return containerShape;
 	}
 	
+	/**
+	 * calculates if the occurrence constraint feature is chosen when creating a role group
+	 * <p>
+	 * TODO: This should be modularized in a later stage of the development by separating the occurence constraint concern
+	 * from this pattern.
+	 * @return if the occurrence constraint feature is chosen when creating a role group
+	 */
+	private boolean occurrenceConstraintChosen() {
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());    
+		Model mainModel = UIUtil.getLinkedModelForDiagram(mainDiagram);
+		FRaMEDConfiguration framedConfiguration = mainModel.getFramedConfiguration();
+		List<String> framedFeatureNames = new ArrayList<String>();
+		for(FRaMEDFeature framedFeature : framedConfiguration.getFeatures()) {
+			framedFeatureNames.add(framedFeature.getName().getLiteral());
+		}
+		return framedFeatureNames.contains("Occurrence_Constraints");
+	}
+	
 	//create feature
 	//~~~~~~~~~~~~~~
 	/**
@@ -469,7 +490,6 @@ public class RoleGroupPattern extends FRaMEDShapePattern implements IPattern {
 	 * 		   the size of the type body and drop shadow shape.<br>
 	 * Step 3: It now iterates over all shapes of the role group:<br>
 	 * (a) It sets the width of the names shape.<br>
-	 * TODO: occurence set
 	 * <p>
 	 * If its not clear what the different shapes means, see {@link #add} for reference.
 	 */
diff --git a/org.framed.iorm.ui/core/roletype/inheritance/RoleInheritance.etl b/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.etl
similarity index 100%
rename from org.framed.iorm.ui/core/roletype/inheritance/RoleInheritance.etl
rename to org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.etl
diff --git a/org.framed.iorm.ui/core/roletype/occurrence_constraints/RoleTypeOccurenceConstraints.etl b/org.framed.iorm.ui/modules/roletype/occurrence_constraints/RoleTypeOccurenceConstraints.etl
similarity index 100%
rename from org.framed.iorm.ui/core/roletype/occurrence_constraints/RoleTypeOccurenceConstraints.etl
rename to org.framed.iorm.ui/modules/roletype/occurrence_constraints/RoleTypeOccurenceConstraints.etl
diff --git a/org.framed.iorm.ui/modules/roletype/occurrence_constraints/RoletypeOccurrenceConstraintPattern.java b/org.framed.iorm.ui/modules/roletype/occurrence_constraints/RoletypeOccurrenceConstraintPattern.java
new file mode 100644
index 0000000000000000000000000000000000000000..5772bd7ba99fbac210e6c046b9506ac55da6fa05
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/occurrence_constraints/RoletypeOccurrenceConstraintPattern.java
@@ -0,0 +1,114 @@
+package roletype.occurrence_constraints;
+
+import java.util.List;
+
+import org.eclipse.graphiti.mm.pictograms.ContainerShape;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.Shape;
+import org.eclipse.graphiti.pattern.IPattern;
+import org.framed.iorm.ui.FRaMEDShapePattern;
+import org.framed.iorm.ui.UIUtil;
+import org.framed.iorm.ui.palette.FeaturePaletteDescriptor;
+import org.framed.iorm.ui.palette.PaletteCategory;
+import org.framed.iorm.ui.palette.ViewVisibility;
+import org.framed.iorm.ui.wizards.RoleModelWizard;
+
+import customFeatures.ChangeConfigurationListener;
+
+/**
+ * This pattern manages setting occurrence constraints of role types (in)visible when changing the configuration. It is 
+ * a {@link ChangeConfigurationListener} for that reason.
+ * @author Kevin Kassin
+ */
+public class RoletypeOccurrenceConstraintPattern extends FRaMEDShapePattern implements IPattern, ChangeConfigurationListener {
+
+	/**
+	 * literals of role types
+	 */
+	roletype.Literals literals = new roletype.Literals();
+	
+	/**
+	 * the feature palette descriptor manages the palette visibility, see {@link FeaturePaletteDescriptor}
+	 */
+	private final FeaturePaletteDescriptor spec_FPD = new FeaturePaletteDescriptor(
+			PaletteCategory.NONE,
+			ViewVisibility.NO_VIEW);
+	
+	/**
+	 * class constructor		
+	 */
+	public RoletypeOccurrenceConstraintPattern() {
+		super();
+		FEATURE_NAME = literals.OC_FEATURE_NAME;
+		ICON_IMG_ID = literals.OC_ICON_IMG_ID;
+		FPD = spec_FPD;
+	}
+	
+	/**
+	 * checks if pattern is applicable for a given business object
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	public boolean isMainBusinessObjectApplicable(Object mainBusinessObject) { return false; }
+
+	/**
+	 * checks if pattern is applicable for a given pictogram element
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	protected boolean isPatternControlled(PictogramElement pictogramElement) { return false; }
+
+	/**
+	 * checks if the pictogram element to edit with the pattern is its root
+	 * <p>
+	 * return false since the pattern is never used by graphiti
+	 */
+	@Override
+	protected boolean isPatternRoot(PictogramElement pictogramElement) { return false; }
+
+	/**
+	 * If the editor's configuration changes this operation is called. It takes the old and the new chosen features 
+	 * as a list of strings. If the occurrence constraints feature changes its status {@link #setVisibilityOfOccurrenceConstraints}
+	 * is called.
+	 */
+	@Override
+	public void configurationChanged(List<String> newframedFeatureNames, List<String> oldframedFeatureNames) {
+		if(newframedFeatureNames.contains("Occurrence_Constraints") && 
+		   !(oldframedFeatureNames.contains("Occurrence_Constraints")))
+			 setVisibilityOfOccurrenceConstraints(true);
+		if(!(newframedFeatureNames.contains("Occurrence_Constraints")) && 
+		   oldframedFeatureNames.contains("Occurrence_Constraints"))
+			setVisibilityOfOccurrenceConstraints(false);
+	}
+		
+	/**
+	 * Sets the visibility of all occurrence constraints of role groups to a given boolean using the following steps:
+	 * <p>
+	 * Step 1: It gets the container diagram to interate over it.<br>
+	 * Step 2: For every child diagram of the container diagram iterates over the its element.<br>
+	 * Step 3: If the inner elements are a role type it find its occurrence constraint and set it (in)visible.
+	 * <p>
+	 * If its not clear what <em>container diagram</em> and <em>main diagram</em> means, see 
+	 * {@link RoleModelWizard#createEmfFileForDiagram} for reference.
+	 * @param visible the boolean to set the visibility of all occurrence constraints to
+	 */
+	private void setVisibilityOfOccurrenceConstraints(boolean visible) {
+		//Step 1
+		Diagram mainDiagram = UIUtil.getMainDiagramForAnyDiagram(getDiagram());
+		if(mainDiagram.getContainer() instanceof Diagram) {
+			Diagram containerDiagram = (Diagram) mainDiagram.getContainer();
+			for(Shape shape : containerDiagram.getChildren()) {
+				//Step 2
+				if(shape instanceof Diagram) {
+					Diagram diagram = (Diagram) shape;
+					for(Shape innerShape : diagram.getChildren()) {
+						//Step 3
+						if(UIUtil.isShape_IdValue(innerShape, literals.SHAPE_ID_ROLETYPE_CONTAINER)) {
+							for(Shape innerInnerShape : ((ContainerShape) innerShape).getChildren()) {
+								if(UIUtil.isShape_IdValue(innerInnerShape, literals.SHAPE_ID_ROLETYPE_OCCURRENCE_CONSTRAINT)) {
+									innerInnerShape.setVisible(visible);
+	}	}	}	}	}	}	}	}
+}
diff --git a/org.framed.iorm.ui/core/roletype/properties/RoleTypeAttsAndOps.etl b/org.framed.iorm.ui/modules/roletype/properties/RoleTypeAttsAndOps.etl
similarity index 100%
rename from org.framed.iorm.ui/core/roletype/properties/RoleTypeAttsAndOps.etl
rename to org.framed.iorm.ui/modules/roletype/properties/RoleTypeAttsAndOps.etl
diff --git a/org.framed.iorm.ui/core/roletype/properties/RoleTypeHasAttsAndOpsReference.java b/org.framed.iorm.ui/modules/roletype/properties/RoleTypeHasAttsAndOpsReference.java
similarity index 100%
rename from org.framed.iorm.ui/core/roletype/properties/RoleTypeHasAttsAndOpsReference.java
rename to org.framed.iorm.ui/modules/roletype/properties/RoleTypeHasAttsAndOpsReference.java
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/multipage/MultipageEditor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/multipage/MultipageEditor.java
index 41daae43e631c5b9cb7201103160a2e0dcd2936f..5829f47606ce81a0508ad56e60aaa7e806895aa4 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/multipage/MultipageEditor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/multipage/MultipageEditor.java
@@ -58,7 +58,7 @@ import org.framed.iorm.ui.wizards.RoleModelWizard; //*import for javadoc link
  * @see FRaMEDTextViewer
  * @author Kevin Kassin
  */
-public class MultipageEditor extends FormEditor implements ISelectionListener, IWorkbenchListener  {
+public class MultipageEditor extends FormEditor implements ISelectionListener, IWorkbenchListener {
 	/**
 	 * the reference to the model feature
 	 */
@@ -116,7 +116,7 @@ public class MultipageEditor extends FormEditor implements ISelectionListener, I
 	 * the editor with the diagram
 	 */
 	private FRaMEDDiagramEditor editorDiagram;
-	
+		
 	/**
 	 * the subeditors of the multipage editor of type {@link FRaMEDTextViewer}
 	 * <p>
@@ -177,7 +177,7 @@ public class MultipageEditor extends FormEditor implements ISelectionListener, I
 	@Override 
 	public void dispose() {
 		MultipageEditorSynchronizationService.deregisterEditor(this);
-		super.dispose();
+		super.dispose(); 
 	}
 	
 	/**