diff --git a/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeModule.xtendbin b/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeModule.xtendbin
index f2f10de59fbaa6e06d0f81e12eb948b9f6d633c1..aa32725d2855ae1f9391b6de2239b5509be953b0 100644
Binary files a/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeModule.xtendbin and b/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeModule.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeSetup.xtendbin b/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeSetup.xtendbin
index 7f9d61711a4c5dbfdad9308987ae823d485552bd..64d6baa46fcd9ff348ddfd8dcfa48ed61b581553 100644
Binary files a/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeSetup.xtendbin and b/org.framed.iorm.editpolicydsl.ide/xtend-gen/org/framed/iorm/editpolicydsl/ide/.DslIdeSetup.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/.DslUiModule.xtendbin b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/.DslUiModule.xtendbin
index 6591c35a587206ede0fbbce5048d487f0a495cd1..0570f69559a72a3a084579f945c0db3b0b86f1e0 100644
Binary files a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/.DslUiModule.xtendbin and b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/.DslUiModule.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/contentassist/.DslProposalProvider.xtendbin b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/contentassist/.DslProposalProvider.xtendbin
index b0d06ee57ca7bfc731451e286e64669f5d4c7afa..612710189fb6028827e25940652b680ded744bc2 100644
Binary files a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/contentassist/.DslProposalProvider.xtendbin and b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/contentassist/.DslProposalProvider.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslDescriptionLabelProvider.xtendbin b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslDescriptionLabelProvider.xtendbin
index 1c6c38a719a43df884bc58191d3b0fe93d49837e..46b24123b56ed4b9a8a265057047a10638ad8eef 100644
Binary files a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslDescriptionLabelProvider.xtendbin and b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslDescriptionLabelProvider.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslLabelProvider.xtendbin b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslLabelProvider.xtendbin
index d81311b19acb1d1aa40b85052071776cf3557a3a..ef1bf6b1d9321b5dce0ad8d85d696d8b0fb6c165 100644
Binary files a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslLabelProvider.xtendbin and b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/labeling/.DslLabelProvider.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/outline/.DslOutlineTreeProvider.xtendbin b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/outline/.DslOutlineTreeProvider.xtendbin
index a6a2e39cd0a76a8875ab4d9f8b9336c7ef8d8ee4..272077d13f463d3be823b2444910723041ed968d 100644
Binary files a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/outline/.DslOutlineTreeProvider.xtendbin and b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/outline/.DslOutlineTreeProvider.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/quickfix/.DslQuickfixProvider.xtendbin b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/quickfix/.DslQuickfixProvider.xtendbin
index d846d5153e8bbca5aa9df0da32ac4c616393b047..69082563a8cf5f01cf4c4f47098adb457e6a1934 100644
Binary files a/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/quickfix/.DslQuickfixProvider.xtendbin and b/org.framed.iorm.editpolicydsl.ui/xtend-gen/org/framed/iorm/editpolicydsl/ui/quickfix/.DslQuickfixProvider.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslRuntimeModule.xtendbin b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslRuntimeModule.xtendbin
index 7e3dd95056e62fa5b8db1cc9325ba54fac664bed..2026d1706c9d15216d1f645e7bd74acd5193a004 100644
Binary files a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslRuntimeModule.xtendbin and b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslRuntimeModule.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslStandaloneSetup.xtendbin b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslStandaloneSetup.xtendbin
index 29421d2ac8ab9bb9dd99991769ddbe8c877e3a5b..3850c9ca13003fcf4c4c3564d2db1d7dfc42e84a 100644
Binary files a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslStandaloneSetup.xtendbin and b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/.DslStandaloneSetup.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/formatting2/.DslFormatter.xtendbin b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/formatting2/.DslFormatter.xtendbin
index 2e85ff0a63dcc74ee1216bd686f5e83dc32ccf40..0378a27a78be2680e1d2d5c9de68ca46ad18cf65 100644
Binary files a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/formatting2/.DslFormatter.xtendbin and b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/formatting2/.DslFormatter.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/generator/.DslGenerator.xtendbin b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/generator/.DslGenerator.xtendbin
index 3890e9883a0ea0d4d266e4bfcb4be9e363f6a1bf..274537cd1ddcb6815e77c5d664385e356f6da5dd 100644
Binary files a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/generator/.DslGenerator.xtendbin and b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/generator/.DslGenerator.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/scoping/.DslScopeProvider.xtendbin b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/scoping/.DslScopeProvider.xtendbin
index 5af6f6719df6d31d504ee27d155e69491590afc4..36a73fc2e0cc4176fb1567e4f70317a7e5596470 100644
Binary files a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/scoping/.DslScopeProvider.xtendbin and b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/scoping/.DslScopeProvider.xtendbin differ
diff --git a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/validation/.DslValidator.xtendbin b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/validation/.DslValidator.xtendbin
index a5541dd3a73c2120af8484f02eb204d1ce15b133..53af2c8def45966333c988734dbd0e6e46c05624 100644
Binary files a/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/validation/.DslValidator.xtendbin and b/org.framed.iorm.editpolicydsl/xtend-gen/org/framed/iorm/editpolicydsl/validation/.DslValidator.xtendbin differ
diff --git a/org.framed.iorm.ui/core/standardPolicies.editpolicy b/org.framed.iorm.ui/core/standardPolicies.editpolicy
index eef06cef66c6ff49bb6abfe1289aae5895cba16f..3b7f10c4b3b1e8809210cbd6b07b52b72d4cfb31 100644
--- a/org.framed.iorm.ui/core/standardPolicies.editpolicy
+++ b/org.framed.iorm.ui/core/standardPolicies.editpolicy
@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="ASCII"?>
 <Editpolicymodel:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Editpolicymodel="http://framed/editpolicymodel">
