diff --git a/org.framed.iorm.ui/core/attributeAndOperation/AttributeAndOperation.ecl b/org.framed.iorm.ui/core/attributeAndOperation/AttributeAndOperation.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..120acdaa0cb9e09910c241872fc196470b0628a5
--- /dev/null
+++ b/org.framed.iorm.ui/core/attributeAndOperation/AttributeAndOperation.ecl
@@ -0,0 +1,11 @@
+//NaturalType 
+Create_Attribute NaturalType (true) when true;  
+Create_Operation NaturalType (true) when true;  
+Create_Property NaturalType (true) when true;  
+Add_Property NaturalType (true) when true;   
+
+//NaturalType
+Create_Attribute DataType (true) when true;  
+Create_Operation DataType (true) when true;  
+Create_Property DataType (true) when true;  
+Add_Property DataType (true) when true;  
diff --git a/org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl b/org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..83c3a99114aa964e9b6cad181bd8dfdc0f2ee136
--- /dev/null
+++ b/org.framed.iorm.ui/core/fulfillment/Fulfillment.ecl
@@ -0,0 +1,22 @@
+//Fullfillment or Players??  
+Start Fulfillment (Naturals) when IsSourceType(NaturalType);  
+Add Fulfillment (Naturals) when IsSourceType(NaturalType) and IsTargetType(CompartmentType);
+Create Fulfillment (Naturals) when IsSourceType(NaturalType) and IsTargetType(CompartmentType);
+Reconnect Fulfillment (Naturals) when IsSourceType(NaturalType) and IsTargetType(CompartmentType);
+
+Start Fulfillment (Roles) when IsSourceType(RoleType);
+Add Fulfillment (Roles) when IsSourceType(RoleType) and IsTargetType(CompartmentType);
+Create Fulfillment (Roles) when IsSourceType(RoleType) and IsTargetType(CompartmentType);
+Reconnect Fulfillment (Roles) when IsSourceType(RoleType) and IsTargetType(CompartmentType);
+
+Start Fulfillment (Compartments) when IsSourceType(CompartmentType);
+Add Fulfillment (Compartments) when IsSourceType(CompartmentType) and IsTargetType(CompartmentType) and !SourceEqualsTarget();
+Create Fulfillment (Compartments) when IsSourceType(CompartmentType) and IsTargetType(CompartmentType) and !SourceEqualsTarget();
+Reconnect Fulfillment (Compartments) when IsSourceType(CompartmentType) and IsTargetType(CompartmentType) and !SourceEqualsTarget();
+
+Start Fulfillment (Dates) when IsSourceType(DataType);
+Add Fulfillment (Dates) when IsSourceType(DataType);
+Create Fulfillment (Dates) when IsSourceType(DataType);
+Reconnect Fulfillment (Dates) when IsSourceType(DataType);
+
+Execute Fulfillment (true) when true;
diff --git a/org.framed.iorm.ui/core/inheritance/Inheritance.ecl b/org.framed.iorm.ui/core/inheritance/Inheritance.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..69b2cfaecc417dbf3df2efad504aab9c49133f15
--- /dev/null
+++ b/org.framed.iorm.ui/core/inheritance/Inheritance.ecl
@@ -0,0 +1,8 @@
+//Inheritance  
+Start Inheritance (Naturals) when IsSourceType(NaturalType); 
+Add Inheritance (Naturals) when IsSourceType(NaturalType) and SourceEqualsTargetType() and !SourceEqualsTarget();
+Reconnect Inheritance (Naturals) when IsSourceType(NaturalType) and SourceEqualsTargetType() and !SourceEqualsTarget();
+Create Inheritance (Naturals) when IsSourceType(NaturalType) and SourceEqualsTargetType() and !SourceEqualsTarget();
+
+Execute Inheritance (true) when true;
+ 
diff --git a/org.framed.iorm.ui/modules/compartment/contains_compartments/ContainsCompartments.ecl b/org.framed.iorm.ui/modules/compartment/contains_compartments/ContainsCompartments.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..9aed47a53c0d4bab31ce69fc84a875c3d0dc6a4e
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/contains_compartments/ContainsCompartments.ecl
@@ -0,0 +1,3 @@
+//ContainsCompartments
+Add CompartmentType (Contains_Compartments) when InType(CompartmentType);
+Create CompartmentType (Contains_Compartments) when InType(CompartmentType); 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl b/org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..aab00a25e7a5d9871bfd140105ed6d55182b90cc
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/inheritance/CompartmentInheritance.ecl
@@ -0,0 +1,5 @@
+//Inheritance or Role_Inheritance/Data_Type_Inheritance/Compartment_Inheritance     
+Start Inheritance (Compartment_Inheritance) when IsSourceType(CompartmentType); 
+Add Inheritance (Compartment_Inheritance) when IsSourceType(CompartmentType) and !SourceEqualsTarget() and SourceEqualsTargetType(); //acyclic
+Create Inheritance (Compartment_Inheritance) when IsSourceType(CompartmentType) and !SourceEqualsTarget() and SourceEqualsTargetType(); //acyclic
+   
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl b/org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..16418840a3c6c9cc26c71afd36aefb737d788f2b
--- /dev/null
+++ b/org.framed.iorm.ui/modules/compartment/playing_own_roles/PlayingOwnRoles.ecl
@@ -0,0 +1,5 @@
+//Playing_own_roles 
+Start Fulfillment (Playable_by_Defining_Compartment) when IsSourceType(CompartmentType); 
+Add Fulfillment (Playable_by_Defining_Compartment) when IsSourceType(CompartmentType) and SourceEqualsTarget();
+Create Fulfillment (Playable_by_Defining_Compartment) when IsSourceType(CompartmentType) and SourceEqualsTarget();
+Reconnect Fulfillment (Playable_by_Defining_Compartment) when IsSourceType(CompartmentType) and SourceEqualsTarget();
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl b/org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..735b2261dfd84eebcea1ca42d852265a89c7557f
--- /dev/null
+++ b/org.framed.iorm.ui/modules/datatype/inheritance/DataTypeInheritance.ecl
@@ -0,0 +1,5 @@
+//Inheritance or Role_Inheritance/Data_Type_Inheritance/Compartment_Inheritance
+Start Inheritance (Data_Type_Inheritance) when IsSourceType(DataType);  
+Add Inheritance (Data_Type_Inheritance) when IsSourceType(DataType) and !SourceEqualsTarget() and SourceEqualsTargetType(); // check acyclic
+Reconnect Inheritance (Data_Type_Inheritance) when IsSourceType(DataType) and !SourceEqualsTarget() and SourceEqualsTargetType();
+Create Inheritance (Data_Type_Inheritance) when IsSourceType(DataType) and !SourceEqualsTarget() and SourceEqualsTargetType(); // check acyclic // check acyclic
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/relationship/Relationship.ecl b/org.framed.iorm.ui/modules/relationship/Relationship.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..8711b96d272e12db36bd2d792ff2202106734a53
--- /dev/null
+++ b/org.framed.iorm.ui/modules/relationship/Relationship.ecl
@@ -0,0 +1,7 @@
+//Relationships  
+Start Relationship (Relationships) when IsSourceType(RoleType);
+Add Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
+Reconnect Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
+Create Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
+ 
+Execute Relationship (Relationships) when true;
diff --git a/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..6d084323a0c2d0cd48351c92be4e1e413339cf3a
--- /dev/null
+++ b/org.framed.iorm.ui/modules/relationship/inter_relationship_constraints/InterRelationship.ecl
@@ -0,0 +1,10 @@
+//InterRelationship  
+Start RelationshipExclusion (Inter_Relationship_Constraints) when true;
+Add RelationshipExclusion (Inter_Relationship_Constraints) when true; 
+Reconnect RelationshipExclusion (Inter_Relationship_Constraints) when true;
+Create RelationshipExclusion (Inter_Relationship_Constraints) when true;
+
+Start RelationshipImplication (Inter_Relationship_Constraints) when true;
+Add RelationshipImplication (Inter_Relationship_Constraints) when true;
+Reconnect RelationshipImplication (Inter_Relationship_Constraints) when true;
+Create RelationshipImplication (Inter_Relationship_Constraints) when true;
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
new file mode 100644
index 0000000000000000000000000000000000000000..0de8445a0cb35194ede106183bffbdcae848eeac
--- /dev/null
+++ b/org.framed.iorm.ui/modules/relationship/intra_relationship_constraints/IntraRelationship.ecl
@@ -0,0 +1,20 @@
+//IntraRelationshipConstraint 
+Add Irreflexive (Intra_Relationship_Constraints) when true; 
+Start Irreflexive (Intra_Relationship_Constraints) when true;
+Create Irreflexive (Intra_Relationship_Constraints) when true;
+
+Add Acyclic (Intra_Relationship_Constraints) when true;
+Start Acyclic (Intra_Relationship_Constraints) when true;
+Create Acyclic (Intra_Relationship_Constraints) when true;
+
+Add Cyclic (Intra_Relationship_Constraints) when true;
+Start Cyclic (Intra_Relationship_Constraints) when true;
+Create Cyclic (Intra_Relationship_Constraints) when true;
+
+Add Reflexive (Intra_Relationship_Constraints) when true;
+Start Reflexive (Intra_Relationship_Constraints) when true;
+Create Reflexive (Intra_Relationship_Constraints) when true;
+
+Add Total (Intra_Relationship_Constraints) when true;
+Start Total (Intra_Relationship_Constraints) when true;
+Create Total (Intra_Relationship_Constraints) when true;
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..99aa2d0ae74bacbf5e34625fd8e5063166b86cb9
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.ecl
@@ -0,0 +1,4 @@
+//groupConstraints/RoleGroup  
+Add RoleGroup (Group_Constraints) when InType(CompartmentType);  
+Create RoleGroup (Group_Constraints) when InType(CompartmentType);
+Direct_Edit RoleGroup (true) when true;
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy
index 3aee4ef5a523c3558990ce45d6e4b708077ba298..370690e6940fb302b41ae3db55b64cf47b2896d5 100644
--- a/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy
+++ b/org.framed.iorm.ui/modules/roletype/group_constraints/RoleGroup.editpolicy
@@ -8,4 +8,8 @@
     <featureRule xsi:type="editpolicymodel:IsFeature" featureName="Group_Constraints"/>
     <constraintRule xsi:type="editpolicymodel:InType" type="CompartmentType"/>
   </policies>
