diff --git a/build.gradle b/build.gradle
index 95df5f5ca49ab6597d4f6c2c2d2a97e9cc1aaf20..4ad968c95598ceef3ce1f60aba86aa4632398fd2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,14 +1,197 @@
-plugins {
-    id 'java'
+// General configuration (plugins, settings, dependencies)
+group 'de.tudresden.inf.st'
+version '0.3'
+
+apply plugin: 'java'
+apply plugin: 'java-library'
+apply plugin: 'jastadd'
+apply plugin: 'application'
+apply plugin: "idea"
+apply plugin: 'java-library'
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+
+// maven central repo
+repositories.mavenCentral()
+
+buildscript {
+    //repositories.mavenCentral()
+    repositories {
+        jcenter()
+        mavenCentral()
+    }
+    dependencies {
+        classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
+    }
+
+    configurations {
+        classpath {
+            exclude group: 'org.slf4j', module: 'slf4j-api'//, version: '1.7.30'
+        }
+    }
+
+  /*  configurations.all {
+        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
+            if (details.requested.name == 'org.slf4j') {
+                details.useTarget 'org.slf4j:slf4j-api:1.7.+'
+            }
+        }
+    }*/
 }
 
-group 'org.example'
-version '1.0-SNAPSHOT'
+idea.module.generatedSourceDirs += file('src/gen/java')
 
-repositories {
-    mavenCentral()
+sourceSets.main.java.srcDir "src/gen/java"
+jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.pnml.splitter.Main')
+
+
+configurations {
+    myBeaver
 }
 
 dependencies {
-    testCompile group: 'junit', name: 'junit', version: '4.12'
+
+    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'
+    implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.13.2'
+    implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15'
+
+    // pnml lib
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore', version: '2.12.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore.xmi', version: '2.12.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.common', version: '2.12.0'
+    implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.mwe.core', version: '1.3.13'
+    api group: 'fr.lip6.pnml', name: 'fr.lip6.pnml.framework.ptnet', version: '2.2.12'
+    api group: 'fr.lip6.pnml', name: 'fr.lip6.pnml.framework.utils', version: '2.2.12'
+    implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-api', version: '1.2.22'
+    implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.22'
+    implementation group: 'com.thaiopensource', name: 'jing', version: '20091111'
+    implementation 'org.jetbrains:annotations:19.0.0'
+    // https://mvnrepository.com/artifact/xalan/xalan
+    implementation group: 'xalan', name: 'xalan', version: '2.7.2'
+
+    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
+
+    myBeaver group: 'net.sf.beaver', name: 'beaver-ant', version: '0.9.11'
+
+    jastadd2 "org.jastadd:jastadd:2.3.4"
+}
+
+// Default run configuration
+
+run {
+    mainClassName = 'de.tudresden.inf.st.pnml.splitter.Main'
+    standardInput = System.in
+}
+
+// Generated files
+//def relastFile = "./src/gen/jastadd/pnml/placeTransition.relast"
+
+jar {
+    manifest {
+        attributes "Main-Class": "de.tudresden.inf.st.pnml.splitter.Main"
+    }
+
+    from {
+        //configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
+        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+    }
+
+    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
+
+    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
+
+    archiveBaseName = 'pnml-splitter'
+
 }
+/*
+task relastToJastAdd(type: JavaExec) {
+    group = 'Build'
+    main = "-jar"
+
+    args "libs/relast.jar",
+            "--grammarName=./src/gen/jastadd/placeTransition",
+            "--useJastAddNames",
+            "--listClass=ArrayList",
+            "--jastAddList=JastAddList",
+            "--resolverHelper",
+            "--file",
+            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"
+}*/
+
+jastadd {
+
+    configureModuleBuild()
+    modules {
+
+
+
+        module("pnml") {
+
+            java {
+                basedir "src/"
+                include "main/**/*.java"
+                include "gen/**/*.java"
+            }
+
+            jastadd {
+                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 {
+                basedir ".."
+            //    include "pnml-relast-base/main/jastadd/PnmlScanner.flex"
+                include "pnml-relast-base/src/main/jastadd/clauses/expressions.flex"
+            }
+
+            parser {
+                basedir ".."
+            //    include "pnml-relast-base/jastadd/PnmlParser.parser"
+            }
+        }
+    }
+
+    cleanGen.doFirst {
+        delete "src/gen/java/de"
+        delete "src/gen-res/BuildInfo.properties"
+    }
+
+    module = "pnml"
+
+    astPackage = 'de.tudresden.inf.st.pnml.jastadd.model'
+
+    genDir = 'src/gen/java'
+
+    buildInfoDir = 'src/gen-res'
+
+    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 ":pnml-relast-base:ecoreToRelast"
+generateAst.dependsOn  ":pnml-relast-base:relastToJastAdd"
+compileJava.dependsOn ":pnml-relast-base:generateBeaver"
+//// always run jastadd
+//jastadd.outputs.upToDateWhen {false}
+
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644
index 841fbcc3699bdcbedfab5462f80d5305a7e66b63..0000000000000000000000000000000000000000
--- a/settings.gradle
+++ /dev/null
@@ -1,2 +0,0 @@
-rootProject.name = 'pnml-relast-splitter'
-