diff --git a/assets/models/EMFLibrary.ecore b/assets/models/EMFLibrary.ecore
new file mode 100644
index 0000000000000000000000000000000000000000..9d9235783b17819f20b820f832c7d418cd00e833
--- /dev/null
+++ b/assets/models/EMFLibrary.ecore
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+  <ecore:EPackage xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="library"
+    nsURI="http://www.eclipse.org/emf/jcrm/samples/emf/sample/Library" nsPrefix="library">
+  <eClassifiers xsi:type="ecore:EClass" name="Book">
+    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+      <details key="name" value="Book"/>
+      <details key="kind" value="elementOnly"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" unique="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="element"/>
+        <details key="name" value="title"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" unique="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int" unsettable="true">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="element"/>
+        <details key="name" value="pages"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1"
+        eType="#//Writer">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="element"/>
+        <details key="name" value="author"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Library">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="element"/>
+        <details key="name" value="name"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
+        eType="#//Book" containment="true">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="element"/>
+        <details key="name" value="books"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Writer">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+        <details key="kind" value="element"/>
+        <details key="name" value="name"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="GuideBookWriter" eSuperTypes="#//Writer">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="countries" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SpecialistBookWriter" eSuperTypes="#//Writer">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="subject" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
\ No newline at end of file
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/conversion/EmfTypeTranslator.scala b/src/main/scala/org/rosi_project/model_sync/generator/conversion/EmfTypeTranslator.scala
index b95c358cc41578ff0233697c0a4c5b3957b14b2e..ec1ea7f800a84025ab434afb41480ab845af7208 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/conversion/EmfTypeTranslator.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/conversion/EmfTypeTranslator.scala
@@ -15,11 +15,20 @@ import org.rosi_project.model_sync.generator.acr_model.types.PredefEcoreTypes
 object EmfTypeTranslator {
 
   private val typeMap: Map[String, SType] = Map(
+    "Double" -> PredefTypes.Double,
+    "Float" -> PredefTypes.Float,
+    "Int" -> PredefTypes.Integer,
+    "Char" -> PredefTypes.Char,
+    "Byte" -> PredefTypes.Byte,
+    "Boolean" -> PredefTypes.Boolean,
+    "Long" -> PredefTypes.Long,
+    "Short" -> PredefTypes.Short,
+    "String" -> PredefTypes.String,      
     "EBoolean" -> PredefTypes.Boolean,
     "EByte" -> PredefTypes.Byte,
     "EChar" -> PredefTypes.Char,
     "EDate" -> PredefTypes.Date,
-    "EDouble" -> PredefTypes.Double,
+    "EDouble" -> PredefTypes.Double,    
     "EFloat" -> PredefTypes.Float,
     "EInt" -> PredefTypes.Integer,
     "EJavaObject" -> PredefTypes.Object,
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 18c6ae53effbad8c796e3833fea71362ee7065bd..88841489d71994758398b2aa5bcb632e51fd6bdb 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
@@ -108,7 +108,7 @@ 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 == "Boolean") ".asInstanceOf[Boolean]" else ".toString()"} """).mkString(", ")
+      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(", ")
       if (s.isEmpty()) {
         s = "obj"
       } else {
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/test/ApplicationTest.scala b/src/main/scala/org/rosi_project/model_sync/generator/test/ApplicationTest.scala
index e83db03ca0e43e14eafaa8484475e403d38634b9..a3719805cc1f6806d84ad1e28907a7495575295f 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/test/ApplicationTest.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/test/ApplicationTest.scala
@@ -13,7 +13,8 @@ object ApplicationTest extends App {
   //runTestAML(Creation.rolesum)
   
   //TTC Case examples
-  runTTC2019(Creation.rolecomb)
+  runTestEmfLibrary(Creation.rolecomb)
+  //runTTC2019(Creation.rolecomb)
   //runTTC2019(Creation.rolesync)  
   //runTTCLive2019(Creation.rolesync)
 
@@ -83,6 +84,11 @@ object ApplicationTest extends App {
     new Generator(config).run()
   }
   
+  def runTestEmfLibrary(cre: Creation.Value): Unit = {
+    var config: GeneratorConfig = GeneratorConfig(Seq("assets/models/EMFLibrary.ecore"), false, new File("assets/models"), create = cre);
+    new Generator(config).run()
+  }
+  
   def runTestShrinkingModel(cre: Creation.Value): Unit = {
     var config: GeneratorConfig = GeneratorConfig(Seq("assets/models/ShrinkingModel.ecore"), false, new File("assets/models"), create = cre);
     new Generator(config).run()