diff --git a/build.gradle b/build.gradle
index 6cc84133b33e0335daf810d71955697360cfd8d3..9470163aef2f227728eb8e94abd2918a02a14a6a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,9 +10,6 @@ allprojects  {
 subprojects {
 	apply plugin: 'java'
 
-	sourceCompatibility = 1.8
-	targetCompatibility = 1.8
-
 	task packageSources(type: Jar) {
 		classifier = 'sources'
 		from sourceSets.main.allSource
@@ -34,6 +31,10 @@ subprojects {
 
 	repositories {
 		mavenCentral()
+    maven {
+        name "gitlab-maven"
+        url "https://git-st.inf.tu-dresden.de/api/v4/groups/jastadd/-/packages/maven"
+    }
 	}
 
 	dependencies {
diff --git a/statemachine.drast/build.gradle b/statemachine.drast/build.gradle
index ee6ac3eced87abca328da38c878998de755bfebc..caf43116b58c2a4e5dd223428e52601b50a94957 100644
--- a/statemachine.drast/build.gradle
+++ b/statemachine.drast/build.gradle
@@ -5,10 +5,6 @@ apply plugin: 'java'
 apply plugin: 'application'
 apply plugin: "idea"
 
-sourceCompatibility = 1.8
-
-repositories.mavenCentral()
-
 dependencies {
 	implementation project(':statemachine.solution')
     implementation files('../libs/DrAST-1.2.2.jar')
diff --git a/statemachine.solution/.gitignore b/statemachine.solution/.gitignore
index 19ad8f831544c2661c133c48b7da7a78df83a50d..cb68406912a14b74b21279024025a0b46753b09f 100644
--- a/statemachine.solution/.gitignore
+++ b/statemachine.solution/.gitignore
@@ -5,3 +5,4 @@ src/gen-res/
 /bin/
 logs/
 /doc/
+/*.png
diff --git a/statemachine.solution/build.gradle b/statemachine.solution/build.gradle
index fc5b0636354cb37ef083e131061d7ecfe2f6581c..1ba0944f70c3408b4ef05385c3517ce482b11bdc 100644
--- a/statemachine.solution/build.gradle
+++ b/statemachine.solution/build.gradle
@@ -7,30 +7,26 @@ apply plugin: 'jastadd'
 apply plugin: 'application'
 apply plugin: "idea"
 
-sourceCompatibility = 1.8
-
-repositories.mavenCentral()
-
 buildscript {
-    repositories.mavenLocal()
     repositories.mavenCentral()
     dependencies {
         classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
     }
 }
 
-idea.module.generatedSourceDirs += file('src/gen/java')
-
 configurations {
     ragdoc
 }
 
-sourceSets.main.java.srcDir "src/gen/java"
-jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.statemachine.Main')
+File genSrc = file("src/gen/java")
+idea.module.generatedSourceDirs += genSrc
+sourceSets.main.java.srcDir genSrc
+//jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.statemachine.Main')
 
 dependencies {
     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: 'de.tudresden.inf.st', name: 'dumpAstWithPlantuml', version: '0.3.5'
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
     ragdoc files('../libs/rd-builder.jar')
@@ -39,7 +35,6 @@ dependencies {
 // Default run configuration
 run {
     mainClassName = 'de.tudresden.inf.st.statemachine.Main'
-    standardInput = System.in
 }
 
 // Generated files
diff --git a/statemachine.solution/src/main/java/de/tudresden/inf/st/statemachine/Main.java b/statemachine.solution/src/main/java/de/tudresden/inf/st/statemachine/Main.java
index d38b8acab43c87957d3b705824934a3f2cfd4444..2d0d558c834e3afa9f095054d76196090d3db454 100644
--- a/statemachine.solution/src/main/java/de/tudresden/inf/st/statemachine/Main.java
+++ b/statemachine.solution/src/main/java/de/tudresden/inf/st/statemachine/Main.java
@@ -1,6 +1,7 @@
 package de.tudresden.inf.st.statemachine;
 
 import beaver.Parser;
+import de.tudresden.inf.st.jastadd.dumpAst.ast.Dumper;
 import de.tudresden.inf.st.statemachine.jastadd.model.State;
 import de.tudresden.inf.st.statemachine.jastadd.model.StateMachine;
 import de.tudresden.inf.st.statemachine.jastadd.model.Transition;
@@ -24,6 +25,7 @@ public class Main {
     }
     printHeading("Initial statemachine");
     System.out.println(stateMachine.prettyPrint());
+    Dumper.read(stateMachine).dumpAsPNG(Paths.get("01-initial.png"));
 
     stateMachine.printSomeAnalysis();
 
@@ -41,6 +43,7 @@ public class Main {
     }
     printHeading("DotGraph");
     System.out.println(stateMachine.toDot());
+    Dumper.read(stateMachine).dumpAsPNG(Paths.get("02-transformed.png"));
     DrAST_root_node = stateMachine;
   }
 
diff --git a/statemachine.task/.gitignore b/statemachine.task/.gitignore
index 19ad8f831544c2661c133c48b7da7a78df83a50d..cb68406912a14b74b21279024025a0b46753b09f 100644
--- a/statemachine.task/.gitignore
+++ b/statemachine.task/.gitignore
@@ -5,3 +5,4 @@ src/gen-res/
 /bin/
 logs/
 /doc/
+/*.png
diff --git a/statemachine.task/build.gradle b/statemachine.task/build.gradle
index fc5b0636354cb37ef083e131061d7ecfe2f6581c..1ba0944f70c3408b4ef05385c3517ce482b11bdc 100644
--- a/statemachine.task/build.gradle
+++ b/statemachine.task/build.gradle
@@ -7,30 +7,26 @@ apply plugin: 'jastadd'
 apply plugin: 'application'
 apply plugin: "idea"
 
-sourceCompatibility = 1.8
-
-repositories.mavenCentral()
-
 buildscript {
-    repositories.mavenLocal()
     repositories.mavenCentral()
     dependencies {
         classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
     }
 }
 
-idea.module.generatedSourceDirs += file('src/gen/java')
-
 configurations {
     ragdoc
 }
 
-sourceSets.main.java.srcDir "src/gen/java"
-jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.statemachine.Main')
+File genSrc = file("src/gen/java")
+idea.module.generatedSourceDirs += genSrc
+sourceSets.main.java.srcDir genSrc
+//jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.statemachine.Main')
 
 dependencies {
     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: 'de.tudresden.inf.st', name: 'dumpAstWithPlantuml', version: '0.3.5'
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
     ragdoc files('../libs/rd-builder.jar')
@@ -39,7 +35,6 @@ dependencies {
 // Default run configuration
 run {
     mainClassName = 'de.tudresden.inf.st.statemachine.Main'
-    standardInput = System.in
 }
 
 // Generated files
diff --git a/statemachine.task/src/main/java/de/tudresden/inf/st/statemachine/Main.java b/statemachine.task/src/main/java/de/tudresden/inf/st/statemachine/Main.java
index cca109bdf6ba5fa9f5dd85c9862981b8c4b5d816..2c381ce4eb76b424107ac398579615e56030c509 100644
--- a/statemachine.task/src/main/java/de/tudresden/inf/st/statemachine/Main.java
+++ b/statemachine.task/src/main/java/de/tudresden/inf/st/statemachine/Main.java
@@ -1,6 +1,7 @@
 package de.tudresden.inf.st.statemachine;
 
 import beaver.Parser;
+import de.tudresden.inf.st.jastadd.dumpAst.ast.Dumper;
 import de.tudresden.inf.st.statemachine.jastadd.model.State;
 import de.tudresden.inf.st.statemachine.jastadd.model.StateMachine;
 import de.tudresden.inf.st.statemachine.jastadd.model.Transition;
@@ -24,6 +25,7 @@ public class Main {
     }
     printHeading("Initial statemachine");
     System.out.println(stateMachine.prettyPrint());
+    Dumper.read(stateMachine).dumpAsPNG(Paths.get("01-initial.png"));
 
     stateMachine.printSomeAnalysis();
 
@@ -39,6 +41,7 @@ public class Main {
       printHeading("StateMachine after");
       System.out.println(stateMachine.prettyPrint());
     }
+    Dumper.read(stateMachine).dumpAsPNG(Paths.get("02-transformed.png"));
     DrAST_root_node = stateMachine;
   }