+  <policies action="Start" actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Playable_by_Defining_Compartment"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
+  </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Playable_by_Defining_Compartment"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -23,6 +27,10 @@
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Behavior"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
+  <policies action="Add_Property" actionType="CompartmentType">
+    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
+    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
+  </policies>
   <policies action="Create_Property" actionType="RoleType">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Role_Properties"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -35,6 +43,10 @@
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Behavior"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
+  <policies action="Add_Property" actionType="RoleType">
+    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
+    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
+  </policies>
   <policies action="Add" actionType="Relationship">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Relationships"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -46,6 +58,13 @@
       <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
     </constraintRule>
   </policies>
+  <policies actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Naturals"/>
+    <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
+      <rules xsi:type="Editpolicymodel:IsSourceType" type="NaturalType"/>
+      <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
+    </constraintRule>
+  </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -53,6 +72,13 @@
       <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
     </constraintRule>
   </policies>
+  <policies actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature"/>
+    <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
+      <rules xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
+      <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
+    </constraintRule>
+  </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -65,10 +91,26 @@
       </rules>
     </constraintRule>
   </policies>
+  <policies actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
+    <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
+      <rules xsi:type="Editpolicymodel:AndConstraintRule">
+        <rules xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
+        <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
+      </rules>
+      <rules xsi:type="Editpolicymodel:NotConstraintRule">
+        <rule xsi:type="Editpolicymodel:SourceEqualsTarget"/>
+      </rules>
+    </constraintRule>
+  </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
   </policies>
+  <policies actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
+  </policies>
   <policies action="Add" actionType="RelationshipExclusion">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -113,21 +155,13 @@
       <rules xsi:type="Editpolicymodel:SourceEqualsTargetType"/>
     </constraintRule>
   </policies>
-  <policies action="Add" actionType="Fulfillment">
+  <policies action="Add" actionType="RoleType">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
-      <rules xsi:type="Editpolicymodel:NotConstraintRule">
-        <rule xsi:type="Editpolicymodel:OrConstraintRule">
-          <rules xsi:type="Editpolicymodel:IsTargetType" type="Group"/>
-          <rules xsi:type="Editpolicymodel:IsSourceType" type="Group"/>
-        </rule>
-      </rules>
-      <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
-    </constraintRule>
+    <constraintRule xsi:type="Editpolicymodel:InCompartment"/>
   </policies>
