diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala
index 4cefc3eb377e2768ca6402374e5478874d24a706..a631992ff2dfbd6a162cf3b8dec870b1d8b45b8b 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/InstanceCombiGenerator.scala
@@ -48,7 +48,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor
                       val realRc = rc.asInstanceOf[SRelationalCompartmentClass]
                       //println(" AN: " + att.getName + " l1: " + l.usedType.getName + " l2: " + lnow.usedType.getName + " RC: " + realRc.connectedRef.getName + " SN: " + realRc.sClass.getName + " TN: " + realRc.tClass.getName)
                       if (realRc.connectedRef.getName == att.getName && l.usedType.proofHierarchicalEquality(realRc.sClass) && lnow.usedType.proofHierarchicalEquality(realRc.tClass)) {
-                        val s = s"new ${realRc.getName}(${l.getName()}, ${lnow.getName()})"
+                        val s = s"(new ${realRc.getName}(${l.getName()}, ${lnow.getName()})).initialize()"
                         generationLines = generationLines :+ new InstanceLine(0, null, realRc, s)
                       }
                     })
@@ -64,7 +64,7 @@ class InstanceCombiGenerator(val clsins: ClassAndInstance) extends SModelVisitor
                         val realRc = rc.asInstanceOf[SRelationalCompartmentClass]
                         //println(" AN: " + att.getName + " l1: " + l.usedType.getName + " l2: " + lnow.usedType.getName + " RC: " + realRc.connectedRef.getName + " SN: " + realRc.sClass.getName + " TN: " + realRc.tClass.getName)
                         if (realRc.connectedRef.getName == att.getName && l.usedType.proofHierarchicalEquality(realRc.sClass) && lnow.usedType.proofHierarchicalEquality(realRc.tClass)) {
-                          val s = s"new ${realRc.getName}(${l.getName()}, ${lnow.getName()})"
+                          val s = s"(new ${realRc.getName}(${l.getName()}, ${lnow.getName()})).initialize()"
                           generationLines = generationLines :+ new InstanceLine(0, null, realRc, s)
                         }
                       })
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala
index 7349415bbd690039b56fe267cedc36486eaa3e5e..c4bdc7d4590851a32e7f408a02ef3a19264692db 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/RelationCompartmentGeneratingVisitor.scala
@@ -111,13 +111,27 @@ class RelationCompartmentGeneratingVisitor extends SModelVisitor {
             result = PredefTypes.Unit, 
             params = Seq.empty, 
             implementation = impl, 
-            true))            
+            overrides = true))            
           newClass.addMethod(new SMethod(
             name = "toString",
             result = PredefTypes.String,
             params = Seq.empty,
             implementation = Seq(SMethodStatement(s"""  "[$className " + source + ", " + target + "]" """)),
             overrides = true))
+            
+          newClass.addMethod(new SMethod (
+            name = "getSourceIns", 
+            result = cls, 
+            params = Seq.empty, 
+            implementation = Seq(SMethodStatement(s"return sInstance")), 
+            overrides = false))
+            
+          newClass.addMethod(new SMethod (
+            name = "getTargetIns", 
+            result = attType, 
+            params = Seq.empty, 
+            implementation = Seq(SMethodStatement(s"return tInstance")), 
+            overrides = false))
                         
           newClasses = newClasses :+ newClass
         }