diff --git a/build.sbt b/build.sbt
index 24e4b959b4ea8a41f46d545de3fd7d7da6e30203..39aae81e9e9a67cb23e38f3459c7d59f7f2fe092 100644
--- a/build.sbt
+++ b/build.sbt
@@ -2,7 +2,7 @@ import sbt.Keys.{libraryDependencies, scalacOptions, version}
 
 val emfcommonVersion = "2.12.0"
 val emfecoreVersion = "2.12.0"
-val scrollVersion = "1.6"
+val scrollVersion = "1.8"
 val scoptVersion = "3.7.0"
 val liftVersion = "3.3.0"
 
@@ -14,6 +14,7 @@ lazy val generator = (project in file("."))
     version := "0.1",
     scalaVersion := "2.12.6",
     libraryDependencies ++= Seq(
+      "com.github.max-leuthaeuser" %% "scroll" % scrollVersion,
       "org.scala-lang" % "scala-reflect" % scalaVersion.value,
       "org.scala-lang" % "scala-compiler" % scalaVersion.value,
       "org.eclipse.emf" % "org.eclipse.emf.common" % emfcommonVersion,
diff --git a/lib/ModelSyncProvider b/lib/ModelSyncProvider
index ace8bdf5799dd89bd66d01782237123172bb0ec0..619bbf1efcfee406a134412275928322d9d28e05 160000
--- a/lib/ModelSyncProvider
+++ b/lib/ModelSyncProvider
@@ -1 +1 @@
-Subproject commit ace8bdf5799dd89bd66d01782237123172bb0ec0
+Subproject commit 619bbf1efcfee406a134412275928322d9d28e05
diff --git a/lib/SCROLL b/lib/SCROLL
deleted file mode 160000
index 623765816af6d27387efb82dfb890bc4318c58a2..0000000000000000000000000000000000000000
--- a/lib/SCROLL
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 623765816af6d27387efb82dfb890bc4318c58a2
diff --git a/src/main/scala/org/rosi_project/model_sync/generator/EcoreLoader.scala b/src/main/scala/org/rosi_project/model_sync/generator/EcoreLoader.scala
index 6bd33b84fa74494b769718936aa11b759e4c5bea..350de718158c9b7cd5516c26ebca0695ac1a80e5 100644
--- a/src/main/scala/org/rosi_project/model_sync/generator/EcoreLoader.scala
+++ b/src/main/scala/org/rosi_project/model_sync/generator/EcoreLoader.scala
@@ -1,13 +1,16 @@
 package org.rosi_project.model_sync.generator
 
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
 import org.eclipse.emf.ecore.{EObject, EPackage}
-import scroll.internal.ecore.ECoreImporter
 
 /** Simple service to load an ECORE model from a file.
   *
   * @author Rico Bergmann
   */
-class EcoreLoader extends ECoreImporter {
+class EcoreLoader {
 
   /** Fetches an ecore model from XML.
     *
@@ -15,8 +18,13 @@ class EcoreLoader extends ECoreImporter {
     * @return the model described by the XML
     */
   def loadEcore(path: String = "assets/ttc17.ecore"): EPackage = {
-    this.path = path
-    val res = loadModel()
+    // see https://github.com/max-leuthaeuser/SCROLL/blob/dd269d5620257be1ea2f2044f398c090e9755fb3/core/src/main/scala/scroll/internal/ecore/ECoreImporter.scala
+    require(null != path && path.nonEmpty)
+    val resourceSet = new ResourceSetImpl()
+    val _ = resourceSet.getResourceFactoryRegistry.getExtensionToFactoryMap.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl())
+    val res = resourceSet.getResource(URI.createFileURI(path), true)
+    require(null != res)
+    require(!res.getContents.isEmpty)
     res.getContents.toArray(new Array[EObject](0)).toList.find(_.isInstanceOf[EPackage]).map((p: EObject) => p.asInstanceOf[EPackage]).orNull
   }