diff --git a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java
index 98aadb1582b4c850fcac0f3c98f7e5cd6f340672..3f5ed17d026857e7e815f3b75a8ade13140b235f 100644
--- a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/AbstractInterRelationshipConstraintPattern.java
@@ -179,7 +179,7 @@ public abstract class AbstractInterRelationshipConstraintPattern extends FRaMEDC
 		org.framed.iorm.model.ModelElement sourceConnection = UIUtil.getModelElementForAnchor(sourceAnchor);
 		if(sourceConnection != null){	
 			if(sourceConnection.getType() == Type.RELATIONSHIP)
-				return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.getModelType() );
+				return EditPolicyService.getHandler(this.getDiagram()).canStart(createContext, this.getModelType());
 		}	
 		return false;
 	}
diff --git a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
index 8bee86e7d5a79d81195aef138224c6c1f681415a..f43cf5c7a1addbab1a68a907af2807ff9204330f 100644
--- a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
+++ b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/AbstractIntraRelationshipConstraintPattern.java
@@ -114,14 +114,7 @@ public abstract class AbstractIntraRelationshipConstraintPattern extends FRaMEDS
 		if (addContext.getNewObject() instanceof Relation) {
 			Relation relation = (Relation) addContext.getNewObject();
 			if (relation.getType() == type) {
-				Connection targetConnection = addContext.getTargetConnection();
-				if (targetConnection != null) {
-					Object m = getBusinessObjectForPictogramElement(targetConnection);
-					if (m instanceof Relation && ((Relation) m).getType() == Type.RELATIONSHIP) { 
-						// TODO: Create EditPolicy rule for this case
-						return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, type);
-					}
-				}
+				return EditPolicyService.getHandler(this.getDiagram()).canAdd(addContext, type);
 			}
 		}
 		return false;
@@ -164,10 +157,7 @@ public abstract class AbstractIntraRelationshipConstraintPattern extends FRaMEDS
 	public boolean canCreate(ICreateContext createContext) {
 		Connection targetConnection = createContext.getTargetConnection();
 		if(targetConnection != null) {
-			Object m = getBusinessObjectForPictogramElement(targetConnection);
-			if(m instanceof Relation && ((Relation) m).getType() == Type.RELATIONSHIP) { //TODO: Create EditPolicy rule for this case
-				return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.getModelType());
-			}
+			return EditPolicyService.getHandler(this.getDiagram()).canCreate(createContext, this.getModelType());
 		}
 	    return false;
 	}
diff --git a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.ecl b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.ecl
index 0de8445a0cb35194ede106183bffbdcae848eeac..b41512ba8ee14e1a02baec6451d5db3dba17f994 100644
--- a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.ecl
+++ b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.ecl
@@ -1,20 +1,20 @@
 //IntraRelationshipConstraint 
-Add Irreflexive (Intra_Relationship_Constraints) when true; 
+Add Irreflexive (Intra_Relationship_Constraints) when IsTargetConnectionType(Relationship); 
 Start Irreflexive (Intra_Relationship_Constraints) when true;
-Create Irreflexive (Intra_Relationship_Constraints) when true;
+Create Irreflexive (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 
-Add Acyclic (Intra_Relationship_Constraints) when true;
+Add Acyclic (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 Start Acyclic (Intra_Relationship_Constraints) when true;
-Create Acyclic (Intra_Relationship_Constraints) when true;
+Create Acyclic (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 
-Add Cyclic (Intra_Relationship_Constraints) when true;
+Add Cyclic (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 Start Cyclic (Intra_Relationship_Constraints) when true;
-Create Cyclic (Intra_Relationship_Constraints) when true;
+Create Cyclic (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 
-Add Reflexive (Intra_Relationship_Constraints) when true;
-Start Reflexive (Intra_Relationship_Constraints) when true;
-Create Reflexive (Intra_Relationship_Constraints) when true;
+Add Reflexive (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
+Start Reflexive (Intra_Relationship_Constraints) when true; 
+Create Reflexive (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 
-Add Total (Intra_Relationship_Constraints) when true;
+Add Total (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
 Start Total (Intra_Relationship_Constraints) when true;
-Create Total (Intra_Relationship_Constraints) when true;
+Create Total (Intra_Relationship_Constraints) when  IsTargetConnectionType(Relationship);
diff --git a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.editpolicy b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.editpolicy
index 45510f0d68d8e9507f01df30e38dc5deca3cd317..638a16643d9e7d65947aaae6052325c046bcd92c 100644
--- a/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.editpolicy
+++ b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.editpolicy
@@ -2,7 +2,7 @@
 <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="Add" actionType="Irreflexive">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Start" actionType="Irreflexive">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
@@ -10,11 +10,11 @@
   </policies>
   <policies actionType="Irreflexive">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Add">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Start">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
@@ -22,11 +22,11 @@
   </policies>
   <policies>
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Add" actionType="Cyclic">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Start" actionType="Cyclic">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
@@ -34,11 +34,11 @@
   </policies>
   <policies actionType="Cyclic">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Add" actionType="Reflexive">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Start" actionType="Reflexive">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
@@ -46,11 +46,11 @@
   </policies>
   <policies actionType="Reflexive">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Add" actionType="Total">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </policies>
   <policies action="Start" actionType="Total">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
@@ -58,6 +58,6 @@
   </policies>
   <policies actionType="Total">
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Intra_Relationship_Constraints"/>
-    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="editpolicymodel:IsTargetConnectionType" type="Relationship"/>
   </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 50489d6b566266b36537dfb3c284ed3c3787606b..b72b9cb712c43f30786f2359ef7ea8e57161ad8e 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
@@ -10,10 +10,12 @@ 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.Connection;
 import org.eclipse.graphiti.mm.pictograms.ContainerShape;
 import org.eclipse.graphiti.mm.pictograms.Diagram;
 import org.eclipse.graphiti.mm.pictograms.Shape;
 import org.framed.iorm.model.ModelElement;
+import org.framed.iorm.model.Relation;
 import org.framed.iorm.model.Type;
 import org.framed.iorm.ui.UIUtil;
 import org.framed.iorm.ui.exceptions.NoDiagramFoundException;
@@ -223,16 +225,14 @@ public class ConstraintRuleVisitor {
 	}
 	
 	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;
+		Connection targetConnection = this.getTargetConnectionFromContext(this.context);
+		if (targetConnection != null) {
+			Object m = UIUtil.getBusinessObjectForPictogramElement(targetConnection);
+			if (m instanceof Relation && ((Relation) m).getType().getLiteral().equals(rule.getType().getLiteral())) { 
+				return true;
+			}
 		}
-		ModelElement source = UIUtil.getModelElementForAnchor(anchor);
-		return rule.getType().getLiteral().equals(source.getType().getLiteral());
-		*/
+		return false;
 	}
 
 	private boolean containsTypeVisitor(ContainsType rule) {
@@ -292,6 +292,19 @@ public class ConstraintRuleVisitor {
 		}
 		return anchor;
 	}
+	
+
+	private Connection getTargetConnectionFromContext(Object context) {
+		Connection targetConnection = null;
+		if (this.context instanceof AddContext) {
+			AddContext addContext = (AddContext)this.context;
+			targetConnection = addContext.getTargetConnection();
+		} else if (this.context instanceof CreateContext) {
+			CreateContext createContext = (CreateContext)this.context;
+			targetConnection = createContext.getTargetConnection();
+		}
+		return targetConnection;
+	}
 
 	private boolean sourceEqualsTargetTypeVisitor(SourceEqualsTargetType rule) {
 		// System.out.println("class is: " + this.context.getClass());