diff --git a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SClass.scala b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SClass.scala
index 6d72049eb945dae34de2160f15900234ea868ce4..8344eb7a214fe5c6e49f0bea675984bc107fb921 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SClass.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/acr_model/SClass.scala
@@ -400,6 +400,6 @@ class SClass(_name: String,
     state.map(_.hashCode()).foldLeft(0)((a, b) => 31 * a + b)
   }
 
-  override def toString: String = s"SC: $getName($sPackage, ${attributes.map(_.getName).mkString(", ")}, $isAbstract, $isInterface)"
+  override def toString: String = s"SC: $getName($sPackage, ${attributes.map(_.getName).mkString(", ")} ## ${getOnlyDeepAttributes.map(_.getName).mkString(", ")} || $isAbstract, $isInterface)"
 
 }
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/QueryGeneratingVisitor.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/QueryGeneratingVisitor.scala
index 8b51551fe6bddf6c58fc6f9894c4648d2f5bd3ab..2f7f50fcc006cd92c12896e904db1f4b11545b29 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/sync/QueryGeneratingVisitor.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/QueryGeneratingVisitor.scala
@@ -39,6 +39,7 @@ class QueryGeneratingVisitor extends SModelVisitor {
       viewCompartment.addInternalClass(internalClass)
     })
     
+    //TODO: can be necessary to add all parents in one loop first
     //Now fill all natural internal roles with functionality
     newInternalRoles.foreach(inner => {
       val cls = inner.sumSource
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewGeneratingVisitor.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewGeneratingVisitor.scala
index 3faa3e4272fdca44b2cc00ba74ed27fb4a4ac38a..c290a7add0719d5ce0ddc2e3bda469c1ac06747e 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewGeneratingVisitor.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewGeneratingVisitor.scala
@@ -32,7 +32,7 @@ class ViewGeneratingVisitor extends SModelVisitor {
       viewCompartment.addInternalClass(internalClass)
     })
     
-    //Now fill all natural internal roles with functionality
+    //Now add the parents to all natural internal roles first
     newInternalRoles.foreach(inner => {
       val cls = inner.sumSource
       //set inheritance to abstract view role
@@ -45,7 +45,11 @@ class ViewGeneratingVisitor extends SModelVisitor {
         if (!existing.isEmpty) {
           inner.addParent(existing.get)
         }
-      })  
+      })
+    })
+    
+    //add now the messages because they can depend on the parents
+    newInternalRoles.foreach(inner => {
       //add initialize method if necessary
       if (!inner.isAbstract && !inner.isInterface) {
         inner.addMethod(ViewMethods.getIsRelationalMethod(false))
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewMethods.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewMethods.scala
index 7801577c958e91796f56e60cd03980c5d2b9f518..ed616df0b225be8ec05e1b0b879399d424494c9e 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewMethods.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/ViewMethods.scala
@@ -87,7 +87,7 @@ object ViewMethods {
       method.implementation = Seq(SMethodStatement(content = s"return new ${jcls.getName}(new ${jcls.base.getName}(" + 
           s"${jcls.base.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")}), new ${jcls.other.getName}(" +
           s"${jcls.other.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")}))", usedTypes = Set(jcls.other, jcls.base)))
-    } else {      
+    } else {  
       method.implementation = Seq(SMethodStatement(content = s"return new ${nat.sumSource.getName}(" + 
           s"${nat.sumSource.getAllConstructorParameters.map(HelperFunctions.initialAttributeDoing(_, nat.getDeepStructuralFeatures)).mkString(", ")})"))
     }