-  <policies action="Add" actionType="RoleType">
+  <policies actionType="RoleType">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:IsStepIn"/>
+    <constraintRule xsi:type="Editpolicymodel:InCompartment"/>
   </policies>
   <policies action="Add" actionType="CompartmentType">
     <featureRule xsi:type="Editpolicymodel:NotFeatureRule">
@@ -142,6 +176,12 @@
       </rules>
     </constraintRule>
   </policies>
+  <policies action="Add" actionType="CompartmentType">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Types"/>
+    <constraintRule xsi:type="Editpolicymodel:NotConstraintRule">
+      <rule xsi:type="Editpolicymodel:InCompartment"/>
+    </constraintRule>
+  </policies>
   <policies action="Add" actionType="Relationship">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -149,16 +189,14 @@
       <rules xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
     </constraintRule>
   </policies>
-  <policies action="Add" actionType="CompartmentType">
-    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Types"/>
-    <constraintRule xsi:type="Editpolicymodel:NotConstraintRule">
-      <rule xsi:type="Editpolicymodel:InCompartment"/>
-    </constraintRule>
-  </policies>
   <policies action="Add" actionType="DataType">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
+  <policies actionType="DataType">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
+    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
+  </policies>
   <policies action="Add" actionType="RoleGroup">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Group_Constraints"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -171,10 +209,6 @@
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="Fulfillment">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
   <policies actionType="CompartmentType">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -195,10 +229,6 @@
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="RoleType">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
   <policies actionType="NaturalType">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -211,18 +241,22 @@
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="DataType">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
   <policies action="Start" actionType="Inheritance">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
   <policies action="Start" actionType="Fulfillment">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
+  </policies>
+  <policies action="Start" actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Naturals"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="NaturalType"/>
   </policies>
+  <policies action="Start" actionType="Fulfillment">
+    <featureRule xsi:type="Editpolicymodel:IsFeature"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
+  </policies>
   <policies action="Start" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
