diff --git a/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala b/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala
index 88841489d71994758398b2aa5bcb632e51fd6bdb..30b22945d4735762505011b3159c7da2f643dd92 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/sync/SumModelReadingVisitor.scala
@@ -20,9 +20,10 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor {
     val creatorSum = new SClass("Creation" + sModel.getName + "Sum", PackageNames.creationPkgName)
     val creatorSync = new SClass("Creation" + sModel.getName + "Sync", PackageNames.creationPkgName)
     val creatorInterface = new SClass("ICreation" + sModel.getName, PackageNames.creationPkgName, SClassType.normalTrait)
+    val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName)
+    
     creatorSum.addParent(creatorInterface)
     creatorSync.addParent(creatorInterface)
-    val loader = new SClass("Loader" + sModel.getName, PackageNames.creationPkgName)
 
     val loadEcore = new SMethod(
       name = "loadEcore",
@@ -108,13 +109,14 @@ class SumModelReadingVisitor(config: GeneratorConfig) extends SModelVisitor {
         overrides = true)
       creatorSync.addMethod(methodSync)
 
-      var s = c.getAttributeConstructorParameters.map(m => s"""obj.eGet(obj.eClass().getEStructuralFeature("${m.getName}"))${if (m.getTypeName == "String") ".toString()" else s".asInstanceOf[${m.getTypeName}]"} """).mkString(", ")
+      var types = c.getAttributeConstructorParameters.map(m => m.getType)
+      var s = c.getAttributeConstructorParameters.map(m => s"""obj.eGet(obj.eClass().getEStructuralFeature("${m.getName}"))${if (m.getTypeName == "String") ".toString()" else s".asInstanceOf[${m.getTypeName}${if(m.getType.isInstanceOf[SEnum]) ".Value" else ""}]"} """).mkString(", ")
       if (s.isEmpty()) {
         s = "obj"
       } else {
         s = s + ", obj"
       }
-      createObjImpl = createObjImpl :+ SMethodStatement(content = s"""case "${c.getName}" => creator.create${c.getName}(${s})""")
+      createObjImpl = createObjImpl :+ SMethodStatement(content = s"""case "${c.getName}" => creator.create${c.getName}(${s})""", types.toSet)
     })
 
     sModel.getRelationalCompartments.foreach(r => {