diff --git a/org.framed.orm.transformation/epsilon/CompartmentType.etl b/org.framed.orm.transformation/epsilon/CompartmentType.etl
index 32ca75e4f07a3da442d16f043dcd50b15512e4d2..c1ad43acb0e49610b38581f6e16acd03872aac6e 100644
--- a/org.framed.orm.transformation/epsilon/CompartmentType.etl
+++ b/org.framed.orm.transformation/epsilon/CompartmentType.etl
@@ -23,8 +23,9 @@ rule CompartmentType
 	
 		// iterate over all children of the compartment type	
 		for (elem : source!ModelElement in children.elements) {
-			
+			elem.println();
 			var e = elem.equivalent();
+			e.println();
 			
 			if (e == null) { continue; }
 			if (e.instanceOf(target!AbstractRole)) { 			// ROLE
@@ -51,14 +52,18 @@ rule CompartmentType
 				n.getContains.add(e);
 				if(not(t.~features.get("Contains_Compartments"))) n.getContains.remove(e);
 			} else if (e.instanceOf(target!RelationshipImplication) or e.instanceOf(target!RelationshipExclusion)) { // INTER_RELATIONSHIP_CONSTRAINT
-				n.getConstraints().add(e);	//add CONSTRAINTS as well			
+				n.getConstraints().add(e);				
 			} else if ( e.instanceOf(target!Constraint)) {		// CONSTRAINT
 				n.getConstraints().add(e);
 			} else if ( e.instanceOf(target!Relationship)) {	// RELATIONSHIP
 				n.getRelationships().add(e);
-			} else if ( e.instanceOf(target!RoleInheritance)) {
+			} else if ( e.instanceOf(target!RoleInheritance)) { //INHERITANCE
 				t.~parent.relations.add(e);
-			} 
+			} else if ( e.instanceOf(Sequence)) {		//FULFILLMENT
+				for(ob in e) {	
+					n.getFulfillments.add(ob);
+				}	
+			}
 		}
 	}
 	
diff --git a/org.framed.orm.transformation/epsilon/Fulfillment.etl b/org.framed.orm.transformation/epsilon/Fulfillment.etl
index 5fca692541c29ca81807df995ec3e1d2c50ac659..32a695243fbbb825c4bdb4f76df67652c5974b81 100644
--- a/org.framed.orm.transformation/epsilon/Fulfillment.etl
+++ b/org.framed.orm.transformation/epsilon/Fulfillment.etl
@@ -6,7 +6,7 @@ operation toTransform(t : source!Relation) : Boolean {
 					if((t.source==t.target and t.~features.get("Playable_by_Defining_Compartment"))) return true;
 				}
 		case 1: return true;
-		//case 2: if(t.~features.get("Roles")) return true;
+		case 2: if(t.~features.get("Roles")) return true;
 		case 3: if(t.~features.get("Dates")) return true;
 	}
 	return false;
diff --git a/org.framed.orm.transformation/epsilon/Group.etl b/org.framed.orm.transformation/epsilon/Group.etl
index 819088390723aa0a436286435f9eb629b5c62e0d..0b0f93c2c67dc54d743713ef556cfc4eda05f928 100644
--- a/org.framed.orm.transformation/epsilon/Group.etl
+++ b/org.framed.orm.transformation/epsilon/Group.etl
@@ -11,8 +11,7 @@ rule Group
 		for (e in children.elements) e.~features=s.~features;
 		for (elem : source!ModelElement in children.elements) {
 			var e = elem.equivalent();
-			if(e.instanceOf(target!Inheritance) or
-			   e.instanceOf(target!Fulfillment)) {
+			if(e.instanceOf(target!Relation)) {
 				if(not(e==null)) t.getRelations().add(e);	
 			} else {
 				if(not(e==null)) t.getElements().add(e);