diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsTypeTest.java
similarity index 62%
rename from org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java
rename to org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsTypeTest.java
index 8056dd9f8ae6355b6e3906d546f636c717c9431c..1d51336eec1f43580fec7a99e57473fa37cf1a4e 100644
--- a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsParentTest.java
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsTypeTest.java
@@ -2,18 +2,18 @@
  */
 package editpolicymodel.tests;
 
-import editpolicymodel.IsParent;
+import editpolicymodel.ContainsType;
 import editpolicymodel.editpolicymodelFactory;
 
 import junit.textui.TestRunner;
 
 /**
  * <!-- begin-user-doc -->
- * A test case for the model object '<em><b>Is Parent</b></em>'.
+ * A test case for the model object '<em><b>Contains Type</b></em>'.
  * <!-- end-user-doc -->
  * @generated
  */
-public class IsParentTest extends TypeArgumentRuleTest {
+public class ContainsTypeTest extends TypeArgumentRuleTest {
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -21,28 +21,28 @@ public class IsParentTest extends TypeArgumentRuleTest {
 	 * @generated
 	 */
 	public static void main(String[] args) {
-		TestRunner.run(IsParentTest.class);
+		TestRunner.run(ContainsTypeTest.class);
 	}
 
 	/**
-	 * Constructs a new Is Parent test case with the given name.
+	 * Constructs a new Contains Type test case with the given name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public IsParentTest(String name) {
+	public ContainsTypeTest(String name) {
 		super(name);
 	}
 
 	/**
-	 * Returns the fixture for this Is Parent test case.
+	 * Returns the fixture for this Contains Type test case.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	protected IsParent getFixture() {
-		return (IsParent)fixture;
+	protected ContainsType getFixture() {
+		return (ContainsType)fixture;
 	}
 
 	/**
@@ -53,7 +53,7 @@ public class IsParentTest extends TypeArgumentRuleTest {
 	 */
 	@Override
 	protected void setUp() throws Exception {
-		setFixture(editpolicymodelFactory.eINSTANCE.createIsParent());
+		setFixture(editpolicymodelFactory.eINSTANCE.createContainsType());
 	}
 
 	/**
@@ -67,4 +67,4 @@ public class IsParentTest extends TypeArgumentRuleTest {
 		setFixture(null);
 	}
 
-} //IsParentTest
+} //ContainsTypeTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetConnectionTypeTest.java
similarity index 57%
rename from org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java
rename to org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetConnectionTypeTest.java
index d341e570d4591db38405073262194b96b277d847..6a0987b5d8a2ef888c8145e6ad6c8b547473e732 100644
--- a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/ContainsCompartmentTest.java
+++ b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetConnectionTypeTest.java
@@ -2,18 +2,18 @@
  */
 package editpolicymodel.tests;
 
-import editpolicymodel.ContainsCompartment;
+import editpolicymodel.IsTargetConnectionType;
 import editpolicymodel.editpolicymodelFactory;
 
 import junit.textui.TestRunner;
 
 /**
  * <!-- begin-user-doc -->
- * A test case for the model object '<em><b>Contains Compartment</b></em>'.
+ * A test case for the model object '<em><b>Is Target Connection Type</b></em>'.
  * <!-- end-user-doc -->
  * @generated
  */
-public class ContainsCompartmentTest extends ConstraintRuleTest {
+public class IsTargetConnectionTypeTest extends TypeArgumentRuleTest {
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -21,28 +21,28 @@ public class ContainsCompartmentTest extends ConstraintRuleTest {
 	 * @generated
 	 */
 	public static void main(String[] args) {
-		TestRunner.run(ContainsCompartmentTest.class);
+		TestRunner.run(IsTargetConnectionTypeTest.class);
 	}
 
 	/**
-	 * Constructs a new Contains Compartment test case with the given name.
+	 * Constructs a new Is Target Connection Type test case with the given name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ContainsCompartmentTest(String name) {
+	public IsTargetConnectionTypeTest(String name) {
 		super(name);
 	}
 
 	/**
-	 * Returns the fixture for this Contains Compartment test case.
+	 * Returns the fixture for this Is Target Connection Type test case.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	protected ContainsCompartment getFixture() {
-		return (ContainsCompartment)fixture;
+	protected IsTargetConnectionType getFixture() {
+		return (IsTargetConnectionType)fixture;
 	}
 
 	/**
@@ -53,7 +53,7 @@ public class ContainsCompartmentTest extends ConstraintRuleTest {
 	 */
 	@Override
 	protected void setUp() throws Exception {
-		setFixture(editpolicymodelFactory.eINSTANCE.createContainsCompartment());
+		setFixture(editpolicymodelFactory.eINSTANCE.createIsTargetConnectionType());
 	}
 
 	/**
@@ -67,4 +67,4 @@ public class ContainsCompartmentTest extends ConstraintRuleTest {
 		setFixture(null);
 	}
 
-} //ContainsCompartmentTest
+} //IsTargetConnectionTypeTest
diff --git a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java b/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java
deleted file mode 100644
index 3481de8e862c7b780dba73a4446e4131f513f4bc..0000000000000000000000000000000000000000
--- a/org.framed.iorm.editpolicymodel.tests/src/editpolicymodel/tests/IsTargetTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- */
-package editpolicymodel.tests;
-
-import editpolicymodel.IsTarget;
-import editpolicymodel.editpolicymodelFactory;
-
-import junit.textui.TestRunner;
-
-/**
- * <!-- begin-user-doc -->
- * A test case for the model object '<em><b>Is Target</b></em>'.
- * <!-- end-user-doc -->
- * @generated
- */
-public class IsTargetTest extends TypeArgumentRuleTest {
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static void main(String[] args) {
-		TestRunner.run(IsTargetTest.class);
-	}
-
-	/**
-	 * Constructs a new Is Target test case with the given name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IsTargetTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Returns the fixture for this Is Target test case.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected IsTarget getFixture() {
-		return (IsTarget)fixture;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see junit.framework.TestCase#setUp()
-	 * @generated
-	 */
-	@Override
-	protected void setUp() throws Exception {
-		setFixture(editpolicymodelFactory.eINSTANCE.createIsTarget());
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see junit.framework.TestCase#tearDown()
-	 * @generated
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		setFixture(null);
-	}
-
-} //IsTargetTest
diff --git a/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore b/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore
index c930289f6f31b5a70e7057fa788a9b22f79981db..1c81714701277b4c6416e19646e37d74f19393e1 100644
--- a/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore
+++ b/org.framed.iorm.editpolicymodel/model/editpolicymodel.ecore
@@ -17,9 +17,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="constraintRule" eType="#//ConstraintRule"
         containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ContainsCompartment" eSuperTypes="#//ConstraintRule"/>
-  <eClassifiers xsi:type="ecore:EClass" name="IsTarget" eSuperTypes="#//TypeArgumentRule"/>
-  <eClassifiers xsi:type="ecore:EClass" name="IsParent" eSuperTypes="#//TypeArgumentRule"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ContainsType" eSuperTypes="#//TypeArgumentRule"/>
   <eClassifiers xsi:type="ecore:EEnum" name="ActionEnum">
     <eLiterals name="Create"/>
     <eLiterals name="Add" value="1"/>
@@ -151,4 +149,5 @@
   <eClassifiers xsi:type="ecore:EClass" name="SourceEqualsTarget" eSuperTypes="#//ConstraintRule"/>
   <eClassifiers xsi:type="ecore:EClass" name="SourceEqualsTargetType" eSuperTypes="#//ConstraintRule"/>
   <eClassifiers xsi:type="ecore:EClass" name="InType" eSuperTypes="#//TypeArgumentRule"/>
+  <eClassifiers xsi:type="ecore:EClass" name="IsTargetConnectionType" eSuperTypes="#//TypeArgumentRule"/>
 </ecore:EPackage>
diff --git a/org.framed.iorm.editpolicymodel/model/representations.aird b/org.framed.iorm.editpolicymodel/model/representations.aird
index 7f78c749a773a769fcf05b9fe62c75ef897c020f..9d89544640b5212c38564fcc3eadf20c9cb179a4 100644
--- a/org.framed.iorm.editpolicymodel/model/representations.aird
+++ b/org.framed.iorm.editpolicymodel/model/representations.aird
@@ -90,25 +90,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_QL2zUxv9Eeir3aeVscTXqw"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_QL2MRRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL2MRhv9Eeir3aeVscTXqw" x="1464" y="828"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_QL4BdBv9Eeir3aeVscTXqw" type="2003" element="_QLGlYRv9Eeir3aeVscTXqw">
-          <children xmi:type="notation:Node" xmi:id="_QL4Bdxv9Eeir3aeVscTXqw" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_QL4ogBv9Eeir3aeVscTXqw" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_QL4ogRv9Eeir3aeVscTXqw"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_QL4oghv9Eeir3aeVscTXqw"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_QL4BdRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL4Bdhv9Eeir3aeVscTXqw" x="1106" y="1116"/>
-        </children>
-        <children xmi:type="notation:Node" xmi:id="_QL5PkBv9Eeir3aeVscTXqw" type="2003" element="_QLHzgBv9Eeir3aeVscTXqw">
-          <children xmi:type="notation:Node" xmi:id="_QL5Pkxv9Eeir3aeVscTXqw" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_QL5PlBv9Eeir3aeVscTXqw" type="7004">
-            <styles xmi:type="notation:SortingStyle" xmi:id="_QL5PlRv9Eeir3aeVscTXqw"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_QL5Plhv9Eeir3aeVscTXqw"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_QL5PkRv9Eeir3aeVscTXqw" fontName="Cantarell" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL5Pkhv9Eeir3aeVscTXqw" x="1191" y="973"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QL2MRhv9Eeir3aeVscTXqw" x="1223" y="973"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_QL52oBv9Eeir3aeVscTXqw" type="2003" element="_QLIakBv9Eeir3aeVscTXqw">
           <children xmi:type="notation:Node" xmi:id="_QL52oxv9Eeir3aeVscTXqw" type="5007"/>
@@ -650,7 +632,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_Jy7UsjEtEeiF0ru3Etlc_g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_Jyw8oTEtEeiF0ru3Etlc_g" fontName="Cantarell" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jyw8ojEtEeiF0ru3Etlc_g" x="1389" y="961" width="135" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jyw8ojEtEeiF0ru3Etlc_g" x="1389" y="828" width="135" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="_oTkgoDE6EeifDcVRz6UV5g" type="2003" element="_oRe18DE6EeifDcVRz6UV5g">
           <children xmi:type="notation:Node" xmi:id="_oTtDgDE6EeifDcVRz6UV5g" type="5007"/>
@@ -659,7 +641,7 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="_oTuRojE6EeifDcVRz6UV5g"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="_oTkgoTE6EeifDcVRz6UV5g" fontName="Cantarell" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oTkgojE6EeifDcVRz6UV5g" x="1547" y="961" width="159" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oTkgojE6EeifDcVRz6UV5g" x="1547" y="828" width="159" height="100"/>
         </children>
         <children xmi:type="notation:Node" xmi:id="__AveUEJgEei5GdIMm-4mwA" type="2003" element="_-9CqEEJgEei5GdIMm-4mwA">
           <children xmi:type="notation:Node" xmi:id="__A4oQEJgEei5GdIMm-4mwA" type="5007"/>
@@ -668,7 +650,16 @@
             <styles xmi:type="notation:FilteringStyle" xmi:id="__A5PUkJgEei5GdIMm-4mwA"/>
           </children>
           <styles xmi:type="notation:ShapeStyle" xmi:id="__AveUUJgEei5GdIMm-4mwA" fontName="Cantarell" fontHeight="8"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__AveUkJgEei5GdIMm-4mwA" x="1236" y="1116" width="120" height="100"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="__AveUkJgEei5GdIMm-4mwA" x="1129" y="1116" width="120" height="100"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_bVgYQHfGEei-4IQpclsuyw" type="2003" element="_bUnAYHfGEei-4IQpclsuyw">
+          <children xmi:type="notation:Node" xmi:id="_bVg_UHfGEei-4IQpclsuyw" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_bVhmYHfGEei-4IQpclsuyw" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_bVhmYXfGEei-4IQpclsuyw"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_bVhmYnfGEei-4IQpclsuyw"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_bVgYQXfGEei-4IQpclsuyw" fontName="Cantarell" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bVgYQnfGEei-4IQpclsuyw" x="1287" y="1116" width="161" height="100"/>
         </children>
         <styles xmi:type="notation:DiagramStyle" xmi:id="_PSPqwhv9Eeir3aeVscTXqw"/>
         <edges xmi:type="notation:Edge" xmi:id="_QMJuQBv9Eeir3aeVscTXqw" type="4001" element="_QLkfcBv9Eeir3aeVscTXqw" source="_QLyh4Bv9Eeir3aeVscTXqw" target="_QLzI9Bv9Eeir3aeVscTXqw">
@@ -735,38 +726,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BO_HEx2MEei8arfb2j0BMw" id="(0.5,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fyo4cR2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_CWx1kB2MEei8arfb2j0BMw" type="4001" element="_XfgucBy-EeiJONAgrNPLDA" source="_QL5PkBv9Eeir3aeVscTXqw" target="_01GZQB2LEei8arfb2j0BMw">
-          <children xmi:type="notation:Node" xmi:id="_CWx1lB2MEei8arfb2j0BMw" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWx1lR2MEei8arfb2j0BMw" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_CWx1lh2MEei8arfb2j0BMw" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWx1lx2MEei8arfb2j0BMw" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_CWx1mB2MEei8arfb2j0BMw" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CWx1mR2MEei8arfb2j0BMw" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_CWx1kR2MEei8arfb2j0BMw" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_CWx1kh2MEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CWx1kx2MEei8arfb2j0BMw" points="[0, 0, 116, 194]$[0, -126, 116, 68]$[-115, -126, 1, 68]$[-115, -145, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CWycoB2MEei8arfb2j0BMw" id="(0.7384615384615385,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fyo4ch2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/>
-        </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_J2gWgB2MEei8arfb2j0BMw" type="4001" element="_X73TQBy-EeiJONAgrNPLDA" source="_QL4BdBv9Eeir3aeVscTXqw" target="_01GZQB2LEei8arfb2j0BMw">
-          <children xmi:type="notation:Node" xmi:id="_J2g9kB2MEei8arfb2j0BMw" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J2g9kR2MEei8arfb2j0BMw" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_J2g9kh2MEei8arfb2j0BMw" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J2g9kx2MEei8arfb2j0BMw" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_J2g9lB2MEei8arfb2j0BMw" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J2g9lR2MEei8arfb2j0BMw" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_J2gWgR2MEei8arfb2j0BMw" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_J2gWgh2MEei8arfb2j0BMw" fontColor="2697711" fontName="Cantarell" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J2gWgx2MEei8arfb2j0BMw" points="[-1, 0, 95, 265]$[-1, -197, 95, 68]$[-95, -197, 1, 68]$[-95, -216, 1, 49]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J2hkoB2MEei8arfb2j0BMw" id="(0.8076923076923077,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J2hkoR2MEei8arfb2j0BMw" id="(0.4934840425531915,0.5)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_UpbtkB2MEei8arfb2j0BMw" type="4001" element="_UpKAwB2MEei8arfb2j0BMw" source="_01GZQB2LEei8arfb2j0BMw" target="_QMAkVhv9Eeir3aeVscTXqw">
           <children xmi:type="notation:Node" xmi:id="_UpbtlB2MEei8arfb2j0BMw" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UpbtlR2MEei8arfb2j0BMw" x="-5" y="-10"/>
@@ -1295,22 +1254,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s_FNgDE6EeifDcVRz6UV5g" id="(0.6114649681528662,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s_FNgTE6EeifDcVRz6UV5g" id="(0.75,0.9)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_iXelkEJlEei5GdIMm-4mwA" type="4001" element="_iWuXoEJlEei5GdIMm-4mwA" source="_QL2MRBv9Eeir3aeVscTXqw" target="_QMAkVhv9Eeir3aeVscTXqw">
-          <children xmi:type="notation:Node" xmi:id="_iXfMoEJlEei5GdIMm-4mwA" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXfMoUJlEei5GdIMm-4mwA" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_iXfMokJlEei5GdIMm-4mwA" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXfMo0JlEei5GdIMm-4mwA" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_iXfMpEJlEei5GdIMm-4mwA" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iXfMpUJlEei5GdIMm-4mwA" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_iXelkUJlEei5GdIMm-4mwA" routing="Tree"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_iXelkkJlEei5GdIMm-4mwA" fontName="Cantarell" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iXelk0JlEei5GdIMm-4mwA" points="[0, 0, 336, 382]$[-336, -382, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iXfMpkJlEei5GdIMm-4mwA" id="(0.27205882352941174,0.0)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iXfMp0JlEei5GdIMm-4mwA" id="(0.75,0.9)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_RhVAoGwOEeiADrDVd9gLEg" type="4001" element="_BXeFIEJhEei5GdIMm-4mwA" source="__AveUEJgEei5GdIMm-4mwA" target="_01GZQB2LEei8arfb2j0BMw">
           <children xmi:type="notation:Node" xmi:id="_RhkRMGwOEeiADrDVd9gLEg" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhkRMWwOEeiADrDVd9gLEg" y="-10"/>
@@ -1327,6 +1270,38 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RhpwwGwOEeiADrDVd9gLEg" id="(0.4745762711864407,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RhpwwWwOEeiADrDVd9gLEg" id="(0.4934840425531915,0.5)"/>
         </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_O9qR0HfGEei-4IQpclsuyw" type="4001" element="_iWuXoEJlEei5GdIMm-4mwA" source="_QL2MRBv9Eeir3aeVscTXqw" target="_01GZQB2LEei8arfb2j0BMw">
+          <children xmi:type="notation:Node" xmi:id="_O9sHAHfGEei-4IQpclsuyw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9sHAXfGEei-4IQpclsuyw" x="-37" y="-16"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_O9suEHfGEei-4IQpclsuyw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9tVIHfGEei-4IQpclsuyw" x="30" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_O9t8MHfGEei-4IQpclsuyw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9t8MXfGEei-4IQpclsuyw" x="-14" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_O9qR0XfGEei-4IQpclsuyw" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_O9qR0nfGEei-4IQpclsuyw" fontName="Cantarell" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O9qR03fGEei-4IQpclsuyw" points="[-1, 0, 264, 240]$[-1, -156, 264, 84]$[-215, -156, 50, 84]$[-215, -191, 50, 49]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O9xmkHfGEei-4IQpclsuyw" id="(0.27205882352941174,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O9xmkXfGEei-4IQpclsuyw" id="(0.4934840425531915,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_bVkpsHfGEei-4IQpclsuyw" type="4001" element="_bVYccHfGEei-4IQpclsuyw" source="_bVgYQHfGEei-4IQpclsuyw" target="_01GZQB2LEei8arfb2j0BMw">
+          <children xmi:type="notation:Node" xmi:id="_bVlQwHfGEei-4IQpclsuyw" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bVlQwXfGEei-4IQpclsuyw" x="4" y="-18"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_bVlQwnfGEei-4IQpclsuyw" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bVlQw3fGEei-4IQpclsuyw" x="-8" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_bVlQxHfGEei-4IQpclsuyw" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bVlQxXfGEei-4IQpclsuyw" x="-41" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_bVkpsXfGEei-4IQpclsuyw" routing="Tree"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_bVkpsnfGEei-4IQpclsuyw" fontName="Cantarell" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bVkps3fGEei-4IQpclsuyw" points="[0, -49, 154, 217]$[0, -229, 154, 37]$[-157, -229, -3, 37]$[-157, -264, -3, 2]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bVlQxnfGEei-4IQpclsuyw" id="(0.3701552188865136,0.5)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bVlQx3fGEei-4IQpclsuyw" id="(0.520618556701031,0.98)"/>
+        </edges>
       </data>
     </ownedAnnotationEntries>
     <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QK-CgBv9Eeir3aeVscTXqw" name="Model" tooltipText="" outgoingEdges="_QLkfcBv9Eeir3aeVscTXqw" width="12" height="10">
@@ -1375,9 +1350,9 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLEJIRv9Eeir3aeVscTXqw" name="ContainsCompartment" tooltipText="" outgoingEdges="_iWuXoEJlEei5GdIMm-4mwA" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsCompartment"/>
-      <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsCompartment"/>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLEJIRv9Eeir3aeVscTXqw" name="ContainsType" tooltipText="" outgoingEdges="_iWuXoEJlEei5GdIMm-4mwA" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsType"/>
+      <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsType"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
       <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
       <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
@@ -1386,28 +1361,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLGlYRv9Eeir3aeVscTXqw" name="IsTarget" tooltipText="" outgoingEdges="_X73TQBy-EeiJONAgrNPLDA" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTarget"/>
-      <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTarget"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Ma8CIB2MEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLHzgBv9Eeir3aeVscTXqw" name="IsParent" tooltipText="" outgoingEdges="_XfgucBy-EeiJONAgrNPLDA" width="12" height="10">
-      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsParent"/>
-      <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsParent"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_LefoAB2MEei8arfb2j0BMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLIakBv9Eeir3aeVscTXqw" name="ActionEnum" tooltipText="" width="12" height="10">
       <target xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//ActionEnum"/>
       <semanticElements xmi:type="ecore:EEnum" href="editpolicymodel.ecore#//ActionEnum"/>
@@ -1530,7 +1483,7 @@
         <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
       </ownedElements>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLSLkRv9Eeir3aeVscTXqw" name="ConstraintRule" tooltipText="" incomingEdges="_UpKAwB2MEei8arfb2j0BMw _UtIakBwHEeir3aeVscTXqw _UhwAYC4jEei--d1NiPU4Dw _7rCJAC4jEei--d1NiPU4Dw _8wgjUC4jEei--d1NiPU4Dw _9pxGkC4jEei--d1NiPU4Dw _-S5jIC4jEei--d1NiPU4Dw _M4RVADEtEeiF0ru3Etlc_g _s9vJsDE6EeifDcVRz6UV5g _iWuXoEJlEei5GdIMm-4mwA" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_QLSLkRv9Eeir3aeVscTXqw" name="ConstraintRule" tooltipText="" incomingEdges="_UpKAwB2MEei8arfb2j0BMw _UtIakBwHEeir3aeVscTXqw _UhwAYC4jEei--d1NiPU4Dw _7rCJAC4jEei--d1NiPU4Dw _8wgjUC4jEei--d1NiPU4Dw _9pxGkC4jEei--d1NiPU4Dw _-S5jIC4jEei--d1NiPU4Dw _M4RVADEtEeiF0ru3Etlc_g _s9vJsDE6EeifDcVRz6UV5g" width="12" height="10">
       <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ConstraintRule"/>
       <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ConstraintRule"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1684,30 +1637,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_XfgucBy-EeiJONAgrNPLDA" sourceNode="_QLHzgBv9Eeir3aeVscTXqw" targetNode="_00vM4B2LEei8arfb2j0BMw">
-      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsParent"/>
-      <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsParent/@eGenericSuperTypes.0"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Leox8B2MEei8arfb2j0BMw" 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="_Leox8R2MEei8arfb2j0BMw" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Leox8h2MEei8arfb2j0BMw" 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="_X73TQBy-EeiJONAgrNPLDA" sourceNode="_QLGlYRv9Eeir3aeVscTXqw" targetNode="_00vM4B2LEei8arfb2j0BMw">
-      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTarget"/>
-      <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsTarget/@eGenericSuperTypes.0"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_MbCIwB2MEei8arfb2j0BMw" 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="_MbCIwR2MEei8arfb2j0BMw" showIcon="false">
-          <labelFormat>italic</labelFormat>
-        </beginLabelStyle>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_MbCIwh2MEei8arfb2j0BMw" showIcon="false"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_3enWEBzDEeiJONAgrNPLDA" name="OrConstraintRule" tooltipText="" outgoingEdges="_6Wzy8C4hEei--d1NiPU4Dw" width="12" height="10">
       <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrConstraintRule"/>
       <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//OrConstraintRule"/>
@@ -1753,7 +1682,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_00vM4B2LEei8arfb2j0BMw" name="TypeArgumentRule" tooltipText="" outgoingEdges="_UpKAwB2MEei8arfb2j0BMw" incomingEdges="_QKGQ8B2LEei8arfb2j0BMw _QLu3gxv9Eeir3aeVscTXqw _XfgucBy-EeiJONAgrNPLDA _X73TQBy-EeiJONAgrNPLDA _BXeFIEJhEei5GdIMm-4mwA" width="12" height="10">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_00vM4B2LEei8arfb2j0BMw" name="TypeArgumentRule" tooltipText="" outgoingEdges="_UpKAwB2MEei8arfb2j0BMw" incomingEdges="_QKGQ8B2LEei8arfb2j0BMw _QLu3gxv9Eeir3aeVscTXqw _BXeFIEJhEei5GdIMm-4mwA _iWuXoEJlEei5GdIMm-4mwA _bVYccHfGEei-4IQpclsuyw" width="12" height="10">
       <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TypeArgumentRule"/>
       <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//TypeArgumentRule"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2790,9 +2719,9 @@
       </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="_iWuXoEJlEei5GdIMm-4mwA" sourceNode="_QLEJIRv9Eeir3aeVscTXqw" targetNode="_QLSLkRv9Eeir3aeVscTXqw">
-      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsCompartment"/>
-      <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//ContainsCompartment/@eGenericSuperTypes.0"/>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_iWuXoEJlEei5GdIMm-4mwA" sourceNode="_QLEJIRv9Eeir3aeVscTXqw" targetNode="_00vM4B2LEei8arfb2j0BMw">
+      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//ContainsType"/>
+      <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//ContainsType/@eGenericSuperTypes.0"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_iWu-sEJlEei5GdIMm-4mwA" 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="_iWu-sUJlEei5GdIMm-4mwA" showIcon="false">
@@ -2802,6 +2731,29 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
     </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_bUnAYHfGEei-4IQpclsuyw" name="IsTargetConnectionType" tooltipText="" outgoingEdges="_bVYccHfGEei-4IQpclsuyw" width="12" height="10">
+      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTargetConnectionType"/>
+      <semanticElements xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTargetConnectionType"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_bUnAYXfGEei-4IQpclsuyw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_bVYccHfGEei-4IQpclsuyw" sourceNode="_bUnAYHfGEei-4IQpclsuyw" targetNode="_00vM4B2LEei8arfb2j0BMw">
+      <target xmi:type="ecore:EClass" href="editpolicymodel.ecore#//IsTargetConnectionType"/>
+      <semanticElements xmi:type="ecore:EGenericType" href="editpolicymodel.ecore#//IsTargetConnectionType/@eGenericSuperTypes.0"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_bVZDgHfGEei-4IQpclsuyw" 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="_bVZDgXfGEei-4IQpclsuyw" showIcon="false">
+          <labelFormat>italic</labelFormat>
+        </beginLabelStyle>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_bVZDgnfGEei-4IQpclsuyw" 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="_PQun1hv9Eeir3aeVscTXqw"/>
     <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/ContainsCompartment.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/ContainsCompartment.java
deleted file mode 100644
index f7add982ca9724d76aab8dcb4567829e498edbd2..0000000000000000000000000000000000000000
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/ContainsCompartment.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package editpolicymodel;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Contains Compartment</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see editpolicymodel.editpolicymodelPackage#getContainsCompartment()
- * @model
- * @generated
- */
-public interface ContainsCompartment extends ConstraintRule {
-} // ContainsCompartment
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/ContainsType.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/ContainsType.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1ba892ecd9d406b866d86cd76e8d166a1cca1b4
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/ContainsType.java
@@ -0,0 +1,17 @@
+/**
+ */
+package editpolicymodel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Contains Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see editpolicymodel.editpolicymodelPackage#getContainsType()
+ * @model
+ * @generated
+ */
+public interface ContainsType extends TypeArgumentRule {
+} // ContainsType
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsParent.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsParent.java
deleted file mode 100644
index 597d7d273f557725c51a5a576456954bd589b404..0000000000000000000000000000000000000000
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsParent.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package editpolicymodel;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Is Parent</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see editpolicymodel.editpolicymodelPackage#getIsParent()
- * @model
- * @generated
- */
-public interface IsParent extends TypeArgumentRule {
-} // IsParent
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsTarget.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsTarget.java
deleted file mode 100644
index 36ac380044564b0b0c7db91e312882e4be2e5c1d..0000000000000000000000000000000000000000
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsTarget.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- */
-package editpolicymodel;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Is Target</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see editpolicymodel.editpolicymodelPackage#getIsTarget()
- * @model
- * @generated
- */
-public interface IsTarget extends TypeArgumentRule {
-} // IsTarget
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsTargetConnectionType.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsTargetConnectionType.java
new file mode 100644
index 0000000000000000000000000000000000000000..f992490f99da64edc4975d5e720c09c6deeb9957
--- /dev/null
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/IsTargetConnectionType.java
@@ -0,0 +1,17 @@
+/**
+ */
+package editpolicymodel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Is Target Connection Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see editpolicymodel.editpolicymodelPackage#getIsTargetConnectionType()
+ * @model
+ * @generated
+ */
+public interface IsTargetConnectionType extends TypeArgumentRule {
+} // IsTargetConnectionType
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/TypeEnum.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/TypeEnum.java
index 0b95e02bd98f05180d53c2df0d78361f38f7d5d0..286bebb059341e40f55e5750b94f59ab20fc5b94 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/TypeEnum.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/TypeEnum.java
@@ -196,7 +196,9 @@ public enum TypeEnum implements Enumerator {
 	 * @generated
 	 * @ordered
 	 */
-	NATURAL_TYPE(17, "NaturalType", "NaturalType"), /**
+	NATURAL_TYPE(17, "NaturalType", "NaturalType"),
+
+	/**
 	 * The '<em><b>Total</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java
index 9c64e676bb50eb02dd50c204076ca60318dd4d4f..d3b62232b24f11fabaa24e833198c64c7906e362 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelFactory.java
@@ -40,31 +40,13 @@ public interface editpolicymodelFactory extends EFactory {
 	Policy createPolicy();
 
 	/**
-	 * Returns a new object of class '<em>Contains Compartment</em>'.
+	 * Returns a new object of class '<em>Contains Type</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Contains Compartment</em>'.
+	 * @return a new object of class '<em>Contains Type</em>'.
 	 * @generated
 	 */
-	ContainsCompartment createContainsCompartment();
-
-	/**
-	 * Returns a new object of class '<em>Is Target</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Is Target</em>'.
-	 * @generated
-	 */
-	IsTarget createIsTarget();
-
-	/**
-	 * Returns a new object of class '<em>Is Parent</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Is Parent</em>'.
-	 * @generated
-	 */
-	IsParent createIsParent();
+	ContainsType createContainsType();
 
 	/**
 	 * Returns a new object of class '<em>Is Feature</em>'.
@@ -246,6 +228,15 @@ public interface editpolicymodelFactory extends EFactory {
 	 */
 	InType createInType();
 
+	/**
+	 * Returns a new object of class '<em>Is Target Connection Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Is Target Connection Type</em>'.
+	 * @generated
+	 */
+	IsTargetConnectionType createIsTargetConnectionType();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java
index a4faf987ed1d239d7d19f47ae2926730a6e67309..a98f958a22dca3dd6d7d86d6c3f635902ec14fdb 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/editpolicymodelPackage.java
@@ -175,7 +175,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getConstraintRule()
 	 * @generated
 	 */
-	int CONSTRAINT_RULE = 7;
+	int CONSTRAINT_RULE = 5;
 
 	/**
 	 * The number of structural features of the '<em>Constraint Rule</em>' class.
@@ -195,34 +195,6 @@ public interface editpolicymodelPackage extends EPackage {
 	 */
 	int CONSTRAINT_RULE_OPERATION_COUNT = 0;
 
-	/**
-	 * The meta object id for the '{@link editpolicymodel.impl.ContainsCompartmentImpl <em>Contains Compartment</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see editpolicymodel.impl.ContainsCompartmentImpl
-	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getContainsCompartment()
-	 * @generated
-	 */
-	int CONTAINS_COMPARTMENT = 2;
-
-	/**
-	 * The number of structural features of the '<em>Contains Compartment</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTAINS_COMPARTMENT_FEATURE_COUNT = CONSTRAINT_RULE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Contains Compartment</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CONTAINS_COMPARTMENT_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0;
-
 	/**
 	 * The meta object id for the '{@link editpolicymodel.impl.TypeArgumentRuleImpl <em>Type Argument Rule</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -231,7 +203,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getTypeArgumentRule()
 	 * @generated
 	 */
-	int TYPE_ARGUMENT_RULE = 18;
+	int TYPE_ARGUMENT_RULE = 16;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -261,51 +233,14 @@ public interface editpolicymodelPackage extends EPackage {
 	int TYPE_ARGUMENT_RULE_OPERATION_COUNT = CONSTRAINT_RULE_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link editpolicymodel.impl.IsTargetImpl <em>Is Target</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see editpolicymodel.impl.IsTargetImpl
-	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsTarget()
-	 * @generated
-	 */
-	int IS_TARGET = 3;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IS_TARGET__TYPE = TYPE_ARGUMENT_RULE__TYPE;
-
-	/**
-	 * The number of structural features of the '<em>Is Target</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IS_TARGET_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of operations of the '<em>Is Target</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IS_TARGET_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link editpolicymodel.impl.IsParentImpl <em>Is Parent</em>}' class.
+	 * The meta object id for the '{@link editpolicymodel.impl.ContainsTypeImpl <em>Contains Type</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see editpolicymodel.impl.IsParentImpl
-	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsParent()
+	 * @see editpolicymodel.impl.ContainsTypeImpl
+	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getContainsType()
 	 * @generated
 	 */
-	int IS_PARENT = 4;
+	int CONTAINS_TYPE = 2;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -314,25 +249,25 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int IS_PARENT__TYPE = TYPE_ARGUMENT_RULE__TYPE;
+	int CONTAINS_TYPE__TYPE = TYPE_ARGUMENT_RULE__TYPE;
 
 	/**
-	 * The number of structural features of the '<em>Is Parent</em>' class.
+	 * The number of structural features of the '<em>Contains Type</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IS_PARENT_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0;
+	int CONTAINS_TYPE_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of operations of the '<em>Is Parent</em>' class.
+	 * The number of operations of the '<em>Contains Type</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IS_PARENT_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0;
+	int CONTAINS_TYPE_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link editpolicymodel.impl.FeatureRuleImpl <em>Feature Rule</em>}' class.
@@ -342,7 +277,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getFeatureRule()
 	 * @generated
 	 */
-	int FEATURE_RULE = 5;
+	int FEATURE_RULE = 3;
 
 	/**
 	 * The number of structural features of the '<em>Feature Rule</em>' class.
@@ -370,7 +305,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsFeature()
 	 * @generated
 	 */
-	int IS_FEATURE = 6;
+	int IS_FEATURE = 4;
 
 	/**
 	 * The feature id for the '<em><b>Feature Name</b></em>' attribute.
@@ -407,7 +342,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsTargetType()
 	 * @generated
 	 */
-	int IS_TARGET_TYPE = 8;
+	int IS_TARGET_TYPE = 6;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -444,7 +379,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getLogicalConstraintRule()
 	 * @generated
 	 */
-	int LOGICAL_CONSTRAINT_RULE = 20;
+	int LOGICAL_CONSTRAINT_RULE = 18;
 
 	/**
 	 * The number of structural features of the '<em>Logical Constraint Rule</em>' class.
@@ -472,7 +407,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getUnaryConstraintRule()
 	 * @generated
 	 */
-	int UNARY_CONSTRAINT_RULE = 9;
+	int UNARY_CONSTRAINT_RULE = 7;
 
 	/**
 	 * The feature id for the '<em><b>Rule</b></em>' containment reference.
@@ -509,7 +444,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getNotConstraintRule()
 	 * @generated
 	 */
-	int NOT_CONSTRAINT_RULE = 10;
+	int NOT_CONSTRAINT_RULE = 8;
 
 	/**
 	 * The feature id for the '<em><b>Rule</b></em>' containment reference.
@@ -546,7 +481,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getNaryConstraintRule()
 	 * @generated
 	 */
-	int NARY_CONSTRAINT_RULE = 19;
+	int NARY_CONSTRAINT_RULE = 17;
 
 	/**
 	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
@@ -583,7 +518,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getAndConstraintRule()
 	 * @generated
 	 */
-	int AND_CONSTRAINT_RULE = 11;
+	int AND_CONSTRAINT_RULE = 9;
 
 	/**
 	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
@@ -620,7 +555,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getBinaryConstraintRule()
 	 * @generated
 	 */
-	int BINARY_CONSTRAINT_RULE = 12;
+	int BINARY_CONSTRAINT_RULE = 10;
 
 	/**
 	 * The feature id for the '<em><b>Left Rule</b></em>' containment reference.
@@ -666,7 +601,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getTrueConstraintRule()
 	 * @generated
 	 */
-	int TRUE_CONSTRAINT_RULE = 13;
+	int TRUE_CONSTRAINT_RULE = 11;
 
 	/**
 	 * The number of structural features of the '<em>True Constraint Rule</em>' class.
@@ -694,7 +629,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getFalseConstraintRule()
 	 * @generated
 	 */
-	int FALSE_CONSTRAINT_RULE = 14;
+	int FALSE_CONSTRAINT_RULE = 12;
 
 	/**
 	 * The number of structural features of the '<em>False Constraint Rule</em>' class.
@@ -722,7 +657,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getOrConstraintRule()
 	 * @generated
 	 */
-	int OR_CONSTRAINT_RULE = 15;
+	int OR_CONSTRAINT_RULE = 13;
 
 	/**
 	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
@@ -759,7 +694,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getImplicationConstraintRule()
 	 * @generated
 	 */
-	int IMPLICATION_CONSTRAINT_RULE = 16;
+	int IMPLICATION_CONSTRAINT_RULE = 14;
 
 	/**
 	 * The feature id for the '<em><b>Left Rule</b></em>' containment reference.
@@ -805,7 +740,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsSourceType()
 	 * @generated
 	 */
-	int IS_SOURCE_TYPE = 17;
+	int IS_SOURCE_TYPE = 15;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -842,7 +777,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getLogicalFeatureRule()
 	 * @generated
 	 */
-	int LOGICAL_FEATURE_RULE = 26;
+	int LOGICAL_FEATURE_RULE = 24;
 
 	/**
 	 * The number of structural features of the '<em>Logical Feature Rule</em>' class.
@@ -870,7 +805,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getTrueFeatureRule()
 	 * @generated
 	 */
-	int TRUE_FEATURE_RULE = 21;
+	int TRUE_FEATURE_RULE = 19;
 
 	/**
 	 * The number of structural features of the '<em>True Feature Rule</em>' class.
@@ -898,7 +833,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getUnaryFeatureRule()
 	 * @generated
 	 */
-	int UNARY_FEATURE_RULE = 28;
+	int UNARY_FEATURE_RULE = 26;
 
 	/**
 	 * The feature id for the '<em><b>Rule</b></em>' containment reference.
@@ -935,7 +870,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getNotFeatureRule()
 	 * @generated
 	 */
-	int NOT_FEATURE_RULE = 22;
+	int NOT_FEATURE_RULE = 20;
 
 	/**
 	 * The feature id for the '<em><b>Rule</b></em>' containment reference.
@@ -972,7 +907,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getFalseFeatureRule()
 	 * @generated
 	 */
-	int FALSE_FEATURE_RULE = 23;
+	int FALSE_FEATURE_RULE = 21;
 
 	/**
 	 * The number of structural features of the '<em>False Feature Rule</em>' class.
@@ -1000,7 +935,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getNaryFeatureRule()
 	 * @generated
 	 */
-	int NARY_FEATURE_RULE = 24;
+	int NARY_FEATURE_RULE = 22;
 
 	/**
 	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
@@ -1037,7 +972,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getBinaryFeatureRule()
 	 * @generated
 	 */
-	int BINARY_FEATURE_RULE = 25;
+	int BINARY_FEATURE_RULE = 23;
 
 	/**
 	 * The feature id for the '<em><b>Right Rule</b></em>' containment reference.
@@ -1083,7 +1018,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getImplicationFeatureRule()
 	 * @generated
 	 */
-	int IMPLICATION_FEATURE_RULE = 27;
+	int IMPLICATION_FEATURE_RULE = 25;
 
 	/**
 	 * The feature id for the '<em><b>Right Rule</b></em>' containment reference.
@@ -1129,7 +1064,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getOrFeatureRule()
 	 * @generated
 	 */
-	int OR_FEATURE_RULE = 29;
+	int OR_FEATURE_RULE = 27;
 
 	/**
 	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
@@ -1166,7 +1101,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getAndFeatureRule()
 	 * @generated
 	 */
-	int AND_FEATURE_RULE = 30;
+	int AND_FEATURE_RULE = 28;
 
 	/**
 	 * The feature id for the '<em><b>Rules</b></em>' containment reference list.
@@ -1203,7 +1138,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getSourceEqualsTarget()
 	 * @generated
 	 */
-	int SOURCE_EQUALS_TARGET = 31;
+	int SOURCE_EQUALS_TARGET = 29;
 
 	/**
 	 * The number of structural features of the '<em>Source Equals Target</em>' class.
@@ -1231,7 +1166,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getSourceEqualsTargetType()
 	 * @generated
 	 */
-	int SOURCE_EQUALS_TARGET_TYPE = 32;
+	int SOURCE_EQUALS_TARGET_TYPE = 30;
 
 	/**
 	 * The number of structural features of the '<em>Source Equals Target Type</em>' class.
@@ -1259,7 +1194,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getInType()
 	 * @generated
 	 */
-	int IN_TYPE = 33;
+	int IN_TYPE = 31;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' attribute.
@@ -1288,6 +1223,43 @@ public interface editpolicymodelPackage extends EPackage {
 	 */
 	int IN_TYPE_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0;
 
+	/**
+	 * The meta object id for the '{@link editpolicymodel.impl.IsTargetConnectionTypeImpl <em>Is Target Connection Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see editpolicymodel.impl.IsTargetConnectionTypeImpl
+	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsTargetConnectionType()
+	 * @generated
+	 */
+	int IS_TARGET_CONNECTION_TYPE = 32;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IS_TARGET_CONNECTION_TYPE__TYPE = TYPE_ARGUMENT_RULE__TYPE;
+
+	/**
+	 * The number of structural features of the '<em>Is Target Connection Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IS_TARGET_CONNECTION_TYPE_FEATURE_COUNT = TYPE_ARGUMENT_RULE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Is Target Connection Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IS_TARGET_CONNECTION_TYPE_OPERATION_COUNT = TYPE_ARGUMENT_RULE_OPERATION_COUNT + 0;
+
 	/**
 	 * The meta object id for the '{@link editpolicymodel.ActionEnum <em>Action Enum</em>}' enum.
 	 * <!-- begin-user-doc -->
@@ -1296,7 +1268,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getActionEnum()
 	 * @generated
 	 */
-	int ACTION_ENUM = 34;
+	int ACTION_ENUM = 33;
 
 	/**
 	 * The meta object id for the '{@link editpolicymodel.TypeEnum <em>Type Enum</em>}' enum.
@@ -1306,7 +1278,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getTypeEnum()
 	 * @generated
 	 */
-	int TYPE_ENUM = 35;
+	int TYPE_ENUM = 34;
 
 	/**
 	 * The meta object id for the '{@link editpolicymodel.FeatureNameEnum <em>Feature Name Enum</em>}' enum.
@@ -1316,7 +1288,7 @@ public interface editpolicymodelPackage extends EPackage {
 	 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getFeatureNameEnum()
 	 * @generated
 	 */
-	int FEATURE_NAME_ENUM = 36;
+	int FEATURE_NAME_ENUM = 35;
 
 
 	/**
@@ -1406,34 +1378,14 @@ public interface editpolicymodelPackage extends EPackage {
 	EReference getPolicy_ConstraintRule();
 
 	/**
-	 * Returns the meta object for class '{@link editpolicymodel.ContainsCompartment <em>Contains Compartment</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Contains Compartment</em>'.
-	 * @see editpolicymodel.ContainsCompartment
-	 * @generated
-	 */
-	EClass getContainsCompartment();
-
-	/**
-	 * Returns the meta object for class '{@link editpolicymodel.IsTarget <em>Is Target</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Is Target</em>'.
-	 * @see editpolicymodel.IsTarget
-	 * @generated
-	 */
-	EClass getIsTarget();
-
-	/**
-	 * Returns the meta object for class '{@link editpolicymodel.IsParent <em>Is Parent</em>}'.
+	 * Returns the meta object for class '{@link editpolicymodel.ContainsType <em>Contains Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Is Parent</em>'.
-	 * @see editpolicymodel.IsParent
+	 * @return the meta object for class '<em>Contains Type</em>'.
+	 * @see editpolicymodel.ContainsType
 	 * @generated
 	 */
-	EClass getIsParent();
+	EClass getContainsType();
 
 	/**
 	 * Returns the meta object for class '{@link editpolicymodel.FeatureRule <em>Feature Rule</em>}'.
@@ -1835,6 +1787,16 @@ public interface editpolicymodelPackage extends EPackage {
 	 */
 	EClass getInType();
 
+	/**
+	 * Returns the meta object for class '{@link editpolicymodel.IsTargetConnectionType <em>Is Target Connection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Is Target Connection Type</em>'.
+	 * @see editpolicymodel.IsTargetConnectionType
+	 * @generated
+	 */
+	EClass getIsTargetConnectionType();
+
 	/**
 	 * Returns the meta object for enum '{@link editpolicymodel.ActionEnum <em>Action Enum</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1957,34 +1919,14 @@ public interface editpolicymodelPackage extends EPackage {
 		EReference POLICY__CONSTRAINT_RULE = eINSTANCE.getPolicy_ConstraintRule();
 
 		/**
-		 * The meta object literal for the '{@link editpolicymodel.impl.ContainsCompartmentImpl <em>Contains Compartment</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see editpolicymodel.impl.ContainsCompartmentImpl
-		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getContainsCompartment()
-		 * @generated
-		 */
-		EClass CONTAINS_COMPARTMENT = eINSTANCE.getContainsCompartment();
-
-		/**
-		 * The meta object literal for the '{@link editpolicymodel.impl.IsTargetImpl <em>Is Target</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see editpolicymodel.impl.IsTargetImpl
-		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsTarget()
-		 * @generated
-		 */
-		EClass IS_TARGET = eINSTANCE.getIsTarget();
-
-		/**
-		 * The meta object literal for the '{@link editpolicymodel.impl.IsParentImpl <em>Is Parent</em>}' class.
+		 * The meta object literal for the '{@link editpolicymodel.impl.ContainsTypeImpl <em>Contains Type</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see editpolicymodel.impl.IsParentImpl
-		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsParent()
+		 * @see editpolicymodel.impl.ContainsTypeImpl
+		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getContainsType()
 		 * @generated
 		 */
-		EClass IS_PARENT = eINSTANCE.getIsParent();
+		EClass CONTAINS_TYPE = eINSTANCE.getContainsType();
 
 		/**
 		 * The meta object literal for the '{@link editpolicymodel.impl.FeatureRuleImpl <em>Feature Rule</em>}' class.
@@ -2356,6 +2298,16 @@ public interface editpolicymodelPackage extends EPackage {
 		 */
 		EClass IN_TYPE = eINSTANCE.getInType();
 
+		/**
+		 * The meta object literal for the '{@link editpolicymodel.impl.IsTargetConnectionTypeImpl <em>Is Target Connection Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see editpolicymodel.impl.IsTargetConnectionTypeImpl
+		 * @see editpolicymodel.impl.editpolicymodelPackageImpl#getIsTargetConnectionType()
+		 * @generated
+		 */
+		EClass IS_TARGET_CONNECTION_TYPE = eINSTANCE.getIsTargetConnectionType();
+
 		/**
 		 * The meta object literal for the '{@link editpolicymodel.ActionEnum <em>Action Enum</em>}' enum.
 		 * <!-- begin-user-doc -->
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/ContainsCompartmentImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/ContainsCompartmentImpl.java
deleted file mode 100644
index cbe765d76667972494b53782481682eccd8b0fc8..0000000000000000000000000000000000000000
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/ContainsCompartmentImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- */
-package editpolicymodel.impl;
-
-import editpolicymodel.ContainsCompartment;
-import editpolicymodel.editpolicymodelPackage;
-
-import org.eclipse.emf.ecore.EClass;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Contains Compartment</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class ContainsCompartmentImpl extends ConstraintRuleImpl implements ContainsCompartment {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ContainsCompartmentImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return editpolicymodelPackage.Literals.CONTAINS_COMPARTMENT;
-	}
-
-} //ContainsCompartmentImpl
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsTargetImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/ContainsTypeImpl.java
similarity index 58%
rename from org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsTargetImpl.java
rename to org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/ContainsTypeImpl.java
index 1e047c47a8040458291d6fdd2f44f19cf4904924..36a435224b69948115dd9e4e3ecf7606747fc542 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsTargetImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/ContainsTypeImpl.java
@@ -2,25 +2,25 @@
  */
 package editpolicymodel.impl;
 
-import editpolicymodel.IsTarget;
+import editpolicymodel.ContainsType;
 import editpolicymodel.editpolicymodelPackage;
 
 import org.eclipse.emf.ecore.EClass;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Is Target</b></em>'.
+ * An implementation of the model object '<em><b>Contains Type</b></em>'.
  * <!-- end-user-doc -->
  *
  * @generated
  */
-public class IsTargetImpl extends TypeArgumentRuleImpl implements IsTarget {
+public class ContainsTypeImpl extends TypeArgumentRuleImpl implements ContainsType {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected IsTargetImpl() {
+	protected ContainsTypeImpl() {
 		super();
 	}
 
@@ -31,7 +31,7 @@ public class IsTargetImpl extends TypeArgumentRuleImpl implements IsTarget {
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return editpolicymodelPackage.Literals.IS_TARGET;
+		return editpolicymodelPackage.Literals.CONTAINS_TYPE;
 	}
 
-} //IsTargetImpl
+} //ContainsTypeImpl
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsParentImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsTargetConnectionTypeImpl.java
similarity index 52%
rename from org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsParentImpl.java
rename to org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsTargetConnectionTypeImpl.java
index d9b62dd538ccd5f233d8993448ffa075eb98c936..4aa224764f4b190ee3289cdfc7aa1e381286f906 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsParentImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/IsTargetConnectionTypeImpl.java
@@ -2,25 +2,25 @@
  */
 package editpolicymodel.impl;
 
-import editpolicymodel.IsParent;
+import editpolicymodel.IsTargetConnectionType;
 import editpolicymodel.editpolicymodelPackage;
 
 import org.eclipse.emf.ecore.EClass;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Is Parent</b></em>'.
+ * An implementation of the model object '<em><b>Is Target Connection Type</b></em>'.
  * <!-- end-user-doc -->
  *
  * @generated
  */
-public class IsParentImpl extends TypeArgumentRuleImpl implements IsParent {
+public class IsTargetConnectionTypeImpl extends TypeArgumentRuleImpl implements IsTargetConnectionType {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected IsParentImpl() {
+	protected IsTargetConnectionTypeImpl() {
 		super();
 	}
 
@@ -31,7 +31,7 @@ public class IsParentImpl extends TypeArgumentRuleImpl implements IsParent {
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return editpolicymodelPackage.Literals.IS_PARENT;
+		return editpolicymodelPackage.Literals.IS_TARGET_CONNECTION_TYPE;
 	}
 
-} //IsParentImpl
+} //IsTargetConnectionTypeImpl
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java
index 0d3a56cb45642215f1302ab8890213feac0641e1..f184852ae915e162089ab6e742ac68a4afb6fcc4 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelFactoryImpl.java
@@ -59,9 +59,7 @@ public class editpolicymodelFactoryImpl extends EFactoryImpl implements editpoli
 		switch (eClass.getClassifierID()) {
 			case editpolicymodelPackage.MODEL: return createModel();
 			case editpolicymodelPackage.POLICY: return createPolicy();
-			case editpolicymodelPackage.CONTAINS_COMPARTMENT: return createContainsCompartment();
-			case editpolicymodelPackage.IS_TARGET: return createIsTarget();
-			case editpolicymodelPackage.IS_PARENT: return createIsParent();
+			case editpolicymodelPackage.CONTAINS_TYPE: return createContainsType();
 			case editpolicymodelPackage.IS_FEATURE: return createIsFeature();
 			case editpolicymodelPackage.IS_TARGET_TYPE: return createIsTargetType();
 			case editpolicymodelPackage.NOT_CONSTRAINT_RULE: return createNotConstraintRule();
@@ -82,6 +80,7 @@ public class editpolicymodelFactoryImpl extends EFactoryImpl implements editpoli
 			case editpolicymodelPackage.SOURCE_EQUALS_TARGET: return createSourceEqualsTarget();
 			case editpolicymodelPackage.SOURCE_EQUALS_TARGET_TYPE: return createSourceEqualsTargetType();
 			case editpolicymodelPackage.IN_TYPE: return createInType();
+			case editpolicymodelPackage.IS_TARGET_CONNECTION_TYPE: return createIsTargetConnectionType();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -150,29 +149,9 @@ public class editpolicymodelFactoryImpl extends EFactoryImpl implements editpoli
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public ContainsCompartment createContainsCompartment() {
-		ContainsCompartmentImpl containsCompartment = new ContainsCompartmentImpl();
-		return containsCompartment;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IsTarget createIsTarget() {
-		IsTargetImpl isTarget = new IsTargetImpl();
-		return isTarget;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IsParent createIsParent() {
-		IsParentImpl isParent = new IsParentImpl();
-		return isParent;
+	public ContainsType createContainsType() {
+		ContainsTypeImpl containsType = new ContainsTypeImpl();
+		return containsType;
 	}
 
 	/**
@@ -375,6 +354,16 @@ public class editpolicymodelFactoryImpl extends EFactoryImpl implements editpoli
 		return inType;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IsTargetConnectionType createIsTargetConnectionType() {
+		IsTargetConnectionTypeImpl isTargetConnectionType = new IsTargetConnectionTypeImpl();
+		return isTargetConnectionType;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java
index 827c3e6312e0f30c7d318d054922c99ba3378478..fb8ba99df4e1ed673381d9c9b1bb8b332a7af238 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/impl/editpolicymodelPackageImpl.java
@@ -8,7 +8,7 @@ import editpolicymodel.AndFeatureRule;
 import editpolicymodel.BinaryConstraintRule;
 import editpolicymodel.BinaryFeatureRule;
 import editpolicymodel.ConstraintRule;
-import editpolicymodel.ContainsCompartment;
+import editpolicymodel.ContainsType;
 import editpolicymodel.FalseConstraintRule;
 import editpolicymodel.FalseFeatureRule;
 import editpolicymodel.FeatureNameEnum;
@@ -17,9 +17,8 @@ import editpolicymodel.ImplicationConstraintRule;
 import editpolicymodel.ImplicationFeatureRule;
 import editpolicymodel.InType;
 import editpolicymodel.IsFeature;
-import editpolicymodel.IsParent;
 import editpolicymodel.IsSourceType;
-import editpolicymodel.IsTarget;
+import editpolicymodel.IsTargetConnectionType;
 import editpolicymodel.IsTargetType;
 import editpolicymodel.LogicalConstraintRule;
 import editpolicymodel.LogicalFeatureRule;
@@ -78,21 +77,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass containsCompartmentEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass isTargetEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass isParentEClass = null;
+	private EClass containsTypeEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -297,6 +282,13 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 	 */
 	private EClass inTypeEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass isTargetConnectionTypeEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -459,26 +451,8 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getContainsCompartment() {
-		return containsCompartmentEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIsTarget() {
-		return isTargetEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getIsParent() {
-		return isParentEClass;
+	public EClass getContainsType() {
+		return containsTypeEClass;
 	}
 
 	/**
@@ -832,6 +806,15 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 		return inTypeEClass;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIsTargetConnectionType() {
+		return isTargetConnectionTypeEClass;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -897,11 +880,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 		createEReference(policyEClass, POLICY__FEATURE_RULE);
 		createEReference(policyEClass, POLICY__CONSTRAINT_RULE);
 
-		containsCompartmentEClass = createEClass(CONTAINS_COMPARTMENT);
-
-		isTargetEClass = createEClass(IS_TARGET);
-
-		isParentEClass = createEClass(IS_PARENT);
+		containsTypeEClass = createEClass(CONTAINS_TYPE);
 
 		featureRuleEClass = createEClass(FEATURE_RULE);
 
@@ -971,6 +950,8 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 
 		inTypeEClass = createEClass(IN_TYPE);
 
+		isTargetConnectionTypeEClass = createEClass(IS_TARGET_CONNECTION_TYPE);
+
 		// Create enums
 		actionEnumEEnum = createEEnum(ACTION_ENUM);
 		typeEnumEEnum = createEEnum(TYPE_ENUM);
@@ -1005,9 +986,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 		// Set bounds for type parameters
 
 		// Add supertypes to classes
-		containsCompartmentEClass.getESuperTypes().add(this.getConstraintRule());
-		isTargetEClass.getESuperTypes().add(this.getTypeArgumentRule());
-		isParentEClass.getESuperTypes().add(this.getTypeArgumentRule());
+		containsTypeEClass.getESuperTypes().add(this.getTypeArgumentRule());
 		isFeatureEClass.getESuperTypes().add(this.getFeatureRule());
 		isTargetTypeEClass.getESuperTypes().add(this.getTypeArgumentRule());
 		unaryConstraintRuleEClass.getESuperTypes().add(this.getLogicalConstraintRule());
@@ -1035,6 +1014,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 		sourceEqualsTargetEClass.getESuperTypes().add(this.getConstraintRule());
 		sourceEqualsTargetTypeEClass.getESuperTypes().add(this.getConstraintRule());
 		inTypeEClass.getESuperTypes().add(this.getTypeArgumentRule());
+		isTargetConnectionTypeEClass.getESuperTypes().add(this.getTypeArgumentRule());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1047,11 +1027,7 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 		initEReference(getPolicy_FeatureRule(), this.getFeatureRule(), null, "featureRule", null, 0, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getPolicy_ConstraintRule(), this.getConstraintRule(), null, "constraintRule", null, 0, 1, Policy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(containsCompartmentEClass, ContainsCompartment.class, "ContainsCompartment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(isTargetEClass, IsTarget.class, "IsTarget", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(isParentEClass, IsParent.class, "IsParent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEClass(containsTypeEClass, ContainsType.class, "ContainsType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(featureRuleEClass, FeatureRule.class, "FeatureRule", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -1121,6 +1097,8 @@ public class editpolicymodelPackageImpl extends EPackageImpl implements editpoli
 
 		initEClass(inTypeEClass, InType.class, "InType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
+		initEClass(isTargetConnectionTypeEClass, IsTargetConnectionType.class, "IsTargetConnectionType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		// Initialize enums and add enum literals
 		initEEnum(actionEnumEEnum, ActionEnum.class, "ActionEnum");
 		addEEnumLiteral(actionEnumEEnum, ActionEnum.CREATE);
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java
index 551d40412500524a011353860714136fcea096ef..6bb7a3657017e1b5ce903ec213a8a39d9f81e0da 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelAdapterFactory.java
@@ -76,16 +76,8 @@ public class editpolicymodelAdapterFactory extends AdapterFactoryImpl {
 				return createPolicyAdapter();
 			}
 			@Override
-			public Adapter caseContainsCompartment(ContainsCompartment object) {
-				return createContainsCompartmentAdapter();
-			}
-			@Override
-			public Adapter caseIsTarget(IsTarget object) {
-				return createIsTargetAdapter();
-			}
-			@Override
-			public Adapter caseIsParent(IsParent object) {
-				return createIsParentAdapter();
+			public Adapter caseContainsType(ContainsType object) {
+				return createContainsTypeAdapter();
 			}
 			@Override
 			public Adapter caseFeatureRule(FeatureRule object) {
@@ -204,6 +196,10 @@ public class editpolicymodelAdapterFactory extends AdapterFactoryImpl {
 				return createInTypeAdapter();
 			}
 			@Override
+			public Adapter caseIsTargetConnectionType(IsTargetConnectionType object) {
+				return createIsTargetConnectionTypeAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -252,44 +248,16 @@ public class editpolicymodelAdapterFactory extends AdapterFactoryImpl {
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link editpolicymodel.ContainsCompartment <em>Contains Compartment</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see editpolicymodel.ContainsCompartment
-	 * @generated
-	 */
-	public Adapter createContainsCompartmentAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link editpolicymodel.IsTarget <em>Is Target</em>}'.
+	 * Creates a new adapter for an object of class '{@link editpolicymodel.ContainsType <em>Contains Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see editpolicymodel.IsTarget
+	 * @see editpolicymodel.ContainsType
 	 * @generated
 	 */
-	public Adapter createIsTargetAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link editpolicymodel.IsParent <em>Is Parent</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see editpolicymodel.IsParent
-	 * @generated
-	 */
-	public Adapter createIsParentAdapter() {
+	public Adapter createContainsTypeAdapter() {
 		return null;
 	}
 
@@ -699,6 +667,20 @@ public class editpolicymodelAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link editpolicymodel.IsTargetConnectionType <em>Is Target Connection Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see editpolicymodel.IsTargetConnectionType
+	 * @generated
+	 */
+	public Adapter createIsTargetConnectionTypeAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
diff --git a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java
index b480b7ff9421009e87cbb17b229db99ea613ce7b..ca8381139456bbd2ad81a5e3937f4a0dc2ecddb5 100644
--- a/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java
+++ b/org.framed.iorm.editpolicymodel/src/editpolicymodel/util/editpolicymodelSwitch.java
@@ -78,26 +78,11 @@ public class editpolicymodelSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case editpolicymodelPackage.CONTAINS_COMPARTMENT: {
-				ContainsCompartment containsCompartment = (ContainsCompartment)theEObject;
-				T result = caseContainsCompartment(containsCompartment);
-				if (result == null) result = caseConstraintRule(containsCompartment);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case editpolicymodelPackage.IS_TARGET: {
-				IsTarget isTarget = (IsTarget)theEObject;
-				T result = caseIsTarget(isTarget);
-				if (result == null) result = caseTypeArgumentRule(isTarget);
-				if (result == null) result = caseConstraintRule(isTarget);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case editpolicymodelPackage.IS_PARENT: {
-				IsParent isParent = (IsParent)theEObject;
-				T result = caseIsParent(isParent);
-				if (result == null) result = caseTypeArgumentRule(isParent);
-				if (result == null) result = caseConstraintRule(isParent);
+			case editpolicymodelPackage.CONTAINS_TYPE: {
+				ContainsType containsType = (ContainsType)theEObject;
+				T result = caseContainsType(containsType);
+				if (result == null) result = caseTypeArgumentRule(containsType);
+				if (result == null) result = caseConstraintRule(containsType);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -331,6 +316,14 @@ public class editpolicymodelSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case editpolicymodelPackage.IS_TARGET_CONNECTION_TYPE: {
+				IsTargetConnectionType isTargetConnectionType = (IsTargetConnectionType)theEObject;
+				T result = caseIsTargetConnectionType(isTargetConnectionType);
+				if (result == null) result = caseTypeArgumentRule(isTargetConnectionType);
+				if (result == null) result = caseConstraintRule(isTargetConnectionType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -366,47 +359,17 @@ public class editpolicymodelSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Contains Compartment</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Contains Type</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Contains Compartment</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Contains Type</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseContainsCompartment(ContainsCompartment object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Is Target</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Is Target</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIsTarget(IsTarget object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Is Parent</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Is Parent</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseIsParent(IsParent object) {
+	public T caseContainsType(ContainsType object) {
 		return null;
 	}
 
@@ -845,6 +808,21 @@ public class editpolicymodelSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Is Target Connection Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Is Target Connection Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIsTargetConnectionType(IsTargetConnectionType object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/org.framed.iorm.ui/core/rolemodel/RoleModel.ecl b/org.framed.iorm.ui/core/rolemodel/RoleModel.ecl
index 33fd10e30934288f6470a231b21e0a6e7298a007..b197920c8f98c719b519c13d9e9414f89354204d 100644
--- a/org.framed.iorm.ui/core/rolemodel/RoleModel.ecl
+++ b/org.framed.iorm.ui/core/rolemodel/RoleModel.ecl
@@ -2,6 +2,6 @@
 //If Compartment_Types is not set, then only one CompartmentType can be
 //added in the top-level view (This will be named RoleModel).  
 Add CompartmentType (!Compartment_Types) when !InType(CompartmentType);
-Create CompartmentType (!Compartment_Types) when !InType(CompartmentType) and !ContainsCompartment();
-Direct_Edit CompartmentType (true) when true;
-  
\ No newline at end of file
+Create CompartmentType (!Compartment_Types) when !InType(CompartmentType) and !ContainsType(CompartmentType);
+Direct_Edit CompartmentType (true) when true; 
+   
\ No newline at end of file
diff --git a/org.framed.iorm.ui/core/rolemodel/RoleModel.editpolicy b/org.framed.iorm.ui/core/rolemodel/RoleModel.editpolicy
index a86ad583522893a7ec672d39226cfa1dcc82c479..165244a84ed881ae3d272c19a8e139ba448af7dc 100644
--- a/org.framed.iorm.ui/core/rolemodel/RoleModel.editpolicy
+++ b/org.framed.iorm.ui/core/rolemodel/RoleModel.editpolicy
@@ -17,7 +17,7 @@
         <rule xsi:type="editpolicymodel:InType" type="CompartmentType"/>
       </rules>
       <rules xsi:type="editpolicymodel:NotConstraintRule">
-        <rule xsi:type="editpolicymodel:ContainsCompartment"/>
+        <rule xsi:type="editpolicymodel:ContainsType" type="CompartmentType"/>
       </rules>
     </constraintRule>
   </policies>
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
index a081a3b562df3994e00db482ca895bdf0118127a..50489d6b566266b36537dfb3c284ed3c3787606b 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
@@ -20,10 +20,11 @@ import org.framed.iorm.ui.exceptions.NoDiagramFoundException;
 
 import editpolicymodel.AndConstraintRule;
 import editpolicymodel.ConstraintRule;
-import editpolicymodel.ContainsCompartment;
+import editpolicymodel.ContainsType;
 import editpolicymodel.FalseConstraintRule;
 import editpolicymodel.InType;
 import editpolicymodel.IsSourceType;
+import editpolicymodel.IsTargetConnectionType;
 import editpolicymodel.IsTargetType;
 import editpolicymodel.NotConstraintRule;
 import editpolicymodel.OrConstraintRule;
@@ -106,8 +107,12 @@ public class ConstraintRuleVisitor {
 			return isTargetTypeVisitor((IsTargetType) rule);
 		}
 
-		if (rule instanceof ContainsCompartment) {
-			return containsCompartmentVisitor((ContainsCompartment) rule);
+		if (rule instanceof ContainsType) {
+			return containsTypeVisitor((ContainsType) rule);
+		}
+		
+		if (rule instanceof IsTargetConnectionType) {
+			return isTargetConnectionTypeVisitor((IsTargetConnectionType) rule);
 		}
 
 		if (rule instanceof TrueConstraintRule) {
@@ -216,8 +221,21 @@ public class ConstraintRuleVisitor {
 		ModelElement source = UIUtil.getModelElementForAnchor(anchor);
 		return rule.getType().getLiteral().equals(source.getType().getLiteral());
 	}
+	
+	private boolean isTargetConnectionTypeVisitor(IsTargetConnectionType rule) {
+		throw new IllegalStateException("TODO");
+		/*
+		Anchor anchor = this.getTargetAnchorFromContext(this.context);
+		if (anchor == null) {
+			System.out.println("failed isTargetType() anchor== null,  this.context: " + this.context.toString());
+			return false;
+		}
+		ModelElement source = UIUtil.getModelElementForAnchor(anchor);
+		return rule.getType().getLiteral().equals(source.getType().getLiteral());
+		*/
+	}
 
-	private boolean containsCompartmentVisitor(ContainsCompartment rule) {
+	private boolean containsTypeVisitor(ContainsType rule) {
 		ContainerShape container = null;
 		if (this.context instanceof AddContext) {
 			container = ((AddContext) this.context).getTargetContainer();
@@ -233,17 +251,9 @@ public class ConstraintRuleVisitor {
 		org.framed.iorm.model.Model model = (org.framed.iorm.model.Model) o;
 		System.out.println("containsCompartmentVisitor: size()=" + model.getElements().size());
 		for (ModelElement e : model.getElements())
-			if (e.getType().equals(Type.COMPARTMENT_TYPE))
+			if (e.getType().getLiteral().equals(rule.getType().getLiteral()))
 				return true;
 		return false;
-		// TODO: this does not work, it only finds the enclosing compartment type if it
-		// exists, and is semantically equivalent to In(CompartmentType).
-		// travers Containers to find the compartment type.
-		// Diagram compartmentDiagram = findContainerDiagramOfType(container,
-		// Type.COMPARTMENT_TYPE);
-		// System.out.println("containsCompartmentVisitor: TEST: " + compartmentDiagram
-		// != null);
-		// return compartmentDiagram != null;
 	}
 
 	private boolean sourceEqualsTargetVisitor(SourceEqualsTarget rule) {