diff --git a/org.framed.iorm.ui/modules/datatype/simpleExample.editpolicy b/org.framed.iorm.ui/modules/datatype/simpleExample.editpolicy
deleted file mode 100644
index 9ebf384bca7472b4d59b2f1550eb4679e1ccc935..0000000000000000000000000000000000000000
--- a/org.framed.iorm.ui/modules/datatype/simpleExample.editpolicy
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Editpolicymodel:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:Editpolicymodel="http://www.example.org/editpolicymodel" xsi:schemaLocation="http://www.example.org/editpolicymodel editpolicymodel.ecore"/>
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/FRaMEDDeleteConnectionFeature.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/FRaMEDDeleteConnectionFeature.java
index 8e06c2c0a65135fdfb4f0e8ae004f4c13b7add88..cc54c23fa60c2123cfe7d013f61df583bcf8ab76 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/FRaMEDDeleteConnectionFeature.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/FRaMEDDeleteConnectionFeature.java
@@ -73,7 +73,7 @@ public class FRaMEDDeleteConnectionFeature extends DefaultDeleteFeature {
 		//Step 1
 		Relation relation = (Relation) getBusinessObjectForPictogramElement(deleteContext.getPictogramElement());
 		for(FRaMEDConnectionPattern framedConnectionPattern :  connectionPatterns) {
-			if(relation.getType() == framedConnectionPattern.getModelType())
+			if(relation != null && framedConnectionPattern  != null && relation.getType() == framedConnectionPattern.getModelType())
 				framedConnectionPattern.delete(this, deleteContext);
 		}	
 		//Step 2
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 d767d6ba44a36488fc8873e4d1a192fdc267b3ed..39b44bb93e4acdd5e5d435f0607fde108926fbc7 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
@@ -1,6 +1,9 @@
 package org.framed.iorm.ui.editPolicy;
 
 import org.eclipse.graphiti.features.context.impl.AddConnectionContext;
+import org.eclipse.graphiti.features.context.impl.AddContext;
+import org.eclipse.graphiti.features.context.impl.CreateConnectionContext;
+import org.eclipse.graphiti.features.context.impl.CreateContext;
 import org.eclipse.graphiti.mm.pictograms.Anchor;
 import org.eclipse.graphiti.mm.pictograms.Diagram;
 import org.eclipse.graphiti.mm.pictograms.Shape;
@@ -16,6 +19,7 @@ import Editpolicymodel.FalseConstraintRule;
 import Editpolicymodel.InCompartment;
 import Editpolicymodel.IsSourceType;
 import Editpolicymodel.IsStepIn;
+import Editpolicymodel.IsTargetType;
 import Editpolicymodel.NotConstraintRule;
 import Editpolicymodel.OrConstraintRule;
 import Editpolicymodel.SourceEqualsTarget;
@@ -80,19 +84,39 @@ public class ConstraintRuleVisitor {
 			return !this.isStepOut;
 		}
 		if(rule instanceof InCompartment) {
-			AddCompartmentTypeContext  ctx = (AddCompartmentTypeContext) context;
-			ctx.getModelToLink().getParent();
+			org.framed.iorm.model.Shape parent = null;
+			if(this.context instanceof AddCompartmentTypeContext) {
+				AddCompartmentTypeContext  ctx = (AddCompartmentTypeContext) context;
+				parent = ctx.getModelToLink().getParent();
+			} else if(this.context instanceof AddContext) {
+				AddContext  ctx = (AddContext) context;
+				Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
+				if(contextDiagram.getName().startsWith("compartmentType"))
+					return true;
+				System.out.println("wrong diagram InCompartment(): " + contextDiagram.getName());
+				return false;
+			} else if(this.context instanceof CreateContext) {
+				CreateContext  ctx = (CreateContext) context;
+				Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
+				if(contextDiagram.getName().startsWith("compartmentType"))
+					return true;
+				System.out.println("wrong diagram InCompartment(): " + contextDiagram.getName());
+				return false;
+			} else {
+				System.out.println("wrong context InCompartment(): " + this.context.getClass());
+				return false;
+			}
 
 			String parentDiagramName = null;
 			try {
-				parentDiagramName = ctx.getModelToLink().getParent().getContainer().getParent().getName();
+				parentDiagramName = parent.getContainer().getParent().getName();
 			} catch (Exception e) {}
 			Diagram myDiagram = this.getDiagramWithName(parentDiagramName, this.diagram);
 			if(myDiagram == null)
 				return false;
-			//System.out.println("MYDIAGRAM: " + myDiagram.getName() + ", " + ctx.getModelToLink().getParent().getName() +", " + ctx.getModelToLink().getParent().getName());
+			//System.out.println("MYDIAGRAM: " + myDiagram.getName() + ", " + parent.getName() +", " + parent.getName());
 
-			if(myDiagram.getName().equals("compartmentType"))
+			if(myDiagram.getName().startsWith("compartmentType"))
 				return true;
 
 			return false;
@@ -119,8 +143,8 @@ public class ConstraintRuleVisitor {
 			return sourceEqualsTargetVisitor((SourceEqualsTarget)rule);
 		}
 		
-		if(rule instanceof IsSourceType) {
-			return isSourceTypeVisitor((IsSourceType)rule);
+		if(rule instanceof IsTargetType) {
+			return isTargetTypeVisitor((IsTargetType)rule);
 		}
 		
 		if(rule instanceof ContainsCompartment) {
@@ -138,7 +162,7 @@ public class ConstraintRuleVisitor {
 		System.out.println("checkRule for " + rule.getClass().toString() + " not implemented");
 		return true;
 	}
-	
+		
 	private boolean andRuleVisitor(AndConstraintRule rule) {
 		for(ConstraintRule abstractRule : rule.getRules()) {
 			if(!checkRule(abstractRule))
@@ -148,17 +172,23 @@ public class ConstraintRuleVisitor {
 	}
 	
 	private boolean isSourceTypeVisitor(IsSourceType rule) {
-		//System.out.println("class is: " + this.context.getClass());
-		try {
-			AddConnectionContext ctx = (AddConnectionContext) this.context;
-			Anchor sourceAnchor = ctx.getSourceAnchor();
-			ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
-			return rule.getType().getLiteral().equals(source.getType().getLiteral());
-		} catch(Exception e) {
-			System.out.println("failed isSourceType: " + e.getMessage());
+		Anchor sourceAnchor = this.getSourceAnchorFromContext(this.context);
+		if(sourceAnchor == null) {
+			System.out.println("failed isSourceType() sourceAnchor== null,  this.context: " + this.context.toString());
+			return false;
 		}
-		
-		return false;
+		ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
+		return rule.getType().getLiteral().equals(source.getType().getLiteral());
+	}
+	
+	private boolean isTargetTypeVisitor(IsTargetType rule) {
+		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) {
@@ -168,26 +198,51 @@ public class ConstraintRuleVisitor {
 	
 	private boolean sourceEqualsTargetVisitor(SourceEqualsTarget rule) {
 		//System.out.println("class is: " + this.context.getClass());
-		AddConnectionContext ctx = (AddConnectionContext) this.context;
-			Anchor sourceAnchor = ctx.getSourceAnchor();
-			ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
+		Anchor sourceAnchor = this.getSourceAnchorFromContext(this.context);
+		ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
 			
-			Anchor targetAnchor = ctx.getTargetAnchor();
-			ModelElement target = UIUtil.getModelElementForAnchor(targetAnchor);
+		Anchor targetAnchor = this.getTargetAnchorFromContext(this.context);
+		ModelElement target = UIUtil.getModelElementForAnchor(targetAnchor);
+		
+		if(targetAnchor == null || sourceAnchor == null)
+			return false;
+
+		System.out.println("sourceEqualsTargetVisitor comparison: " + source.hashCode()  + " == " + target.hashCode());
 
-			System.out.println("sourceEqualsTargetVisitor comparison: " + source.hashCode()  + " == " + target.hashCode());
+		return source.hashCode() == target.hashCode();		
+	}
 
-			return source.hashCode() == target.hashCode();		
+	private Anchor getSourceAnchorFromContext(Object context) {
+		Anchor sourceAnchor = null;
+		if(this.context instanceof AddConnectionContext) {
+			AddConnectionContext ctx = (AddConnectionContext) this.context;
+			sourceAnchor = ctx.getSourceAnchor();
+		} else if(this.context instanceof CreateConnectionContext) {
+			CreateConnectionContext ctx = (CreateConnectionContext) this.context;
+			sourceAnchor = ctx.getSourceAnchor();
+		}
+		return sourceAnchor;
 	}
 
+	private Anchor getTargetAnchorFromContext(Object context) {
+		Anchor anchor = null;
+		if(this.context instanceof AddConnectionContext) {
+			AddConnectionContext ctx = (AddConnectionContext) this.context;
+			anchor = ctx.getTargetAnchor();
+		} else if(this.context instanceof CreateConnectionContext) {
+			CreateConnectionContext ctx = (CreateConnectionContext) this.context;
+			anchor = ctx.getTargetAnchor();
+		}
+		return anchor;
+	}
+	
 	private boolean sourceEqualsTargetTypeVisitor(SourceEqualsTargetType rule) {
 		//System.out.println("class is: " + this.context.getClass());
 		try {
-			AddConnectionContext ctx = (AddConnectionContext) this.context;
-			Anchor sourceAnchor = ctx.getSourceAnchor();
+			Anchor sourceAnchor = this.getSourceAnchorFromContext(this.context);
 			ModelElement source = UIUtil.getModelElementForAnchor(sourceAnchor);
 			
-			Anchor targetAnchor = ctx.getTargetAnchor();
+			Anchor targetAnchor = this.getTargetAnchorFromContext(this.context);
 			ModelElement target = UIUtil.getModelElementForAnchor(targetAnchor);
 
 			System.out.println("sourceEqualsTargetTypeVisitor comparison: " + source.getType().getLiteral()  + " == " + target.getType().getLiteral());
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java
index d2f565d8360ce2fcaccc00f4c80157a28761159a..07cf5f013627dd7ab9faf7bddaca472a744c0a4a 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyHandler.java
@@ -39,8 +39,9 @@ public class EditPolicyHandler {
 	}
 	
 	public void updateConfig(List<Editpolicymodel.Model> models, FRaMEDConfiguration config) {
+		System.out.println("updating Config: ");
 		//parse all editpolicies to create list with activated policies
-		//load all rules which are activated by current configuration
+		//load all constraints which are activated by current configuration
 		activatedPolicies = new LinkedList<>();
 
 		FeatureRuleVisitor featureRuleVisitor = new FeatureRuleVisitor(config); 
@@ -48,9 +49,12 @@ public class EditPolicyHandler {
 			for(Editpolicymodel.Policy policy : model.getPolicies()) {
 				if(featureRuleVisitor.checkRule(policy.getFeatureRule())) {
 					activatedPolicies.add(policy); 
+					System.out.println("policyAdded: " + policy.getFeatureRule().toString());
+
 				}
 			}
 		}
+		
 	}
 	
 	/**
@@ -62,6 +66,9 @@ public class EditPolicyHandler {
 	private List<ConstraintRule> getConstraints(ActionEnum action, Type type) {
 		List<ConstraintRule> rules = new LinkedList<>();
 		
+		if(type == null)
+			return rules;
+		
 		for(Policy policy: this.activatedPolicies) {
 			if(policy.getAction().getValue() == action.getValue() && policy.getActionType().getLiteral().equals(type.getLiteral()))
 				rules.add(policy.getConstraintRule());
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/FeatureRuleVisitor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/FeatureRuleVisitor.java
index 36bd28c920c24644aad8c42d3466538cd4f111a5..8411343138f1714cdc3413608ce6715182a04a22 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/FeatureRuleVisitor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/FeatureRuleVisitor.java
@@ -71,7 +71,7 @@ public class FeatureRuleVisitor {
 
  		for (FRaMEDFeature feature : this.configuration.getFeatures()) {
  			features.add(feature.getName().getName());
- 			//System.out.println("EditPolicyHandler featureEnabled: " + feature.getName().getName());
+ 			System.out.println("EditPolicyHandler featureEnabled: " + feature.getName().getName());
  		}
 
  		if(features.contains(rule.getFeatureName().getName())) {
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java
index 9d187f29210406abbd8ff6dd3ad3e235ffcf2820..8a51c6233f60e1f4de3376cd5185105ae583b406 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/subeditors/FRaMEDFeatureEditor.java
@@ -176,6 +176,9 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	 * @param featureModel the feature model to instantiate the configuration with
 	 */
 	private void loadConfiguration(Model rootModel, IFeatureModel featureModel) {
+		if(rootModel == null) {
+			return;
+		}
 	    FRaMEDConfiguration framedConfiguration = rootModel.getFramedConfiguration();
 	    configuration = new Configuration(featureModel);
 	    configuration.getPropagator().update();
@@ -277,6 +280,8 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	 * updates the labels text and color if the configuration is valid or not
 	 */
 	 private void updateInfoLabel() {
+		 if(configuration == null)
+			 return;
 		 Boolean valid = configuration.isValid();
 		 infoLabel.setText(valid ? "VALID Configuration" : "INVALID Configuration");
 		 infoLabel.setForeground(valid ? COLOR_VALID_CONFIGURATION : COLOR_INVALID_CONFIGURATION);
@@ -288,6 +293,8 @@ public class FRaMEDFeatureEditor extends EditorPart {
 	private void updateTree() {
 	    tree.removeAll();
 	    final TreeItem root = new TreeItem(tree, 0);
+	    if(configuration == null)
+	    	return;
 	    final SelectableFeature rootFeature = configuration.getRoot();
 		root.setText(configuration.getRoot().getName());
 	    root.setData(configuration.getRoot());