diff --git a/org.framed.iorm.ui/core/standardPolicies.editpolicy b/org.framed.iorm.ui/core/standardPolicies.editpolicy
index 4d6788472f71b3eb153acd6b789f3bad1a4371ac..198b548722b30e1b1b394a9e90b6d7395998bbc0 100644
--- a/org.framed.iorm.ui/core/standardPolicies.editpolicy
+++ b/org.framed.iorm.ui/core/standardPolicies.editpolicy
@@ -47,6 +47,10 @@
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
+  <policies action="Start" actionType="Relationship">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Relationships"/>
+    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
+  </policies>
   <policies action="Add" actionType="Relationship">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Relationships"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -58,12 +62,9 @@
       <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
     </constraintRule>
   </policies>
-  <policies actionType="Fulfillment">
+  <policies action="Start" 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>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="NaturalType"/>
   </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature"/>
@@ -72,12 +73,9 @@
       <rules xsi:type="Editpolicymodel:IsTargetType" type="CompartmentType"/>
     </constraintRule>
   </policies>
-  <policies actionType="Fulfillment">
+  <policies action="Start" 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>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
   </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
@@ -91,23 +89,15 @@
       </rules>
     </constraintRule>
   </policies>
-  <policies actionType="Fulfillment">
+  <policies action="Start" 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>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
   </policies>
   <policies action="Add" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
   </policies>
-  <policies actionType="Fulfillment">
+  <policies action="Start" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
   </policies>
@@ -119,10 +109,6 @@
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="RelationshipExclusion">
-    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
   <policies action="Add" actionType="RelationshipImplication">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -131,10 +117,6 @@
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="RelationshipImplication">
-    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Inter_Relationship_Constraints"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
   <policies action="Start" actionType="Inheritance">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Role_Inheritance"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
@@ -151,6 +133,10 @@
       <rules xsi:type="Editpolicymodel:SourceEqualsTargetType"/>
     </constraintRule>
   </policies>
+  <policies action="Start" actionType="Inheritance">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Data_Type_Inheritance"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
+  </policies>
   <policies action="Add" actionType="Inheritance">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Data_Type_Inheritance"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -163,6 +149,10 @@
       <rules xsi:type="Editpolicymodel:SourceEqualsTargetType"/>
     </constraintRule>
   </policies>
+  <policies action="Start" actionType="Inheritance">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Inheritance"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
+  </policies>
   <policies action="Add" actionType="Inheritance">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Inheritance"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -202,6 +192,10 @@
       <rule xsi:type="Editpolicymodel:InCompartment"/>
     </constraintRule>
   </policies>
+  <policies action="Start" actionType="Relationship">
+    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
+    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
+  </policies>
   <policies action="Add" actionType="Relationship">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
@@ -261,6 +255,10 @@
     <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 action="Start" actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
@@ -277,8 +275,4 @@
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
   </policies>
-  <policies action="Start" actionType="Relationship">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
 </Editpolicymodel:Model>
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 7d02d59da2e5413d9107e3342b07cb812d6180a5..061fab0d995917de098fb0d207512f3d81a043f5 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
@@ -73,42 +73,7 @@ public class ConstraintRuleVisitor {
 	public boolean checkRule(ConstraintRule rule) 
 	{
 		if(rule instanceof InCompartment) {
-			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 = 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() + ", " + parent.getName() +", " + parent.getName());
-
-			if(myDiagram.getName().startsWith("compartmentType"))
-				return true;
-
-			return false;
+			return isInCompartmentRuleVisitor((InCompartment)rule);
 		}
 		
 		if (rule instanceof AndConstraintRule)
@@ -152,6 +117,40 @@ public class ConstraintRuleVisitor {
 		return true;
 	}
 		
+	private boolean isInCompartmentRuleVisitor(InCompartment rule) {
+		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;
+		} else if(this.context instanceof CreateContext) {
+			CreateContext  ctx = (CreateContext) context;
+			Diagram contextDiagram = (Diagram)ctx.getTargetContainer();
+			if(contextDiagram.getName().startsWith("compartmentType"))
+				return true;
+		}
+		if(parent == null) {
+			System.out.println("Parent null. Wrong context InCompartment(): " + this.context.getClass());
+			return false;
+		}
+
+		String parentDiagramName = null;
+		try {
+			parentDiagramName = parent.getContainer().getParent().getName();
+		} catch (Exception e) {}
+		Diagram myDiagram = this.getDiagramWithName(parentDiagramName, this.diagram);
+		if(myDiagram == null)
+			return false;
+		if(myDiagram.getName().startsWith("compartmentType"))
+			return true;
+
+		return false;
+	}
+	
 	private boolean andRuleVisitor(AndConstraintRule rule) {
 		for(ConstraintRule abstractRule : rule.getRules()) {
 			if(!checkRule(abstractRule))
@@ -196,8 +195,6 @@ public class ConstraintRuleVisitor {
 		if(targetAnchor == null || sourceAnchor == null)
 			return false;
 
-		System.out.println("sourceEqualsTargetVisitor comparison: " + source.hashCode()  + " == " + target.hashCode());
-
 		return source.hashCode() == target.hashCode();		
 	}
 
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 fc572fdcc15c10d0220ba0253fce890baa4563b3..5c8fa5bdf74ae6fddfebde6e3c2a6f0ac7b51fa6 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,7 +39,6 @@ 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 constraints which are activated by current configuration
 		activatedPolicies = new LinkedList<>();
@@ -49,12 +48,9 @@ public class EditPolicyHandler {
 			for(Editpolicymodel.Policy policy : model.getPolicies()) {
 				if(featureRuleVisitor.checkRule(policy.getFeatureRule())) {
 					activatedPolicies.add(policy); 
-					System.out.println("policyAdded: " + policy.getFeatureRule().toString());
-
 				}
 			}
 		}
-		
 	}
 	
 	/**
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java
index 0aba7f8e4cef7d8e852c2657ad141e346c9e16a0..579cb6383534ff0ff257f59c6e6fd653da3daad2 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/EditPolicyService.java
@@ -51,7 +51,6 @@ public class EditPolicyService {
 			return null;
 		}
 		Diagram diagram = UIUtil.getMainDiagramForAnyDiagram(diagram0);
-		//System.out.println("Diagrams: " + diagram.getName() + ", " + diagram0.getName());
 
 		if(!EditPolicyService.editPolicyHandlers.containsKey(diagram.getName())) { 
 			EditPolicyHandler handler = new EditPolicyHandler(diagram);
@@ -65,7 +64,6 @@ public class EditPolicyService {
 
 	public static void setConfiguration(Diagram diagram, FRaMEDConfiguration config) 
 	{ 
-		//System.out.println("updating config for " + diagram.getName());
 		diagram = UIUtil.getMainDiagramForAnyDiagram(diagram);
 		EditPolicyService.getHandler(diagram).updateConfig(editpolicymodels, config);
 	}
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 8411343138f1714cdc3413608ce6715182a04a22..5939c9128c3c34ae551cc9d0fd9df10ef9de18dc 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
@@ -33,9 +33,7 @@ public class FeatureRuleVisitor {
 	}
 	
 	/**
-	 * dispatch abstract rule
-	 *
-	 * returns whether this.cmd is allowed according to @param rule
+	 * returns whether feature rule is active 
 	 *
 	 * @param rule
 	 * @return Boolean
@@ -80,7 +78,6 @@ public class FeatureRuleVisitor {
 		return false;
 	}
 	
-	
 	private boolean andRuleVisitor(AndFeatureRule rule) {
 		for(FeatureRule abstractRule : rule.getRules()) {
 			if(!checkRule(abstractRule))