+  <policies action="Direct_Edit" actionType="RoleGroup">
+    <featureRule xsi:type="editpolicymodel:TrueFeatureRule"/>
+    <constraintRule xsi:type="editpolicymodel:TrueConstraintRule"/>
+  </policies>
 </editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl b/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..a4ef4808bb9df9807aa1fd97b38fa3afdf3f0660
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/inheritance/RoleInheritance.ecl
@@ -0,0 +1,5 @@
+//Inheritance or Role_Inheritance/Data_Type_Inheritance/Compartment_Inheritance 
+Start Inheritance (Role_Inheritance) when IsSourceType(RoleType);   
+Add Inheritance (Role_Inheritance) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType();  //TODO, check acyclic 
+Reconnect Inheritance (Role_Inheritance) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Create Inheritance (Role_Inheritance) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType();  //TODO, check acyclic  //TODO, check acyclic 
\ No newline at end of file
diff --git a/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
new file mode 100644
index 0000000000000000000000000000000000000000..2116907788a7c76d881b1c1769f02d67c2bdaf8c
--- /dev/null
+++ b/org.framed.iorm.ui/modules/roletype/role_constraints/RoleConstraints.ecl
@@ -0,0 +1,15 @@
+//RoleConstraints  
+Start RoleImplication (Role_Implication) when IsSourceType(RoleType); 
+Add RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Reconnect RoleImplication (Role_Implication) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Create RoleProhibition (true) when true;
+ 
+Start RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType); 
+Add RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Reconnect RoleEquivalence (Role_Equivalence) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Create RoleProhibition (true) when true;
+
+Start RoleProhibition (Role_Prohibition) when IsSourceType(RoleType); 
+Add RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Reconnect RoleProhibition (Role_Prohibition) when IsSourceType(RoleType) and !SourceEqualsTarget() and SourceEqualsTargetType(); 
+Create RoleProhibition (true) when true;
\ No newline at end of file