diff --git a/build.gradle b/build.gradle
index cec409ba6c2a313861e7d9d608a334bc3e19a1eb..f4cf66f90772b7049fc3f0ad0447921e837d0c53 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,11 +32,13 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.pnml.splitter.Main')
 
 
 configurations {
- //   myBeaver
-    pnmlRelastBaseClasspath
+    myBeaver
 }
 
 dependencies {
+
+    implementation project(':pnml-relast-base')
+
     implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
     implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
     implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
@@ -59,10 +61,7 @@ dependencies {
 
     compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
 
-    pnmlRelastBaseClasspath fileTree(include: ['pnml-relast-base-0.1.jar'], dir: 'libs')
-   // compile fileTree(include: ['pnml-relast-base-0.1.jar'], dir: './libs')
-
- //   myBeaver group: 'net.sf.beaver', name: 'beaver-ant', version: '0.9.11'
+    myBeaver group: 'net.sf.beaver', name: 'beaver-ant', version: '0.9.11'
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
 }
@@ -75,13 +74,11 @@ run {
 }
 
 // Generated files
-def ecoreFile = "./src/main/resources/placeTransition.ecore"
-def relastAspect = "./src/gen/jastadd/pnml/placeTransition.ecore.jadd"
 def relastFile = "./src/gen/jastadd/pnml/placeTransition.relast"
 
 jar {
     manifest {
-        attributes "Main-Class": "de.tudresden.inf.st.pnml.Main"
+        attributes "Main-Class": "de.tudresden.inf.st.pnml.splitter.Main"
     }
 
     from {
@@ -93,43 +90,10 @@ jar {
 
     duplicatesStrategy = DuplicatesStrategy.EXCLUDE
 
-    archiveBaseName = 'pnml-relast-splitter'
+    archiveBaseName = 'pnml-splitter'
 
 }
 
-task pnmlRelastBase(type: JavaExec) {
-    group = 'Build'
- //   main = 'org.jastadd.ragconnect.compiler.Compiler'
-    classpath = configurations.pnmlRelastBaseClasspath
-
-    args([
-            '--o=src/gen/jastadd',
-            'src/main/jastadd/MinimalModel.relast',
-            'src/main/jastadd/MinimalModel.connect',
-            '--rootNode=A',
-            '--protocols=ros'
-    ])
-
-}
-
-// First phase: Ecore -> RelAst
-/*task ecoreToRelast(type: JavaExec) {
-    group = 'Build'
-    main = "-jar"
-
-
-    doFirst {
-        delete "src/gen/jastadd"
-        mkdir "src/gen/jastadd/pnml"
-    }
-
-    args "libs/ecore2relast-0.1.jar", ecoreFile, relastFile
-
-    inputs.files file(ecoreFile)
-    outputs.files file(relastFile), file(relastAspect)
-}*/
-
-// Second phase: RelAst -> JastAdd
 task relastToJastAdd(type: JavaExec) {
     group = 'Build'
     main = "-jar"
@@ -141,36 +105,12 @@ task relastToJastAdd(type: JavaExec) {
             "--jastAddList=JastAddList",
             "--resolverHelper",
             "--file",
-            relastFile//,
-         //   "./src/main/jastadd/marking/Marking.relast",
-         //   "./src/main/jastadd/io/IoPN.relast",
-         //   "./src/main/jastadd/clauses/expressions.relast"
+            relastFile,
+            "../pnml-relast-base/src/main/jastadd/marking/Marking.relast",
+            "../pnml-relast-base/src/main/jastadd/io/IoPN.relast",
+            "../pnml-relast-base/src/main/jastadd/clauses/expressions.relast"
 }
 
-/*task generateBeaver(type: JavaExec) {
-
-    inputs.files {
-        project.file("src/main/jastadd/clauses/Parser.beaver")
-    }
-    outputs.dir {
-        // This closure is needed to delay reading the genDir setting.
-        project.file("src/gen/java/de/tudresden/inf/st/pnml/jastadd/parser")
-    }
-
-    classpath = configurations.myBeaver
-    main = 'beaver.comp.run.Make'
-
-    doFirst {
-        def outdir = project.file("src/gen/java/de/tudresden/inf/st/pnml/jastadd/parser")
-        if (!outdir.isDirectory()) {
-            outdir.mkdirs()
-        }
-        def inputFile = project.file("src/main/jastadd/clauses/Parser.beaver")
-        args ([ '-d', outdir.path, '-t', '-c', '-w', inputFile.path ])
-    }
-}*/
-
-// Third phase: JastAdd -> Java (using JastAdd Gradle plugin)
 jastadd {
 
     configureModuleBuild()
@@ -187,22 +127,28 @@ jastadd {
             }
 
             jastadd {
-                basedir "src/"
-                include "main/jastadd/**/*.ast"
-                include "main/jastadd/**/*.jadd"
-                include "main/jastadd/**/*.jrag"
-                include "gen/jastadd/**/*.ast"
-                include "gen/jastadd/**/*.jadd"
-                include "gen/jastadd/**/*.jrag"
+                basedir ".."
+                include "pnml-relast-splitter/src/main/jastadd/**/*.ast"
+                include "pnml-relast-splitter/src/main/jastadd/**/*.jadd"
+                include "pnml-relast-splitter/src/main/jastadd/**/*.jrag"
+
+                include "pnml-relast-base/src/main/jastadd/**/*.ast"
+                include "pnml-relast-base/src/main/jastadd/**/*.jadd"
+                include "pnml-relast-base/src/main/jastadd/**/*.jrag"
+                include "pnml-relast-base/src/gen/jastadd/**/*.ast"
+                include "pnml-relast-base/src/gen/jastadd/**/*.jadd"
+                include "pnml-relast-base/src/gen/jastadd/**/*.jrag"
             }
 
             scanner {
-           //     include "src/main/jastadd/PnmlScanner.flex"
-           //     include "src/main/jastadd/clauses/expressions.flex"
+                basedir ".."
+                include "pnml-relast-base/main/jastadd/PnmlScanner.flex"
+                include "pnml-relast-base/jastadd/clauses/expressions.flex"
             }
 
             parser {
-            //    include "src/main/jastadd/PnmlParser.parser"
+                basedir ".."
+                include "pnml-relast-base/jastadd/PnmlParser.parser"
             }
         }
     }
@@ -220,17 +166,17 @@ jastadd {
 
     buildInfoDir = 'src/gen-res'
 
-    scanner.genDir = "src/gen/java/de/tudresden/inf/st/pnml/splitter/jastadd/scanner"
-    parser.genDir = "src/gen/java/de/tudresden/inf/st/pnml/splitter/jastadd/parser"
+    scanner.genDir = "src/gen/java/de/tudresden/inf/st/pnml/jastadd/scanner"
+    parser.genDir = "src/gen/java/de/tudresden/inf/st/pnml/jastadd/parser"
 
 //  default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
     extraJastAddOptions = ['--List=JastAddList'] // '--incremental=param'
 }
 
 // Workflow configuration for phases
-//relastToJastAdd.dependsOn ecoreToRelast
-//generateAst.dependsOn relastToJastAdd
-// compileJava.dependsOn generateBeaver
+relastToJastAdd.dependsOn ":pnml-relast-base:ecoreToRelast"
+generateAst.dependsOn relastToJastAdd
+compileJava.dependsOn ":pnml-relast-base:generateBeaver"
 //// always run jastadd
 //jastadd.outputs.upToDateWhen {false}
-relastToJastAdd.dependsOn pnmlRelastBase
\ No newline at end of file
+
diff --git a/libs/pnml-relast-base-0.1.jar b/libs/pnml-relast-base-0.1.jar
deleted file mode 100644
index b9e5a207e1e925ec95047da80616328125b848e2..0000000000000000000000000000000000000000
Binary files a/libs/pnml-relast-base-0.1.jar and /dev/null differ
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644
index 0d4ff7823810ae1346d8b16bcd15feefda06e314..0000000000000000000000000000000000000000
--- a/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-rootProject.name = 'pnml-splitter'
diff --git a/src/main/jastadd/conversion/PrimitiveElements.jadd b/src/main/jastadd/conversion/PrimitiveElements.jadd
index 8351ba3940bb7db0859bfbd5bf01156bae8c8782..8693c88899512a8475850c70486b292f4fbca7ae 100644
--- a/src/main/jastadd/conversion/PrimitiveElements.jadd
+++ b/src/main/jastadd/conversion/PrimitiveElements.jadd
@@ -1,11 +1,11 @@
 aspect PrimitivesConversion {
 
     syn fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI InputSignalTransition.convertToPnmlObject(){
-        return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertTransitionToPnmlObject(this);
+        return de.tudresden.inf.st.pnml.splitter.export.PrimitiveElementsConverter.convertTransitionToPnmlObject(this);
     }
 
     syn fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI OutputSignalPlace.convertToPnmlObject(){
-        return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertPlaceToPnmlObject(this);
+        return de.tudresden.inf.st.pnml.splitter.export.PrimitiveElementsConverter.convertPlaceToPnmlObject(this);
     }
 
     //syn fr.lip6.move.pnml.ptnet.hlapi.ArcHLAPI Arc.convertToPnmlObject(){
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
index bfed28f13657d66a811d3ad6e3bc057d90ba34e4..c31ec6d559c96bae17e3cc730baafae64ae9725d 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
@@ -1,8 +1,8 @@
 package de.tudresden.inf.st.pnml.splitter;
 
+import de.tudresden.inf.st.pnml.base.parsing.PnmlParser;
 import de.tudresden.inf.st.pnml.splitter.export.PnmlExporter;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.PetriNet;
 import de.tudresden.inf.st.pnml.splitter.postprocessing.GlobalToLocalNetsPostProcessor;
 import de.tudresden.inf.st.pnml.splitter.postprocessing.PostProcessingUtils;
 import fr.lip6.move.pnml.framework.utils.exception.InvalidIDException;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/copy/CopyPrimitiveElements.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/copy/CopyPrimitiveElements.java
index afc2a08a469f05a5adac0b7ea9b2b89803995dae..fa30c7fb64a27eb393aa160c056107e2ecf6f287 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/copy/CopyPrimitiveElements.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/copy/CopyPrimitiveElements.java
@@ -1,9 +1,9 @@
 package de.tudresden.inf.st.pnml.splitter.copy;
 
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.DefaultTransitionInformation;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.InputSignalBinding;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.InputSignalTransition;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.TransitionInformation;
+import de.tudresden.inf.st.pnml.jastadd.model.DefaultTransitionInformation;
+import de.tudresden.inf.st.pnml.jastadd.model.InputSignalBinding;
+import de.tudresden.inf.st.pnml.jastadd.model.InputSignalTransition;
+import de.tudresden.inf.st.pnml.jastadd.model.TransitionInformation;
 
 public class CopyPrimitiveElements {
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
index 1bc7f82632018bc0258ce82b01e3d04ab89e3c0c..d9965b0a6dabbbe04ba076c70c849d64aaaaf644 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
@@ -1,7 +1,7 @@
 package de.tudresden.inf.st.pnml.splitter.export;
 
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.Page;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.PetriNet;
+import de.tudresden.inf.st.pnml.jastadd.model.Page;
+import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
 import fr.lip6.move.pnml.framework.utils.exception.InvalidIDException;
 import fr.lip6.move.pnml.framework.utils.exception.VoidRepositoryException;
 import fr.lip6.move.pnml.ptnet.PNType;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
index 957026ff95b43bd68cad7c2f5464fb215f418511..7bd046c738b6adc1b2b4ca81a020ba5dbde59add 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
@@ -1,7 +1,6 @@
 package de.tudresden.inf.st.pnml.splitter.export;
 
 import de.tudresden.inf.st.pnml.jastadd.model.*;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.*;
 import fr.lip6.move.pnml.framework.general.PnmlExport;
 import fr.lip6.move.pnml.framework.utils.ModelRepository;
 import fr.lip6.move.pnml.framework.utils.exception.*;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
index 4b41089463d6ccea8983fda8d9ee4f8d5b7ecee8..66d595a7942eb717e16b170b55a8d7ff8fcaf20b 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
@@ -1,7 +1,6 @@
 package de.tudresden.inf.st.pnml.splitter.export;
 
 import de.tudresden.inf.st.pnml.jastadd.model.*;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.*;
 import fr.lip6.move.pnml.framework.utils.exception.InvalidIDException;
 import fr.lip6.move.pnml.framework.utils.exception.VoidRepositoryException;
 import fr.lip6.move.pnml.ptnet.hlapi.*;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
index a056d251beb4ba6bac1980a90a1b1e27bbeadadb..a06c307335824d06c5a05b0ac287bb8ed3e235a6 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
@@ -1,11 +1,10 @@
 package de.tudresden.inf.st.pnml.splitter.postprocessing;
 
 import de.tudresden.inf.st.pnml.splitter.constants.SplitterPnmlConstants;
-import de.tudresden.inf.st.constants.PnmlConstants;
+import de.tudresden.inf.st.pnml.base.constants.PnmlConstants;
 import de.tudresden.inf.st.pnml.splitter.export.PnmlExporter;
-import de.tudresden.inf.st.pnml.PnmlParser;
+import de.tudresden.inf.st.pnml.base.parsing.*;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.*;
 import fr.lip6.move.pnml.framework.utils.exception.InvalidIDException;
 import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
index 855876686eb0e2a81bc9afa7b6ba5a997e9b9bde..c1abcfa78483acdc0bc2502051e2099c11a43b3a 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
@@ -1,10 +1,9 @@
 package de.tudresden.inf.st.pnml.splitter.postprocessing;
 
-import de.tudresden.inf.st.constants.PnmlConstants;
+import de.tudresden.inf.st.pnml.base.constants.PnmlConstants;
 import de.tudresden.inf.st.pnml.splitter.copy.CopyPrimitiveElements;
 import de.tudresden.inf.st.pnml.splitter.data.Tuple3;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
-import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;