diff --git a/build.gradle b/build.gradle
index eedc254b7a20e75d695753815bc0d5fcb7707778..cec409ba6c2a313861e7d9d608a334bc3e19a1eb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -28,11 +28,12 @@ buildscript {
 idea.module.generatedSourceDirs += file('src/gen/java')
 
 sourceSets.main.java.srcDir "src/gen/java"
-jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.pnml.Main')
+jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.pnml.splitter.Main')
 
 
 configurations {
-    myBeaver
+ //   myBeaver
+    pnmlRelastBaseClasspath
 }
 
 dependencies {
@@ -58,7 +59,10 @@ dependencies {
 
     compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
 
-    myBeaver group: 'net.sf.beaver', name: 'beaver-ant', version: '0.9.11'
+    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'
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
 }
@@ -66,7 +70,7 @@ dependencies {
 // Default run configuration
 
 run {
-    mainClassName = 'de.tudresden.inf.st.pnml.Main'
+    mainClassName = 'de.tudresden.inf.st.pnml.splitter.Main'
     standardInput = System.in
 }
 
@@ -89,12 +93,27 @@ jar {
 
     duplicatesStrategy = DuplicatesStrategy.EXCLUDE
 
-    archiveBaseName = 'pnml-splitter'
+    archiveBaseName = 'pnml-relast-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) {
+/*task ecoreToRelast(type: JavaExec) {
     group = 'Build'
     main = "-jar"
 
@@ -108,7 +127,7 @@ task ecoreToRelast(type: JavaExec) {
 
     inputs.files file(ecoreFile)
     outputs.files file(relastFile), file(relastAspect)
-}
+}*/
 
 // Second phase: RelAst -> JastAdd
 task relastToJastAdd(type: JavaExec) {
@@ -122,13 +141,13 @@ 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//,
+         //   "./src/main/jastadd/marking/Marking.relast",
+         //   "./src/main/jastadd/io/IoPN.relast",
+         //   "./src/main/jastadd/clauses/expressions.relast"
 }
 
-task generateBeaver(type: JavaExec) {
+/*task generateBeaver(type: JavaExec) {
 
     inputs.files {
         project.file("src/main/jastadd/clauses/Parser.beaver")
@@ -149,7 +168,7 @@ task generateBeaver(type: JavaExec) {
         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 {
@@ -178,12 +197,12 @@ jastadd {
             }
 
             scanner {
-                include "src/main/jastadd/PnmlScanner.flex"
-                include "src/main/jastadd/clauses/expressions.flex"
+           //     include "src/main/jastadd/PnmlScanner.flex"
+           //     include "src/main/jastadd/clauses/expressions.flex"
             }
 
             parser {
-                include "src/main/jastadd/PnmlParser.parser"
+            //    include "src/main/jastadd/PnmlParser.parser"
             }
         }
     }
@@ -201,16 +220,17 @@ jastadd {
 
     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"
+    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"
 
 //  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 ecoreToRelast
+//generateAst.dependsOn relastToJastAdd
+// compileJava.dependsOn 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
new file mode 100644
index 0000000000000000000000000000000000000000..b9e5a207e1e925ec95047da80616328125b848e2
Binary files /dev/null and b/libs/pnml-relast-base-0.1.jar differ
diff --git a/src/main/jastadd/Constraints.jrag b/src/main/jastadd/Constraints.jrag
deleted file mode 100644
index f713c77bc4faad5090def9447b155f98b5e12452..0000000000000000000000000000000000000000
--- a/src/main/jastadd/Constraints.jrag
+++ /dev/null
@@ -1,91 +0,0 @@
-aspect Constraints {
-
-  coll Set<ConstraintViolation> PetriNet.constraintViolations() [new java.util.HashSet()] root PetriNet;
-
-}
-
-aspect ConstraintViolations {
-
-  abstract class ConstraintViolation {
-
-
-    public String toString() {
-      return "Constraint " + getTitle() + " violated in object " + id() + ": " + getMessage();
-    }
-
-    protected ASTNode location;
-
-    public String id() {
-      if (location instanceof PnObject) return ((PnObject) location).getId();
-      if (location instanceof PetriNet) return ((PetriNet) location).getId();
-      return location.toString();
-    }
-
-    protected String title;
-    protected String description;
-    protected String message;
-
-    public String getTitle() { return title; }
-    public String getDescription() { return description; }
-    public String getMessage() { return message; }
-
-  }
-
-  class CheckIdsConstraint extends ConstraintViolation {
-    public CheckIdsConstraint(ASTNode location) {
-      this.location = location;
-      this.title = "CheckIds";
-      this.description = "Checks id attribute existence";
-      this.message = "A node of type '" + location.getClass().getSimpleName() + "' must have an id attribute.";
-    }
-  }
-
-  class CheckIdUniquenessConstraint extends ConstraintViolation {
-    public CheckIdUniquenessConstraint(ASTNode location) {
-      this.location = location;
-      this.title = "CheckIdUniquess";
-      this.description = "Checks id attribute uniqueness";
-      this.message = "The id attribute value " + id() + " of the node of type '" + location.getClass().getSimpleName() + "' is not unique.";
-    }
-  }
-
-  PetriNet contributes new CheckIdsConstraint(this)
-      when checkIdsConstraintViolated()
-      to PetriNet.constraintViolations();
-  PnObject contributes new CheckIdsConstraint(this)
-      when checkIdsConstraintViolated()
-      to PetriNet.constraintViolations();
-}
-
-aspect CoreModelConstraints {
-
-  syn boolean PetriNet.checkIdsConstraintViolated() = getId() == null || getId().equals("");
-  syn boolean PnObject.checkIdsConstraintViolated() = getId() == null || getId().equals("");
-
-  coll List<String> PetriNet.ids() [new ArrayList()] root PetriNet;
-  PnObject contributes getId() to PetriNet.ids();
-
-  syn Map<String, Long> PetriNet.idCount() =
-      ids().stream().collect(Collectors.groupingBy(java.util.function.Function.identity(), Collectors.counting()));
-
-  syn boolean PetriNet.uniqueId(String id) = idCount().get(id) <= 1;
-  syn boolean PnObject.uniqueId(String id) = petriNet().idCount().get(id) <= 1;
-
-  syn Optional<CheckIdUniquenessConstraint> PetriNet.checkIdUniqueness() {
-    if(uniqueId(getId())) return Optional.empty();
-    else return Optional.of(new CheckIdUniquenessConstraint(this));
-  }
-  syn Optional<CheckIdUniquenessConstraint> PnObject.checkIdUniqueness() {
-    if(petriNet().uniqueId(getId())) return Optional.empty();
-    else return Optional.of(new CheckIdUniquenessConstraint(this));
-  }
-
-  PetriNet contributes checkIdUniqueness().get()
-      when checkIdUniqueness().isPresent()
-      to PetriNet.constraintViolations();
-  PnObject contributes checkIdUniqueness().get()
-      when checkIdUniqueness().isPresent()
-      to PetriNet.constraintViolations();
-
-
-}
diff --git a/src/main/jastadd/Navigation.jrag b/src/main/jastadd/Navigation.jrag
deleted file mode 100644
index 6bb30366b2a6b16cabbfab4e1bd2b87b411f3c44..0000000000000000000000000000000000000000
--- a/src/main/jastadd/Navigation.jrag
+++ /dev/null
@@ -1,143 +0,0 @@
-aspect Navigation {
-  inh PetriNet PnObject.petriNet();
-  eq PetriNet.getChild().petriNet() = this;
-
-  syn java.util.Collection<Place> TransitionNode.incomingPlaces() {
-
-      java.util.Set<Place> s = new java.util.HashSet<>();
-
-      for (Arc incomingArc : getInArcList()) {
-          s.add(incomingArc.getSource().asPlaceNode().place());
-      }
-
-      for (TransitionNode ref : getReferencingTransitions()) {
-          s.addAll(ref.incomingPlaces());
-      }
-
-      return s;
-  }
-  
-  syn java.util.Collection<Place> TransitionNode.outgoingPlaces() {
-
-    java.util.Set<Place> s = new java.util.HashSet<>();
-
-    for (Arc outgoing : getOutArcList()) {
-         s.add(outgoing.getTarget().asPlaceNode().place());
-    }
-
-    for (TransitionNode ref : getReferencingTransitions()) {
-         s.addAll(ref.outgoingPlaces());
-    }
-
-    return s;
-  }
-
-  inh Page PnObject.ContainingPage();
-  eq Page.getObject().ContainingPage() = this;
-  eq PetriNet.getPage().ContainingPage() = null;
-
-  syn boolean Node.isPlaceNode() = false;
-  eq PlaceNode.isPlaceNode() = true;
-
-  syn PlaceNode Node.asPlaceNode() = null;
-  eq PlaceNode.asPlaceNode() = this;
-
-  syn boolean Node.isTransitionNode() = false;
-  eq TransitionNode.isTransitionNode() = true;
-
-  syn boolean TransitionInformation.isTopicTransitionInformation() = false;
-  eq TopicTransitionInformation.isTopicTransitionInformation() = true;
-
-  syn boolean TransitionInformation.isServiceTransitionInformation() = false;
-  eq ServiceTransitionInformation.isServiceTransitionInformation() = true;
-
-  syn boolean TransitionInformation.isDefaultTransitionInformation() = false;
-  eq DefaultTransitionInformation.isDefaultTransitionInformation() = true;
-
-  syn boolean TransitionNode.isRefTransition() = false;
-  eq RefTransition.isRefTransition() = true;
-
-  syn boolean TransitionNode.isTransition() = false;
-  eq Transition.isTransition() = true;
-
-  syn boolean PlaceNode.isRefPlace() = false;
-  eq RefPlace.isRefPlace() = true;
-
-  syn Place PlaceNode.asPlace() = null;
-  eq Place.asPlace() = this;
-
-  syn boolean PlaceNode.isPlace() = false;
-  eq Place.isPlace() = true;
-
-  syn RefTransition TransitionNode.asRefTransition() = null;
-  eq RefTransition.asRefTransition() = this;
-
-  syn Transition TransitionNode.asTransition() = null;
-  eq Transition.asTransition() = this;
-
-  syn TransitionNode Node.asTransitionNode() = null;
-  eq TransitionNode.asTransitionNode() = this;
-
-  syn InputSignalTransition Transition.asInputSignalTransition() = null;
-  eq InputSignalTransition.asInputSignalTransition() = this;
-
-  syn OutputSignalPlace Place.asOutputSignalPlace() = null;
-  eq OutputSignalPlace.asOutputSignalPlace() = this;
-
-  syn TopicTransitionInformation TransitionInformation.asTopicTransitionInformation() = null;
-  eq TopicTransitionInformation.asTopicTransitionInformation() = this;
-
-  syn ServiceTransitionInformation TransitionInformation.asServiceTransitionInformation() = null;
-  eq ServiceTransitionInformation.asServiceTransitionInformation() = this;
-
-  syn DefaultTransitionInformation TransitionInformation.asDefaultTransitionInformation() = null;
-  eq DefaultTransitionInformation.asDefaultTransitionInformation() = this;
-
-  syn Place PlaceNode.place();
-  eq Place.place() = this;
-  eq RefPlace.place() = getRef().place();
-
-  syn Transition TransitionNode.transition();
-  eq Transition.transition() = this;
-  eq RefTransition.transition() = getRef().transition();
-
-  coll java.util.Set<PnObject> PetriNet.allObjects() [new java.util.HashSet()] root PetriNet;
-  PnObject contributes this
-    to PetriNet.allObjects()
-    for petriNet();
-
-  coll java.util.Set<Place> PetriNet.allPlaces() [new java.util.HashSet()] root PetriNet;
-  Place contributes this
-    to PetriNet.allPlaces()
-    for petriNet();
-
-  coll java.util.Set<Transition> PetriNet.allTransitions() [new java.util.HashSet()] root PetriNet;
-  Transition contributes this
-    to PetriNet.allTransitions()
-    for petriNet();
-
-  coll java.util.Set<Arc> PetriNet.allArcs() [new java.util.HashSet()] root PetriNet;
-  Arc contributes this
-    to PetriNet.allArcs()
-    for petriNet();
-
-  coll java.util.Set<Page> PetriNet.allPages() [new java.util.HashSet()] root PetriNet;
-  Page contributes this
-    to PetriNet.allPages()
-    for petriNet();
-
-  coll java.util.Set<TransitionNode> PetriNet.allTransitionNodes() [new java.util.HashSet()] root PetriNet;
-  TransitionNode contributes this
-    to PetriNet.allTransitionNodes()
-    for petriNet();
-
-  coll java.util.Set<RefTransition> PetriNet.allRefTransitions() [new java.util.HashSet()] root PetriNet;
-  RefTransition contributes this
-    to PetriNet.allRefTransitions()
-    for petriNet();
-
-  coll java.util.Set<RefPlace> PetriNet.allRefPlaces() [new java.util.HashSet()] root PetriNet;
-  RefPlace contributes this
-    to PetriNet.allRefPlaces()
-    for petriNet();
-}
diff --git a/src/main/jastadd/References.jrag b/src/main/jastadd/References.jrag
deleted file mode 100644
index bce6451f2d7dd420d92c767b7a282df31381a3b2..0000000000000000000000000000000000000000
--- a/src/main/jastadd/References.jrag
+++ /dev/null
@@ -1,18 +0,0 @@
-aspect References {
-
-  syn PnObject PetriNet.resolve(String id) {
-    for (PnObject object : allObjects()) {
-      if (object.getId().equals(id)) {
-        return object;
-      }
-    }
-    throw new RuntimeException(new de.tudresden.inf.st.pnml.PnmlParseException("Unable to resolve id " + id));
-  }
-
-  eq PnObject.globallyResolveArcByToken(String id) = (Arc) petriNet().resolve(id);
-  eq PnObject.globallyResolveNodeByToken(String id) = (Node) petriNet().resolve(id);
-  eq PnObject.globallyResolvePlaceNodeByToken(String id) = (PlaceNode) petriNet().resolve(id);
-  eq PnObject.globallyResolveTransitionNodeByToken(String id) = (TransitionNode) petriNet().resolve(id);
-  eq PnObject.globallyResolveRefPlaceByToken(String id) = (RefPlace) petriNet().resolve(id);
-  eq PnObject.globallyResolveRefTransitionByToken(String id) = (RefTransition) petriNet().resolve(id);
-}
diff --git a/src/main/jastadd/Util.jadd b/src/main/jastadd/Util.jadd
deleted file mode 100644
index fb2cf4befd6e539ded5d88b88cb7c6940113b0d7..0000000000000000000000000000000000000000
--- a/src/main/jastadd/Util.jadd
+++ /dev/null
@@ -1,31 +0,0 @@
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import java.util.*;
-import java.util.stream.Collectors;
-
-aspect Logging {
-  static Logger ASTNode.logger = LogManager.getLogger(ASTNode.class);
-}
-
-aspect JastAddAPIExtension {
-
-  /**
-   * removes the object from the AST, i.e. removes the reference from its parent to the object
-   *
-   * Please note that any intrinsic non-containment relations to the object are not removed.
-   * @return true, if the object had a parent.
-   */
-  public boolean ASTNode.removeSelf() {
-    if (getParent() == null) {
-      return false;
-    } else {
-      for (int childIndex = 0; childIndex < getParent().numChildren(); childIndex++) {
-        if (getParent().getChild(childIndex) == this) {
-          getParent().removeChild(childIndex);
-          return true;
-        }
-      }
-    }
-    throw new RuntimeException("unable to remove child, because it was not contained in its parent!");
-  }
-}
diff --git a/src/main/jastadd/clauses/Parser.beaver b/src/main/jastadd/clauses/Parser.beaver
deleted file mode 100644
index 9505a3cc1db834710e67ca01573a0868db96cce5..0000000000000000000000000000000000000000
--- a/src/main/jastadd/clauses/Parser.beaver
+++ /dev/null
@@ -1,22 +0,0 @@
-%header {:
-package de.tudresden.inf.st.pnml.jastadd.parser;
- import de.tudresden.inf.st.pnml.jastadd.model.*; :};
-%terminals AND;
-%terminals OR;
-%terminals NOT;
-%terminals VARIABLE;
-%typeof goal = "expressions";
-%typeof exp = "Exp";
-%goal goal;
-goal =
-    exp.exp {: return new Symbol(new Root(exp)); :}
-  ;
-exp =
-    exp.a AND.AND exp.b {: return new Symbol(new AndExp(a, b)); :}
-
-  | exp.a OR.OR exp.b {: return new Symbol(new OrExp(a, b)); :}
-
-  | NOT.NOT exp.exp {: return new Symbol(new NotExp(exp)); :}
-
-  | VARIABLE.v {: return new Symbol(new Var(((String)v.value))); :}
-  ;
diff --git a/src/main/jastadd/clauses/expressions.flex b/src/main/jastadd/clauses/expressions.flex
deleted file mode 100644
index eb1089f5639d44fb28d4c28548531855dcbd4c37..0000000000000000000000000000000000000000
--- a/src/main/jastadd/clauses/expressions.flex
+++ /dev/null
@@ -1,39 +0,0 @@
-package de.tudresden.inf.st.pnml.jastadd.scanner;
-
-import de.tudresden.inf.st.pnml.jastadd.parser.Parser.Terminals;
-
-%%
-
-%public
-%final
-%class ExpressionScanner
-%extends beaver.Scanner
-
-%type beaver.Symbol
-%function nextToken
-%yylexthrow beaver.Scanner.Exception
-
-%line
-%column
-
-%{
-  private beaver.Symbol sym(short id) {
-    return new beaver.Symbol(id, yyline + 1, yycolumn + 1, yylength(), yytext());
-  }
-%}
-
-WhiteSpace = [ ] | \t | \f
-NewLine    = \n | \r | \r\n
-Variable = [:jletter:][:jletterdigit:]*
-
-%%
-
-// discard whitespace information
-{WhiteSpace}  { }
-
-// token definitions
-"AND"           { return sym(Terminals.AND); }
-"OR"           { return sym(Terminals.OR); }
-"NOT"           { return sym(Terminals.NOT); }
-{Variable}      { return sym(Terminals.VARIABLE); }
-<<EOF>>       { return sym(Terminals.EOF); }
diff --git a/src/main/jastadd/clauses/expressions.jadd b/src/main/jastadd/clauses/expressions.jadd
deleted file mode 100644
index 964462ff302f77c80a8c72da3c217eb996257f07..0000000000000000000000000000000000000000
--- a/src/main/jastadd/clauses/expressions.jadd
+++ /dev/null
@@ -1,29 +0,0 @@
-import de.tudresden.inf.st.data.ClauseValuesDefinition;
-
-aspect SignalExpressions {
-
-    syn String ASTNode.printExp();
-    syn boolean Exp.eval(ClauseValuesDefinition defs);
-
-    eq ASTNode.printExp() = "";
-
-    eq Root.printExp() {
-        String result = "";
-
-        if(getExp() != null){
-            result+=getExp().printExp();
-        }
-        return result;
-    }
-
-    eq AndExp.printExp() = getA().printExp() + " AND " + getB().printExp();
-    eq OrExp.printExp()  = getA().printExp() + " OR " + getB().printExp();
-    eq Var.printExp() = getName();
-    eq NotExp.printExp() = "NOT " + getExp().printExp();
-
-    eq AndExp.eval(ClauseValuesDefinition defs) = getA().eval(defs) && getB().eval(defs);
-    eq OrExp.eval(ClauseValuesDefinition defs)  = getA().eval(defs) || getB().eval(defs);
-    eq Var.eval(ClauseValuesDefinition defs) = defs.getDef(this.getName());
-    eq NotExp.eval(ClauseValuesDefinition defs) = !getExp().eval(defs);
-
-}
\ No newline at end of file
diff --git a/src/main/jastadd/clauses/expressions.relast b/src/main/jastadd/clauses/expressions.relast
deleted file mode 100644
index ade97b2562eb5c0f0e7d0b4880f07fca1ac7e53d..0000000000000000000000000000000000000000
--- a/src/main/jastadd/clauses/expressions.relast
+++ /dev/null
@@ -1,11 +0,0 @@
-Root ::= Exp ;
-
-abstract Exp ;
-abstract UnaryExp:Exp ::= Exp ;
-
-abstract BinExp:Exp ::= A:Exp B:Exp ;
-AndExp:BinExp ;
-OrExp:BinExp ;
-
-Var:Exp ::= <Name:String> ;
-NotExp:UnaryExp ;
diff --git a/src/main/jastadd/distribution/DistributedPN.jadd b/src/main/jastadd/distribution/DistributedPN.jadd
deleted file mode 100644
index a84f4b511ae6999712578bc99bde7198090fd5c8..0000000000000000000000000000000000000000
--- a/src/main/jastadd/distribution/DistributedPN.jadd
+++ /dev/null
@@ -1,42 +0,0 @@
-aspect PnDistribution {
-
-    syn lazy TransitionInformation InputSignalTransition.getStaticTransitionInformation() {
-
-        if(this.getMutualTransitionInformation() == null){
-            TransitionInformation tInfo = de.tudresden.inf.st.pnml.ToolSpecificsParser.getTransitionInformation(this.getToolspecificList());
-            return tInfo;
-        }
-
-        return this.getMutualTransitionInformation();
-    }
-
-    syn lazy PlaceInformation OutputSignalPlace.getStaticPlaceInformation() {
-
-        if(this.getMutualPlaceInformation() == null){
-            PlaceInformation tInfo = de.tudresden.inf.st.pnml.ToolSpecificsParser.getPlaceInformationInformation(this.getToolspecificList());
-            return tInfo;
-        }
-
-        return this.getMutualPlaceInformation();
-    }
-
-    syn lazy String RefTransition.getLocation() {
-        return de.tudresden.inf.st.pnml.ToolSpecificsParser.getLocationFromToolSpecifics(this.getToolspecificList());
-    }
-
-    syn lazy String RefTransition.getSubNet() {
-        return de.tudresden.inf.st.pnml.ToolSpecificsParser.getSubnetFromToolSpecifics(this.getToolspecificList());
-    }
-
-    syn lazy String RefPlace.getLocation() {
-        return de.tudresden.inf.st.pnml.ToolSpecificsParser.getLocationFromToolSpecifics(this.getToolspecificList());
-    }
-
-    syn lazy String RefTransition.getSubnet() {
-        return de.tudresden.inf.st.pnml.ToolSpecificsParser.getSubnetFromToolSpecifics(this.getToolspecificList());
-    }
-
-    syn lazy Root InputSignalTransition.getInputSignalClause(){
-        return de.tudresden.inf.st.pnml.ToolSpecificsParser.getClauseFromToolSpecifics(this.getToolspecificList());
-    }
-}
\ No newline at end of file
diff --git a/src/main/jastadd/io/IoPN.jadd b/src/main/jastadd/io/IoPN.jadd
deleted file mode 100644
index 94491dc8c6d117956321a96b4cebff09027e00fb..0000000000000000000000000000000000000000
--- a/src/main/jastadd/io/IoPN.jadd
+++ /dev/null
@@ -1,85 +0,0 @@
-aspect IoPnExtension{
-
-        inh Marking OutputSignalPlace.marking();
-
-        eq PetriNetDoc.getChild().marking() = null;
-
-        eq Marking.getPetriNet().marking() = this;
-
-        inh Place OutputSignalBinding.containingPlace();
-
-        eq OutputSignalPlace.getOutputSignalBinding().containingPlace() = this;
-
-        eq Page.getObject().containingPlace() = null;
-
-        syn lazy JastAddList<InputSignalBinding> InputSignalTransition.getStaticInputSignalBindingList() {
-
-            if(this.getMutualInputSignalBindingList() == null || this.getMutualInputSignalBindingList().getNumChild() == 0){
-                JastAddList<InputSignalBinding> isBindings = de.tudresden.inf.st.postprocessing.IoPetriNetPostProcessor.parseInputSignalBindingDefinitions(this.getToolspecificList());
-                return isBindings;
-            }
-
-            return this.getMutualInputSignalBindingList();
-        }
-
-        syn lazy JastAddList<OutputSignalBinding> OutputSignalPlace.getOutputSignalBindingList() {
-
-            JastAddList<OutputSignalBinding> osBindings = de.tudresden.inf.st.postprocessing.IoPetriNetPostProcessor.parseOutputSignalBindingDefinitions(this.getToolspecificList());
-
-            return osBindings;
-        }
-
-        // updates automatically based on dependencies to the corresponding place
-        syn String OutputSignalBinding.getOutputSignalValue(){
-
-            OutputSignalPlace osp = this.containingPlace().asOutputSignalPlace();
-            Marking marking = osp.marking();
-            MarkedPlace markedPlace = marking.resolvePlaceById(this.getPlaceID());
-
-            JastAddList<EqualityOutputMapping> eomList = this.getEqualityOMListNoTransform();
-            JastAddList<ThresholdOutputMapping> tomList = this.getThresholdOMListNoTransform();
-            JastAddList<RangeOutputMapping> romList = this.getRangeOMListNoTransform();
-
-            // eom
-
-            int result = -1;
-
-            for(EqualityOutputMapping eom : eomList){
-                if((eom.getValue() == markedPlace.getMarking()) && result == -1){
-                    result = eom.getResult();
-                    break;
-                }
-            }
-
-            // tom
-
-            if(result > -1){
-                for(ThresholdOutputMapping tom : tomList){
-                    if(tom.getValue() <= markedPlace.getMarking()){
-                        result = tom.getResult();
-                        break;
-                    }
-                }
-            }
-
-            // rom
-
-            if(result > -1){
-                for(RangeOutputMapping rom: romList){
-                    if((rom.getLowerBound() <= markedPlace.getMarking()) && (rom.getUpperBound() >= markedPlace.getMarking())){
-                        result = rom.getResult();
-                        break;
-                    }
-                }
-            }
-
-            // 0 (disabled Signal) is default
-            if(result == -1){
-                result = 0;
-            }
-
-            String output = String.valueOf(result) + "-" + this.getOutputSignalID();
-
-            return output;
-        }
-}
\ No newline at end of file
diff --git a/src/main/jastadd/io/IoPN.relast b/src/main/jastadd/io/IoPN.relast
deleted file mode 100644
index 60241c875f4e54b45d956c02c5bca6ba686daba0..0000000000000000000000000000000000000000
--- a/src/main/jastadd/io/IoPN.relast
+++ /dev/null
@@ -1,19 +0,0 @@
-InputSignalBinding : PnObject ::= <TransitionID:String> <InputSignalID:String> <InputSignalValue:int>;
-OutputSignalBinding : PnObject ::= <PlaceID:String> <OutputSignalID:String> /<OutputSignalValue:String>/ EqualityOM:EqualityOutputMapping* ThresholdOM:ThresholdOutputMapping* RangeOM:RangeOutputMapping*;
-
-abstract TransitionInformation ::= <Location:String> <Type:String> <InputLimit:java.lang.Integer> <OutputLimit:java.lang.Integer> <SubNet:String> <Instance:String>;
-TopicTransitionInformation : TransitionInformation ::= <Topic:String>;
-ServiceTransitionInformation : TransitionInformation ::= <ServiceName:String>;
-DefaultTransitionInformation : TransitionInformation;
-
-PlaceInformation ::= <Location:String> <Type:String> <SubNet:String> <Instance:String>;
-
-InputSignalTransition : Transition ::= /StaticInputSignalBinding:InputSignalBinding*/ MutualInputSignalBinding:InputSignalBinding* /StaticTransitionInformation:TransitionInformation/ [MutualTransitionInformation:TransitionInformation] /InputSignalClause:Root/;
-OutputSignalPlace : Place ::= /OutputSignalBinding*/ /StaticPlaceInformation:PlaceInformation/ [MutualPlaceInformation:PlaceInformation];
-
-OutputMapping;
-
-EqualityOutputMapping : OutputMapping ::= <Value:java.lang.Integer> <Result:java.lang.Integer>;
-ThresholdOutputMapping : OutputMapping ::= <Value:java.lang.Integer> <Result:java.lang.Integer>;
-RangeOutputMapping : OutputMapping ::= <UpperBound:java.lang.Integer> <LowerBound:java.lang.Integer> <Result:java.lang.Integer>;
-
diff --git a/src/main/jastadd/marking/Marking.jrag b/src/main/jastadd/marking/Marking.jrag
deleted file mode 100644
index 17c5f98908ce0dacea26bacc346e8a9d2fad9bf6..0000000000000000000000000000000000000000
--- a/src/main/jastadd/marking/Marking.jrag
+++ /dev/null
@@ -1,74 +0,0 @@
-aspect Marking {
-  public Marking PetriNet.initialMarking(PetriNet pn) {
-    Marking marking = new Marking();
-    marking.setPetriNet(pn);
-    for (Place place : allPlaces()) {
-      MarkedPlace markedPlace = new MarkedPlace();
-      markedPlace.setPlace(place);
-      if (place.hasInitialMarking() && place.getInitialMarking().getText() != null) {
-        markedPlace.setMarking(place.getInitialMarking().getText());
-      } else {
-        markedPlace.setMarking(0);
-      }
-      marking.addPlace(markedPlace);
-    }
-    return marking;
-  }
-
-  public Marking PetriNet.setupMarking(PetriNet pn) {
-
-    Marking marking = new Marking();
-    marking.setPetriNet(pn);
-
-    for (Place place : allPlaces()) {
-
-        MarkedPlace markedPlace = new MarkedPlace();
-        markedPlace.setPlace(place);
-        markedPlace.setMarking(1);
-
-        marking.addPlace(markedPlace);
-    }
-    return marking;
-  }
-
-  syn MarkedPlace Marking.resolvePlace(Place place) = placeMap().get(place);
-
-  syn lazy java.util.Map<Place, MarkedPlace> Marking.placeMap() {
-    java.util.Map<Place, MarkedPlace> map = new java.util.HashMap<>();
-    for (MarkedPlace markedPlace : getPlaceList()) {
-      map.put(markedPlace.getPlace(), markedPlace);
-    }
-    return map;
-  }
-
-  syn MarkedPlace Marking.resolvePlaceById(String placeID) {
-
-    for (MarkedPlace markedPlace : getPlaceList()) {
-          if(markedPlace.getPlace().getId().equals(placeID)){
-            return markedPlace;
-        }
-    }
-    return null;
-  }
-
-  syn int Marking.marking(Place place) = resolvePlace(place).getMarking();
-
-  syn boolean Marking.isEnabled(Transition t) {
-    for (Place place : t.incomingPlaces()) {
-      if (marking(place) == 0) return false;
-    }
-    return true;
-  }
-
-  syn boolean Marking.isDead() {
-    for (Transition transition : getPetriNet().allTransitions()) {
-      if (isEnabled(transition)) return false;
-    }
-    return true;
-  }
-
-  syn java.util.Set<Transition> Marking.enabledTransitions()
-      = getPetriNet().allTransitions().stream()
-          .filter(t -> isEnabled(t))
-          .collect(Collectors.toSet());
-}
diff --git a/src/main/jastadd/marking/Marking.relast b/src/main/jastadd/marking/Marking.relast
deleted file mode 100644
index 487b28226d7c9f73686ea4eb78495bbcee7bf488..0000000000000000000000000000000000000000
--- a/src/main/jastadd/marking/Marking.relast
+++ /dev/null
@@ -1,4 +0,0 @@
-Marking ::= PetriNet:PetriNet Place:MarkedPlace*;
-MarkedPlace ::= <Marking:int>;
-
-rel MarkedPlace.Place -> Place;
diff --git a/src/main/jastadd/marking/Printing.jrag b/src/main/jastadd/marking/Printing.jrag
deleted file mode 100644
index e89c16e4610fcfd8afaced338844e5f122b54f86..0000000000000000000000000000000000000000
--- a/src/main/jastadd/marking/Printing.jrag
+++ /dev/null
@@ -1,17 +0,0 @@
-aspect Printing {
-  syn String Marking.print() {
-    StringBuilder b = new StringBuilder();
-    b.append("Marking for Petri net '").append(getPetriNet().name()).append("':\n");
-    for (MarkedPlace place : getPlaceList()) {
-      b.append("  ").append(place.getPlace().name()).append(": ").append(place.getMarking()).append("\n");
-    }
-    b.append("Transitions for Petri net '").append(getPetriNet().name()).append("':\n");
-    for (Transition trans : getPetriNet().allTransitions()) {
-      b.append("  ").append(trans.name()).append(": ").append(isEnabled(trans)?"true":"false").append("\n");
-    }
-    return b.toString();
-  }
-
-  syn String PetriNet.name() = hasName()?getName().getText():getId();
-  syn String PnObject.name() = hasName()?getName().getText():getId();
-}
diff --git a/src/main/java/de/tudresden/inf/st/constants/PnmlConstants.java b/src/main/java/de/tudresden/inf/st/constants/PnmlConstants.java
deleted file mode 100644
index 70335cf8da9ff4fd954f0092caf26a0b60939409..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/constants/PnmlConstants.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package de.tudresden.inf.st.constants;
-
-public final class PnmlConstants {
-
-    // general transitions
-    public static final String TRANSITION_TYPE_DISCRETE = "discreteTransitionType";
-    public static final String TRANSITION_TYPE_CONTINUOUS = "continuousTransitionType";
-
-    // topic transitions
-    public static final String TRANSITION_TYPE_TOPIC = "topicTransitionType";
-
-    public static final String TRANSITION_TYPE_TOPIC_LIMITED_IN = "limitedChannelInType";
-    public static final String TRANSITION_TYPE_TOPIC_UNLIMITED_IN = "unlimitedChannelInType";
-
-    public static final String TRANSITION_TYPE_TOPIC_LIMITED_OUT = "limitedChannelOutType";
-    public static final String TRANSITION_TYPE_TOPIC_UNLIMITED_OUT = "unlimitedChannelOutType";
-
-    // service transitions
-    public static final String TRANSITION_TYPE_SERVICE_REQUEST = "serviceTransitionTypeRequest";
-    public static final String TRANSITION_TYPE_SERVICE_RESPONSE = "serviceTransitionTypeResponse";
-
-    public static final String TRANSITION_TYPE_SERVICE_REQUEST_IN = "serviceTransitionRequestIn";
-    public static final String TRANSITION_TYPE_SERVICE_REQUEST_OUT = "serviceTransitionRequestOut";
-
-    public static final String TRANSITION_TYPE_SERVICE_RESPONSE_IN = "serviceTransitionResponseIn";
-    public static final String TRANSITION_TYPE_SERVICE_RESPONSE_OUT = "serviceTransitionResponseOut";
-
-    // place types
-    public static final String PLACE_TYPE_DISCRETE = "discretePlaceType";
-    public static final String PLACE_TYPE_CONTINUOUS = "continuousPlaceType";
-
-    // general properties
-    public static final String LOCATION_KEY = "location";
-    public static final String TYPE_KEY = "type";
-
-    // service related keys
-    public static final String SERVICE_NAME = "serviceName";
-    public static final String SERVICE_INSTANCE = "serviceInstance";
-
-    // pub-sub related keys
-    public static final String INPUT_LIMIT_KEY = "inputlimit";
-    public static final String OUTPUT_LIMIT_KEY = "outputlimit";
-    public static final String SUBNET_KEY = "subnet";
-    public static final String TOPIC_KEY = "topic";
-
-    // bindings
-    public static final String INPUT_SIGNAL_BINDINGS_KEY = "inputsignalbindings";
-    public static final String OUTPUT_SIGNAL_BINDINGS_KEY = "outputsignalbindings";
-
-    public static final String INPUT_SIGNAL_BINDING_KEY = "inputsignalbinding";
-    public static final String OUTPUT_SIGNAL_BINDING_KEY = "outputsignalbinding";
-
-    public static final String TRANSITION_ID_KEY = "transitionID";
-    public static final String INPUT_SIGNAL_ID_KEY = "inputsignalID";
-    public static final String PLACE_ID_KEY = "placeID";
-    public static final String OUTPUT_SIGNAL_ID_KEY = "outputsignalID";
-    public static final String CURRENT_VALUE_KEY = "initialvalue";
-
-    public static final String EQUAL_OS_KEY = "equal";
-    public static final String RANGE_OS_KEY = "range";
-    public static final String THRESHOLD_KEY = "threshold";
-
-    public static final String VALUE_KEY = "value";
-    public static final String RESULT_KEY = "result";
-    public static final String UPPER_BOUND_KEY = "upperbound";
-    public static final String LOWER_BOUND_KEY = "lowerbound";
-
-    public static final String CLAUSE_KEY = "inputsignalclause";
-}
diff --git a/src/main/java/de/tudresden/inf/st/pnml/PnmlParseException.java b/src/main/java/de/tudresden/inf/st/pnml/PnmlParseException.java
deleted file mode 100644
index 0af92a3440ba07e3b3b028e212960d89b6247e4b..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/pnml/PnmlParseException.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package de.tudresden.inf.st.pnml;
-
-public class PnmlParseException extends Exception {
-
-  public PnmlParseException(String message) {
-    super(message);
-  }
-
-  public PnmlParseException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  public PnmlParseException(Throwable cause) {
-    super(cause);
-  }
-
-}
diff --git a/src/main/java/de/tudresden/inf/st/pnml/PnmlParser.java b/src/main/java/de/tudresden/inf/st/pnml/PnmlParser.java
deleted file mode 100644
index 01b89cdbbc4a690372ded3228a550ddecca13a52..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/pnml/PnmlParser.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package de.tudresden.inf.st.pnml;
-
-import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
-import fr.lip6.move.pnml.framework.general.PNType;
-import fr.lip6.move.pnml.framework.hlapi.HLAPIRootClass;
-import fr.lip6.move.pnml.framework.utils.ModelRepository;
-import fr.lip6.move.pnml.framework.utils.PNMLUtils;
-import fr.lip6.move.pnml.framework.utils.exception.ImportException;
-import fr.lip6.move.pnml.framework.utils.exception.InvalidIDException;
-import fr.lip6.move.pnml.ptnet.hlapi.PetriNetDocHLAPI;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-
-public class PnmlParser {
-
-    private static final Logger logger = LoggerFactory.getLogger(Main.class);
-
-    public static List<PetriNet> parsePnml(String fileName) {
-
-        Path file = Paths.get(fileName);
-
-        HLAPIRootClass document = null;
-
-        try {
-            document = PNMLUtils.importPnmlDocument(file.toFile(), false);
-
-            //logger.info(document.toPNML());
-        } catch (ImportException | InvalidIDException e) {
-            logger.error("Unable to import PNML document from file '{}'", fileName);
-            logger.error("Exception was thrown!", e);
-            System.exit(-1);
-        }
-
-
-        logger.info("Imported document workspace ID: {}", ModelRepository.getInstance().getCurrentDocWSId());
-
-        List<PetriNet> petriNets = new ArrayList<>();
-
-        PNType type = PNMLUtils.determinePNType(document);
-        switch (type) {
-            case PTNET:
-                PetriNetDocHLAPI ptDoc =
-                        (PetriNetDocHLAPI) document;
-
-
-                for (fr.lip6.move.pnml.ptnet.PetriNet pmnlNet : ptDoc.getNets()) {
-                    PnmlParserInternal parser;
-                    try {
-                        parser = new PnmlParserInternal(pmnlNet);
-                        petriNets.add(parser.getPetriNet());
-                    } catch (PnmlParseException e) {
-                        logger.error("Parsing the Petri net using the PNML framawork failed.", e);
-                    }
-                }
-
-                break;
-            case COREMODEL:
-            case SYMNET:
-            case HLPN:
-            case PTHLPN:
-            default:
-                logger.error("Petri net is of unsupported type {}.", type.getLiteral());
-                System.exit(-1);
-        }
-        return petriNets;
-    }
-}
diff --git a/src/main/java/de/tudresden/inf/st/pnml/PnmlParserInternal.java b/src/main/java/de/tudresden/inf/st/pnml/PnmlParserInternal.java
deleted file mode 100644
index 19fb6cbcf07bcd3676184c73253a88dcaf06af2c..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/pnml/PnmlParserInternal.java
+++ /dev/null
@@ -1,422 +0,0 @@
-package de.tudresden.inf.st.pnml;
-
-import de.tudresden.inf.st.pnml.jastadd.model.*;
-
-public class PnmlParserInternal {
-
-  private final PetriNet petriNet;
-
-  public PnmlParserInternal(fr.lip6.move.pnml.ptnet.PetriNet source) throws PnmlParseException {
-    this.petriNet = getPetriNet(source);
-    petriNet.treeResolveAll();
-  }
-
-  public PetriNet getPetriNet() {
-    return petriNet;
-  }
-
-  // the get methods
-
-  private PetriNet getPetriNet(fr.lip6.move.pnml.ptnet.PetriNet source) throws PnmlParseException {
-    PetriNet result = new PetriNet();
-    fillPetriNet(source, result);
-    return result;
-  }
-
-  private Page getPage(fr.lip6.move.pnml.ptnet.Page source) throws PnmlParseException {
-    Page result = new Page();
-    fillPage(source, result);
-    return result;
-  }
-
-  private NodeGraphics getNodeGraphics(fr.lip6.move.pnml.ptnet.NodeGraphics source) {
-    NodeGraphics result = new NodeGraphics();
-    fillNodeGraphics(source, result);
-    return result;
-  }
-
-  private Line getLine(fr.lip6.move.pnml.ptnet.Line source) {
-    Line result = new Line();
-    fillLine(source, result);
-    return result;
-  }
-
-  private Fill getFill(fr.lip6.move.pnml.ptnet.Fill source) {
-    Fill result = new Fill();
-    fillFill(source, result);
-    return result;
-  }
-
-  private Dimension getDimension(fr.lip6.move.pnml.ptnet.Dimension source) {
-    Dimension result = new Dimension();
-    fillDimension(source, result);
-    return result;
-  }
-
-  private Offset getOffset(fr.lip6.move.pnml.ptnet.Offset source) {
-    Offset result = new Offset();
-    fillOffset(source, result);
-    return result;
-  }
-
-  private Position getPosition(fr.lip6.move.pnml.ptnet.Position source) {
-    Position result = new Position();
-    fillPosition(source, result);
-    return result;
-  }
-
-  private Name getName(fr.lip6.move.pnml.ptnet.Name source) {
-    Name result = new Name();
-    fillName(source, result);
-    return result;
-  }
-
-  private AnnotationGraphics getAnnotationGraphics(fr.lip6.move.pnml.ptnet.AnnotationGraphics source) {
-    AnnotationGraphics result = new AnnotationGraphics();
-    fillAnnotationGraphics(source, result);
-    return result;
-  }
-
-  private Font getFont(fr.lip6.move.pnml.ptnet.Font source) {
-    Font result = new Font();
-    fillFont(source, result);
-    return result;
-  }
-
-  private ToolInfo getToolInfo(fr.lip6.move.pnml.ptnet.ToolInfo source) {
-    ToolInfo result = new ToolInfo();
-    fillToolInfo(source, result);
-    return result;
-  }
-
-  private Node getNode(fr.lip6.move.pnml.ptnet.Node source) throws PnmlParseException {
-    if (source instanceof fr.lip6.move.pnml.ptnet.PlaceNode) {
-      return getPlaceNode((fr.lip6.move.pnml.ptnet.PlaceNode) source);
-    } else if (source instanceof fr.lip6.move.pnml.ptnet.TransitionNode) {
-      return getTransitionNode((fr.lip6.move.pnml.ptnet.TransitionNode) source);
-    } else {
-      throw new PnmlParseException("Encountered illegal unknown subtype of Node " + source.getClass().getCanonicalName());
-    }
-  }
-
-  private PlaceNode getPlaceNode(fr.lip6.move.pnml.ptnet.PlaceNode source) throws PnmlParseException {
-    if (source instanceof fr.lip6.move.pnml.ptnet.Place) {
-      return getPlace((fr.lip6.move.pnml.ptnet.Place) source);
-    } else if (source instanceof fr.lip6.move.pnml.ptnet.RefPlace) {
-      return getRefPlace((fr.lip6.move.pnml.ptnet.RefPlace) source);
-    } else {
-      throw new PnmlParseException("Encountered illegal unknown subtype of PlaceNode " + source.getClass().getCanonicalName());
-    }
-  }
-
-  private Place getPlace(fr.lip6.move.pnml.ptnet.Place source) {
-    Place result = new OutputSignalPlace();
-    fillPlace(source, result);
-    return result;
-  }
-
-  private PTMarking getPTMarking(fr.lip6.move.pnml.ptnet.PTMarking source) {
-    PTMarking result = new PTMarking();
-    fillPTMarking(source, result);
-    return result;
-  }
-
-  private RefPlace getRefPlace(fr.lip6.move.pnml.ptnet.RefPlace source) {
-    RefPlace result = new RefPlace();
-    fillRefPlace(source, result);
-    return result;
-  }
-
-  private TransitionNode getTransitionNode(fr.lip6.move.pnml.ptnet.TransitionNode source) throws PnmlParseException {
-    if (source instanceof fr.lip6.move.pnml.ptnet.Transition) {
-      return getTransition((fr.lip6.move.pnml.ptnet.Transition) source);
-    } else if (source instanceof fr.lip6.move.pnml.ptnet.RefTransition) {
-      return getRefTransition((fr.lip6.move.pnml.ptnet.RefTransition) source);
-    } else {
-      throw new PnmlParseException("Encountered illegal unknown subtype of TransitionNode " + source.getClass().getCanonicalName());
-    }
-  }
-
-  private RefTransition getRefTransition(fr.lip6.move.pnml.ptnet.RefTransition source) {
-    RefTransition result = new RefTransition();
-    fillRefTransition(source, result);
-    return result;
-  }
-
-  private Transition getTransition(fr.lip6.move.pnml.ptnet.Transition source) {
-    Transition result = new InputSignalTransition();
-    fillTransition(source, result);
-    return result;
-  }
-
-  private Arc getArc(fr.lip6.move.pnml.ptnet.Arc source) {
-    Arc result = new Arc();
-    fillArc(source, result);
-    return result;
-  }
-
-  private PTArcAnnotation getPTArcannotation(fr.lip6.move.pnml.ptnet.PTArcAnnotation source) {
-    PTArcAnnotation result = new PTArcAnnotation();
-    fillPTAnnotation(source, result);
-    return result;
-  }
-
-  private ArcGraphics getArcGraphics(fr.lip6.move.pnml.ptnet.ArcGraphics source) {
-    ArcGraphics result = new ArcGraphics();
-    fillArcGraphics(source, result);
-    return result;
-  }
-
-  private PnObject getPnObject(fr.lip6.move.pnml.ptnet.PnObject source) throws PnmlParseException {
-    if (source instanceof fr.lip6.move.pnml.ptnet.Page) {
-      return getPage((fr.lip6.move.pnml.ptnet.Page) source);
-    } else if (source instanceof Node) {
-      return getNode((fr.lip6.move.pnml.ptnet.Node) source);
-    } else if (source instanceof fr.lip6.move.pnml.ptnet.Arc) {
-      return getArc((fr.lip6.move.pnml.ptnet.Arc) source);
-    } else if (source instanceof fr.lip6.move.pnml.ptnet.Node) {
-      return getNode((fr.lip6.move.pnml.ptnet.Node) source);
-    } else {
-      throw new PnmlParseException("Encountered illegal unknown subtype of PnObject " + source.getClass().getCanonicalName());
-    }
-  }
-
-  // the fill methods
-
-  private void fillPetriNet(fr.lip6.move.pnml.ptnet.PetriNet source, PetriNet result) throws PnmlParseException {
-    for (fr.lip6.move.pnml.ptnet.Page page : source.getPages()) {
-      result.addPage(getPage(page));
-    }
-    if (source.getName() != null) {
-      result.setName(getName(source.getName()));
-    }
-    for (fr.lip6.move.pnml.ptnet.ToolInfo toolInfo : source.getToolspecifics()) {
-      result.addToolspecific(getToolInfo(toolInfo));
-    }
-
-   // if(source.getToolspecifics().size() > 0) {
-   //   System.out.println("-->" + source.getToolspecifics());
-   // }
-
-    result.setId(source.getId());
-    if (source.getType() == fr.lip6.move.pnml.ptnet.PNType.PTNET) {
-      result.setType(PNType.PTNET);
-    } else {
-      throw new PnmlParseException("Illegal Petri Net type '" + source.getType().getLiteral() + "' encountered.");
-    }
-
-  }
-
-  private void fillPage(fr.lip6.move.pnml.ptnet.Page source, Page result) throws PnmlParseException {
-    fillPnObject(source, result);
-
-    for (fr.lip6.move.pnml.ptnet.PnObject object : source.getObjects()) {
-      result.addObject(getPnObject(object));
-    }
-    if (source.getNodegraphics() != null) {
-      result.setNodeGraphics(getNodeGraphics(source.getNodegraphics()));
-    }
-  }
-
-  private void fillPnObject(fr.lip6.move.pnml.ptnet.PnObject source, PnObject result) {
-    if (source.getName() != null) {
-      result.setName(getName(source.getName()));
-    }
-    for (fr.lip6.move.pnml.ptnet.ToolInfo toolInfo : source.getToolspecifics()) {
-      result.addToolspecific(getToolInfo(toolInfo));
-    }
-
-    result.setId(source.getId());
-  }
-
-  private void fillNodeGraphics(fr.lip6.move.pnml.ptnet.NodeGraphics source, NodeGraphics result) {
-    if (source.getPosition() != null) {
-      result.setPosition(getPosition(source.getPosition()));
-    }
-    if (source.getDimension() != null) {
-      result.setDimension(getDimension(source.getDimension()));
-    }
-    if (source.getFill() != null) {
-      result.setFill(getFill(source.getFill()));
-    }
-    if (source.getLine() != null) {
-      result.setLine(getLine(source.getLine()));
-    }
-  }
-
-  private void fillLine(fr.lip6.move.pnml.ptnet.Line source, Line result) {
-    result.setColor(CSS2Color.valueOf(source.getColor().getName()));
-    result.setShape(LineShape.valueOf(source.getShape().getName()));
-    result.setWidth(source.getWidth());
-    result.setStyle(LineStyle.valueOf(source.getStyle().getName()));
-  }
-
-  private void fillFill(fr.lip6.move.pnml.ptnet.Fill source, Fill result) {
-    result.setColor(CSS2Color.valueOf(source.getColor().getName()));
-    result.setGradientcolor(CSS2Color.valueOf(source.getGradientcolor().getName()));
-    result.setGradientrotation(Gradient.valueOf(source.getGradientrotation().getName()));
-    result.setImage(source.getImage());
-  }
-
-  private void fillDimension(fr.lip6.move.pnml.ptnet.Dimension source, Dimension result) {
-    fillCoordinate(source, result);
-  }
-
-  private void fillCoordinate(fr.lip6.move.pnml.ptnet.Coordinate source, Coordinate result) {
-    result.setX(source.getX());
-    result.setY(source.getY());
-  }
-
-  private void fillOffset(fr.lip6.move.pnml.ptnet.Offset source, Offset result) {
-    fillCoordinate(source, result);
-  }
-
-  private void fillPosition(fr.lip6.move.pnml.ptnet.Position source, Position result) {
-    fillCoordinate(source, result);
-  }
-
-  private void fillName(fr.lip6.move.pnml.ptnet.Name source, Name result) {
-    fillAnnotation(source, result);
-
-    result.setText(source.getText());
-  }
-
-  private void fillAnnotation(fr.lip6.move.pnml.ptnet.Annotation source, Annotation result) {
-    if (source.getAnnotationgraphics() != null) {
-      result.setAnnotationGraphics(getAnnotationGraphics(source.getAnnotationgraphics()));
-    }
-    fillLabel(source, result);
-  }
-
-  private void fillLabel(fr.lip6.move.pnml.ptnet.Annotation source, Annotation result) {
-    for (fr.lip6.move.pnml.ptnet.ToolInfo info : source.getToolspecifics()) {
-      result.addToolspecific(getToolInfo(info));
-    }
-  }
-
-  private void fillAnnotationGraphics(fr.lip6.move.pnml.ptnet.AnnotationGraphics source, AnnotationGraphics result) {
-    if (source.getOffset() != null) {
-      result.setOffset(getOffset(source.getOffset()));
-    }
-    if (source.getFill() != null) {
-      result.setFill(getFill(source.getFill()));
-    }
-    if (source.getLine() != null) {
-      result.setLine(getLine(source.getLine()));
-    }
-    if (source.getFont() != null) {
-      result.setFont(getFont(source.getFont()));
-    }
-  }
-
-  private void fillFont(fr.lip6.move.pnml.ptnet.Font source, Font result) {
-    result.setAlign(FontAlign.valueOf(source.getAlign().getName()));
-    result.setDecoration(FontDecoration.valueOf(source.getDecoration().getName()));
-    result.setFamily(CSS2FontFamily.valueOf(source.getFamily().getName()));
-    result.setRotation(source.getRotation());
-    result.setSize(CSS2FontSize.valueOf(source.getSize().getName()));
-    result.setStyle(CSS2FontStyle.valueOf(source.getStyle().getName()));
-    result.setWeight(CSS2FontWeight.valueOf(source.getWeight().getName()));
-  }
-
-  private void fillToolInfo(fr.lip6.move.pnml.ptnet.ToolInfo source, ToolInfo result) {
-    result.setTool(source.getTool());
-    result.setVersion(source.getVersion());
-    result.setFormattedXMLBuffer(source.getFormattedXMLBuffer());
-    result.setToolInfoGrammarURI(source.getToolInfoGrammarURI());
-  }
-
-  private void fillPlace(fr.lip6.move.pnml.ptnet.Place source, Place result) {
-    fillPlaceNode(source, result);
-
-    if (source.getInitialMarking() != null) {
-      result.setInitialMarking(getPTMarking(source.getInitialMarking()));
-    }
-  }
-
-  private void fillPTMarking(fr.lip6.move.pnml.ptnet.PTMarking source, PTMarking result) {
-    fillAnnotation(source, result);
-
-    // whatever this is supposed to be. they changed the Integer to Long
-    result.setText(Math.toIntExact(source.getText()));
-  }
-
-  private void fillRefPlace(fr.lip6.move.pnml.ptnet.RefPlace source, RefPlace result) {
-    fillPlaceNode(source, result);
-
-    result.setRef(PlaceNode.createRefDirection(source.getRef().getId()));
-  }
-
-  private void fillPlaceNode(fr.lip6.move.pnml.ptnet.PlaceNode source, PlaceNode result) {
-    fillNode(source, result);
-
-    for (fr.lip6.move.pnml.ptnet.RefPlace referencingPlace : source.getReferencingPlaces()) {
-      result.addReferencingPlace(RefPlace.createRefDirection(referencingPlace.getId()));
-    }
-  }
-
-  private void fillRefTransition(fr.lip6.move.pnml.ptnet.RefTransition source, RefTransition result) {
-    fillTransitionNode(source, result);
-
-    result.setRef(TransitionNode.createRefDirection(source.getRef().getId()));
-  }
-
-  private void fillTransitionNode(fr.lip6.move.pnml.ptnet.TransitionNode source, TransitionNode result) {
-    fillNode(source, result);
-
-    for (fr.lip6.move.pnml.ptnet.RefTransition refTransition : source.getReferencingTransitions()) {
-      result.addReferencingTransition(RefTransition.createRefDirection(refTransition.getId()));
-    }
-  }
-
-  private void fillTransition(fr.lip6.move.pnml.ptnet.Transition source, Transition result) {
-    fillTransitionNode(source, result);
-  }
-
-  private void fillNode(fr.lip6.move.pnml.ptnet.Node source, Node result) {
-
-    fillPnObject(source, result);
-
-    if (source.getNodegraphics() != null) {
-      result.setNodeGraphics(getNodeGraphics(source.getNodegraphics()));
-    }
-
-    for (fr.lip6.move.pnml.ptnet.Arc outArc : source.getOutArcs()) {
-      result.addOutArc(Arc.createRefDirection(outArc.getId()));
-    }
-    for (fr.lip6.move.pnml.ptnet.Arc inArc : source.getInArcs()) {
-      result.addInArc(Arc.createRefDirection(inArc.getId()));
-    }
-  }
-
-  private void fillArc(fr.lip6.move.pnml.ptnet.Arc source, Arc result) {
-    fillPnObject(source, result);
-
-    if (source.getArcgraphics() != null) {
-      result.setArcGraphics(getArcGraphics(source.getArcgraphics()));
-    }
-    if (source.getInscription() != null) {
-      result.setInscription(getPTArcannotation(source.getInscription()));
-    }
-
-    result.setSource(Node.createRefDirection(source.getSource().getId()));
-    result.setTarget(Node.createRefDirection(source.getTarget().getId()));
-  }
-
-  private void fillPTAnnotation(fr.lip6.move.pnml.ptnet.PTArcAnnotation source, PTArcAnnotation result) {
-    fillAnnotation(source, result);
-
-    // whatever this is supposed to be. they changed the Integer to Long
-    result.setText(Math.toIntExact(source.getText()));
-  }
-
-  private void fillArcGraphics(fr.lip6.move.pnml.ptnet.ArcGraphics source, ArcGraphics result) {
-    for (fr.lip6.move.pnml.ptnet.Position position : source.getPositions()) {
-      result.addPosition(getPosition(position));
-    }
-    if (source.getLine() != null) {
-      result.setLine(getLine(source.getLine()));
-    }
-  }
-
-}
diff --git a/src/main/java/de/tudresden/inf/st/pnml/PnmlRefTransitionResolver.java b/src/main/java/de/tudresden/inf/st/pnml/PnmlRefTransitionResolver.java
deleted file mode 100644
index ede9604fd0ccac95bd1054213caa5df159685ffc..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/pnml/PnmlRefTransitionResolver.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package de.tudresden.inf.st.pnml;
-
-import de.tudresden.inf.st.pnml.jastadd.model.Arc;
-import de.tudresden.inf.st.pnml.jastadd.model.Place;
-import de.tudresden.inf.st.pnml.jastadd.model.RefTransition;
-import de.tudresden.inf.st.pnml.jastadd.model.TransitionNode;
-
-import java.util.Set;
-
-public class PnmlRefTransitionResolver {
-
-    public static void resolveIncomingPlaces(TransitionNode transitionNode, Set<Place> incomingPlaces){
-
-        if(transitionNode.isTransition()){
-            for (Arc incomingArc : transitionNode.getInArcList()) {
-                incomingPlaces.add(incomingArc.getSource().asPlaceNode().place());
-            }
-            return;
-        }
-
-        if(transitionNode.isRefTransition()){
-            RefTransition rt = transitionNode.asRefTransition();
-            TransitionNode subRt = rt.get_impl_ref();
-
-            for (Arc incomingArc : transitionNode.getInArcList()) {
-                incomingPlaces.add(incomingArc.getSource().asPlaceNode().place());
-            }
-
-            resolveIncomingPlaces(subRt, incomingPlaces);
-        }
-    }
-
-    public static void resolveOutgoingPlaces(TransitionNode transitionNode, Set<Place> outgoingPlaces){
-
-        if(transitionNode.isTransition()){
-            for (Arc outgoingArc : transitionNode.getOutArcList()) {
-                outgoingPlaces.add(outgoingArc.getTarget().asPlaceNode().place());
-            }
-            return;
-        }
-
-        if(transitionNode.isRefTransition()){
-            RefTransition rt = transitionNode.asRefTransition();
-            TransitionNode subRt = rt.get_impl_ref();
-
-            for (Arc outgoingArc : transitionNode.getInArcList()) {
-                outgoingPlaces.add(outgoingArc.getTarget().asPlaceNode().place());
-            }
-
-            resolveIncomingPlaces(subRt, outgoingPlaces);
-        }
-    }
-}
diff --git a/src/main/java/de/tudresden/inf/st/pnml/ToolSpecificsParser.java b/src/main/java/de/tudresden/inf/st/pnml/ToolSpecificsParser.java
deleted file mode 100644
index 89b0baac328c0c9d3eb61c55fa46bf517e44267f..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/pnml/ToolSpecificsParser.java
+++ /dev/null
@@ -1,313 +0,0 @@
-package de.tudresden.inf.st.pnml;
-
-import beaver.Symbol;
-import de.tudresden.inf.st.constants.PnmlConstants;
-import de.tudresden.inf.st.pnml.jastadd.model.*;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringReader;
-
-import de.tudresden.inf.st.pnml.jastadd.scanner.ExpressionScanner;
-import de.tudresden.inf.st.pnml.jastadd.parser.Parser;
-
-public class ToolSpecificsParser {
-
-    private static final Logger logger = LoggerFactory.getLogger(ToolSpecificsParser.class);
-
-    public static Root getClauseFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                NodeList locationList = doc.getElementsByTagName(PnmlConstants.CLAUSE_KEY);
-
-                if (locationList.getLength() > 0 && locationList.item(0) != null) {
-                    String content = locationList.item(0).getTextContent();
-                    StringReader reader = new StringReader(content);
-                    ExpressionScanner scanner = new ExpressionScanner(reader);
-                    Parser parser = new Parser();
-                    return ((Root) parser.parse(scanner));
-                }
-
-            } catch (ParserConfigurationException | SAXException | IOException | beaver.Parser.Exception e) {
-                logger.error(e.getMessage());
-            }
-        }
-
-        return new Root();
-    }
-
-    public static String getLocationFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                NodeList locationList = doc.getElementsByTagName(PnmlConstants.LOCATION_KEY);
-
-                if (locationList.getLength() > 0 && locationList.item(0) != null) {
-                    return locationList.item(0).getTextContent();
-                }
-
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-
-        return "";
-    }
-
-    public static String getTransitionTypeFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                NodeList typeList = doc.getElementsByTagName(PnmlConstants.TYPE_KEY);
-
-                if (typeList.getLength() > 0 && typeList.item(0) != null) {
-                    String type = typeList.item(0).getTextContent();
-                    if (!type.equals(PnmlConstants.TRANSITION_TYPE_CONTINUOUS) || type.equals(PnmlConstants.TRANSITION_TYPE_DISCRETE)
-                            || type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC) || !type.equals(PnmlConstants.TRANSITION_TYPE_SERVICE_REQUEST)
-                            || !type.equals(PnmlConstants.TRANSITION_TYPE_SERVICE_RESPONSE)) {
-                        return type;
-                    } else {
-                        logger.error("Error: Invalid transition type configured: " + type + ".");
-                    }
-                }
-
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-
-        return null;
-    }
-
-    public static String getTransitionTopicFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                NodeList typeList = doc.getElementsByTagName(PnmlConstants.TYPE_KEY);
-
-                if (typeList.getLength() > 0 && typeList.item(0) != null) {
-                    String type = typeList.item(0).getTextContent();
-                    if (type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_LIMITED_IN) || type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_LIMITED_OUT)
-                            || type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_IN) || type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_OUT)
-                            || type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC)) {
-
-                        NodeList topicList = doc.getElementsByTagName(PnmlConstants.TOPIC_KEY);
-
-                        if(topicList.getLength() > 0 && topicList.item(0) != null){
-                            return topicList.item(0).getTextContent();
-                        }
-                    }
-                }
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-        return null;
-    }
-
-    public static String getTransitionServiceNameFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                NodeList typeList = doc.getElementsByTagName(PnmlConstants.SERVICE_NAME);
-
-                if (typeList.getLength() > 0 && typeList.item(0) != null) {
-
-                    String type = typeList.item(0).getTextContent();
-                    if (!type.equals("") && type != null){
-                        return type;
-                    }
-                }
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-        return null;
-    }
-
-    private static String getPlaceTypeFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                NodeList typeList = doc.getElementsByTagName(PnmlConstants.TYPE_KEY);
-
-                if (typeList.getLength() > 0 && typeList.item(0) != null) {
-                    String type = typeList.item(0).getTextContent();
-                    if (type.equals(PnmlConstants.PLACE_TYPE_DISCRETE) || type.equals(PnmlConstants.PLACE_TYPE_CONTINUOUS)) {
-                        return type;
-                    }
-                }
-
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-        return null;
-    }
-
-    public static String getSubnetFromToolSpecifics(JastAddList<ToolInfo> toolInfos) {
-        return getSubnetInfoInternal(toolInfos);
-    }
-
-    private static String getSubnetInfoInternal(JastAddList<ToolInfo> toolInfos) {
-
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-          //      String typeTrans = getTransitionTypeFromToolSpecifics(toolInfos);
-          //      String typePlace = getPlaceTypeFromToolSpecifics(toolInfos);
-
-             //   String type = typePlace == null ? typeTrans : typePlace;
-
-              //  if (type != null && (type.equals(PnmlConstants.TRANSITION_TYPE_DISCRETE)
-              //          || type.equals(PnmlConstants.PLACE_TYPE_CONTINUOUS) || type.equals(PnmlConstants.PLACE_TYPE_CONTINUOUS)
-              //          || type.equals(PnmlConstants.PLACE_TYPE_DISCRETE) || type.equals(PnmlConstants.TRANSITION_TYPE_TOPIC))) {
-
-                    NodeList snList = doc.getElementsByTagName(PnmlConstants.SUBNET_KEY);
-
-                    if (snList.getLength() > 0 && snList.item(0) != null) {
-                        return snList.item(0).getTextContent();
-                    }
-              //  }
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-        return null;
-    }
-
-    private static String getTransitionSubnetInfo(JastAddList<ToolInfo> toolInfos) {
-        return getSubnetInfoInternal(toolInfos);
-    }
-
-    private static String getPlaceSubnetInfo(JastAddList<ToolInfo> toolInfos) {
-        return getSubnetInfoInternal(toolInfos);
-    }
-
-    private static int getTransitionLimitsInternal(JastAddList<ToolInfo> toolInfos, String limitType) {
-        if (toolInfos.getNumChild() > 0) {
-            try {
-                Document doc = parseToolSpecifics(toolInfos);
-                String transitionType = getTransitionTypeFromToolSpecifics(toolInfos);
-
-                if (transitionType != null && (transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC))) {
-
-                    NodeList limList = doc.getElementsByTagName(limitType);
-
-                    if (limList.getLength() > 0 && limList.item(0) != null) {
-                        return Integer.valueOf(limList.item(0).getTextContent());
-                    }
-                }
-            } catch (ParserConfigurationException | SAXException | IOException e) {
-                logger.error(e.getMessage());
-            }
-        }
-        return -1;
-    }
-
-    private static int getTransitionOutputLimit(JastAddList<ToolInfo> toolInfos) {
-        return getTransitionLimitsInternal(toolInfos, PnmlConstants.OUTPUT_LIMIT_KEY);
-    }
-
-    private static int getTransitionInputLimit(JastAddList<ToolInfo> toolInfos) {
-        return getTransitionLimitsInternal(toolInfos, PnmlConstants.INPUT_LIMIT_KEY);
-    }
-
-    public static TransitionInformation getTransitionInformation(JastAddList<ToolInfo> toolInfos) {
-
-        if(getTransitionTopicFromToolSpecifics(toolInfos) != null){
-            TopicTransitionInformation topicTransition = new TopicTransitionInformation();
-            topicTransition.setInputLimit(getTransitionInputLimit(toolInfos));
-            topicTransition.setOutputLimit(getTransitionOutputLimit(toolInfos));
-            topicTransition.setLocation(getLocationFromToolSpecifics(toolInfos));
-            topicTransition.setType(getTransitionTypeFromToolSpecifics(toolInfos));
-            topicTransition.setTopic(getTransitionTopicFromToolSpecifics(toolInfos));
-            topicTransition.setSubNet(getTransitionSubnetInfo(toolInfos));
-            return topicTransition;
-        }
-
-        if(getTransitionServiceNameFromToolSpecifics(toolInfos) != null){
-            ServiceTransitionInformation serviceTransition = new ServiceTransitionInformation();
-            serviceTransition.setInputLimit(getTransitionInputLimit(toolInfos));
-            serviceTransition.setOutputLimit(getTransitionOutputLimit(toolInfos));
-            serviceTransition.setLocation(getLocationFromToolSpecifics(toolInfos));
-            serviceTransition.setType(getTransitionTypeFromToolSpecifics(toolInfos));
-            serviceTransition.setServiceName(getTransitionServiceNameFromToolSpecifics(toolInfos));
-            serviceTransition.setSubNet(getTransitionSubnetInfo(toolInfos));
-            return serviceTransition;
-        }
-
-        DefaultTransitionInformation transitionInformation = new DefaultTransitionInformation();
-        transitionInformation.setInputLimit(getTransitionInputLimit(toolInfos));
-        transitionInformation.setOutputLimit(getTransitionOutputLimit(toolInfos));
-        transitionInformation.setLocation(getLocationFromToolSpecifics(toolInfos));
-        transitionInformation.setType(getTransitionTypeFromToolSpecifics(toolInfos));
-        transitionInformation.setSubNet(getTransitionSubnetInfo(toolInfos));
-
-        return transitionInformation;
-    }
-
-    public static PlaceInformation getPlaceInformationInformation(JastAddList<ToolInfo> toolInfos){
-
-        PlaceInformation placeInformation = new PlaceInformation();
-
-        placeInformation.setLocation(getLocationFromToolSpecifics(toolInfos));
-        placeInformation.setType(getTransitionTypeFromToolSpecifics(toolInfos));
-        placeInformation.setSubNet(getTransitionSubnetInfo(toolInfos));
-
-        return placeInformation;
-    }
-
-    public static PlaceInformation getPlaceInformation(JastAddList<ToolInfo> toolInfos) {
-
-        PlaceInformation pi = new PlaceInformation();
-        pi.setLocation(getLocationFromToolSpecifics(toolInfos));
-        pi.setSubNet(getPlaceSubnetInfo(toolInfos));
-        pi.setType(getPlaceTypeFromToolSpecifics(toolInfos));
-
-        return pi;
-    }
-
-    private static Document parseToolSpecifics(JastAddList<ToolInfo> toolInfos) throws ParserConfigurationException, SAXException, IOException {
-
-        ToolInfo ti = null;
-
-        for(ToolInfo toolInfo : toolInfos){
-            if(toolInfo.getFormattedXMLBuffer().indexOf(PnmlConstants.SUBNET_KEY) > 0){
-                   ti = toolInfo;
-                   break;
-            }
-        }
-
-        StringBuffer toolInfoStringBuffer = ti.getFormattedXMLBuffer();
-
-        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
-        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
-
-        Document doc = dBuilder.parse(fromStringBuffer(toolInfoStringBuffer));
-        doc.getDocumentElement().normalize();
-        return doc;
-    }
-
-    private static InputStream fromStringBuffer(StringBuffer buf) {
-        return new ByteArrayInputStream(buf.toString().getBytes());
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/de/tudresden/inf/st/pnml/Main.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
similarity index 86%
rename from src/main/java/de/tudresden/inf/st/pnml/Main.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
index f41349646878bcfbf5416bebfce1713815aca585..bfed28f13657d66a811d3ad6e3bc057d90ba34e4 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
@@ -1,9 +1,10 @@
-package de.tudresden.inf.st.pnml;
+package de.tudresden.inf.st.pnml.splitter;
 
-import de.tudresden.inf.st.export.PnmlExporter;
+import de.tudresden.inf.st.pnml.splitter.export.PnmlExporter;
 import de.tudresden.inf.st.pnml.jastadd.model.*;
-import de.tudresden.inf.st.postprocessing.GlobalToLocalNetsPostProcessor;
-import de.tudresden.inf.st.postprocessing.PostProcessingUtils;
+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;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/de/tudresden/inf/st/constants/SplitterPnmlConstants.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/constants/SplitterPnmlConstants.java
similarity index 87%
rename from src/main/java/de/tudresden/inf/st/constants/SplitterPnmlConstants.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/constants/SplitterPnmlConstants.java
index b453c84ca9d05412d6b0c3ad20cc9c1c881ba57d..d8199bb669e4e15dfd361a503a4ef36b46709a61 100644
--- a/src/main/java/de/tudresden/inf/st/constants/SplitterPnmlConstants.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/constants/SplitterPnmlConstants.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.constants;
+package de.tudresden.inf.st.pnml.splitter.constants;
 
 public final class SplitterPnmlConstants {
 
diff --git a/src/main/java/de/tudresden/inf/st/copy/CopyPrimitiveElements.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/copy/CopyPrimitiveElements.java
similarity index 80%
rename from src/main/java/de/tudresden/inf/st/copy/CopyPrimitiveElements.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/copy/CopyPrimitiveElements.java
index 06a4b5ff027d785b97bf68c36b4ba99568d655d2..afc2a08a469f05a5adac0b7ea9b2b89803995dae 100644
--- a/src/main/java/de/tudresden/inf/st/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.copy;
+package de.tudresden.inf.st.pnml.splitter.copy;
 
-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;
+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;
 
 public class CopyPrimitiveElements {
 
diff --git a/src/main/java/de/tudresden/inf/st/data/ClauseValuesDefinition.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/data/ClauseValuesDefinition.java
similarity index 90%
rename from src/main/java/de/tudresden/inf/st/data/ClauseValuesDefinition.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/data/ClauseValuesDefinition.java
index af3559e08f5dc4748f4f74c949ec6220c0e440df..d94b419e3127d0f2debeeb255a26e3e8c1e3e788 100644
--- a/src/main/java/de/tudresden/inf/st/data/ClauseValuesDefinition.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/data/ClauseValuesDefinition.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.data;
+package de.tudresden.inf.st.pnml.splitter.data;
 
 import java.util.HashMap;
 
diff --git a/src/main/java/de/tudresden/inf/st/data/Tuple2.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/data/Tuple2.java
similarity index 83%
rename from src/main/java/de/tudresden/inf/st/data/Tuple2.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/data/Tuple2.java
index d5adc5f6b4f52366a6c3cbfcf6260b4046c74694..4249ec50b7ed7bd8fa2d0e684b720e5d4078cebf 100644
--- a/src/main/java/de/tudresden/inf/st/data/Tuple2.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/data/Tuple2.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.data;
+package de.tudresden.inf.st.pnml.splitter.data;
 
 public class Tuple2<K, V> {
 
diff --git a/src/main/java/de/tudresden/inf/st/data/Tuple3.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/data/Tuple3.java
similarity index 87%
rename from src/main/java/de/tudresden/inf/st/data/Tuple3.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/data/Tuple3.java
index 90892dee2e820dcbdf1d1d69f491fa4789bce765..f65df07da9b1d7be156422692a878b2d03483f34 100644
--- a/src/main/java/de/tudresden/inf/st/data/Tuple3.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/data/Tuple3.java
@@ -1,4 +1,4 @@
-package de.tudresden.inf.st.data;
+package de.tudresden.inf.st.pnml.splitter.data;
 
 public class Tuple3<K, V, L> {
 
diff --git a/src/main/java/de/tudresden/inf/st/export/ComplexElementsConverter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
similarity index 96%
rename from src/main/java/de/tudresden/inf/st/export/ComplexElementsConverter.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
index 4af245f51d3732d336c52e9d1453e0b02712a440..1bc7f82632018bc0258ce82b01e3d04ab89e3c0c 100644
--- a/src/main/java/de/tudresden/inf/st/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.export;
+package de.tudresden.inf.st.pnml.splitter.export;
 
-import de.tudresden.inf.st.pnml.jastadd.model.Page;
-import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
+import de.tudresden.inf.st.pnml.splitter.pnml.jastadd.model.Page;
+import de.tudresden.inf.st.pnml.splitter.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/export/PnmlExporter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
similarity index 99%
rename from src/main/java/de/tudresden/inf/st/export/PnmlExporter.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
index 7458062a5f387fbd9f0dc9892137663b139e75fb..957026ff95b43bd68cad7c2f5464fb215f418511 100644
--- a/src/main/java/de/tudresden/inf/st/export/PnmlExporter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
@@ -1,6 +1,7 @@
-package de.tudresden.inf.st.export;
+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/export/PrimitiveElementsConverter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
similarity index 98%
rename from src/main/java/de/tudresden/inf/st/export/PrimitiveElementsConverter.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
index 87c43d91e92288d7781b104c2504157e2cf1dc2f..4b41089463d6ccea8983fda8d9ee4f8d5b7ecee8 100644
--- a/src/main/java/de/tudresden/inf/st/export/PrimitiveElementsConverter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
@@ -1,6 +1,7 @@
-package de.tudresden.inf.st.export;
+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/postprocessing/GlobalToLocalNetsPostProcessor.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
similarity index 99%
rename from src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
index 064627f497cab6c8cff231d6c4d850d38b07161d..a056d251beb4ba6bac1980a90a1b1e27bbeadadb 100644
--- a/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
@@ -1,11 +1,11 @@
-package de.tudresden.inf.st.postprocessing;
+package de.tudresden.inf.st.pnml.splitter.postprocessing;
 
-import de.tudresden.inf.st.constants.SplitterPnmlConstants;
+import de.tudresden.inf.st.pnml.splitter.constants.SplitterPnmlConstants;
 import de.tudresden.inf.st.constants.PnmlConstants;
-import de.tudresden.inf.st.data.Tuple2;
-import de.tudresden.inf.st.export.PnmlExporter;
+import de.tudresden.inf.st.pnml.splitter.export.PnmlExporter;
 import de.tudresden.inf.st.pnml.PnmlParser;
 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/postprocessing/PostProcessingUtils.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
similarity index 98%
rename from src/main/java/de/tudresden/inf/st/postprocessing/PostProcessingUtils.java
rename to src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
index 9b86ebeb8856664cc77efc72e34fc78ad38873bb..855876686eb0e2a81bc9afa7b6ba5a997e9b9bde 100644
--- a/src/main/java/de/tudresden/inf/st/postprocessing/PostProcessingUtils.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
@@ -1,10 +1,10 @@
-package de.tudresden.inf.st.postprocessing;
+package de.tudresden.inf.st.pnml.splitter.postprocessing;
 
 import de.tudresden.inf.st.constants.PnmlConstants;
-import de.tudresden.inf.st.copy.CopyPrimitiveElements;
-import de.tudresden.inf.st.data.ClauseValuesDefinition;
-import de.tudresden.inf.st.data.Tuple3;
+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;
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessor.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..41374ea96657ce8c8a05a7f4b2c644ccc6f427d1
--- /dev/null
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessor.java
@@ -0,0 +1,5 @@
+package de.tudresden.inf.st.pnml.splitter.postprocessing;
+
+public interface PostProcessor<InputModelType> {
+
+}
diff --git a/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java b/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java
deleted file mode 100644
index 7da7fe99fc50d64aca75cd551399e55f02e763f7..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/postprocessing/IoPetriNetPostProcessor.java
+++ /dev/null
@@ -1,262 +0,0 @@
-package de.tudresden.inf.st.postprocessing;
-
-import de.tudresden.inf.st.constants.PnmlConstants;
-import de.tudresden.inf.st.pnml.jastadd.model.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class IoPetriNetPostProcessor implements PostProcessor<PetriNet> {
-
-    private static final Logger logger = LoggerFactory.getLogger(IoPetriNetPostProcessor.class);
-
-    public static JastAddList<InputSignalBinding> parseInputSignalBindingDefinitions(JastAddList<ToolInfo> toolInfos){
-
-        try {
-            Document doc = parseToolSpecifics(toolInfos);
-            return parseInputSignalBindingDefinitionsInternal(doc);
-
-        } catch (ParserConfigurationException | SAXException | IOException e) {
-            logger.error(e.getMessage());
-        }
-
-        return null;
-    }
-
-    private static JastAddList<InputSignalBinding> parseInputSignalBindingDefinitionsInternal(Document doc) {
-
-        if(doc == null){
-            return null;
-        }
-
-        NodeList isBindingDefList = doc.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDINGS_KEY);
-        JastAddList<InputSignalBinding> jastAddBindingList = new JastAddList<>();
-
-        if (isBindingDefList.getLength() > 0 && isBindingDefList.item(0) != null) {
-
-            Node isBindingsNode = isBindingDefList.item(0);
-
-
-            if (isBindingsNode.getNodeType() == Node.ELEMENT_NODE) {
-
-                Element isBindingsElement = (Element) isBindingsNode;
-
-                NodeList isBindingNodes = isBindingsElement.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDING_KEY);
-
-                for (int i = 0; i < isBindingNodes.getLength(); i++) {
-
-                    Node isBindingNode = isBindingNodes.item(i);
-                    Element isBindingElement = (Element) isBindingNode;
-
-                    String tID = isBindingElement.getElementsByTagName(PnmlConstants.TRANSITION_ID_KEY).item(0).getTextContent();
-                    String isID = isBindingElement.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_ID_KEY).item(0).getTextContent();
-                    int cVal = Integer.valueOf(isBindingElement.getElementsByTagName(PnmlConstants.CURRENT_VALUE_KEY).item(0).getTextContent());
-
-                    if(cVal != 1 && cVal != 0){
-                        logger.error("[PARSER] Initial value of input signal " + isID + " is not value. Falling back to 0.");
-                        cVal = 0;
-                    }
-
-                    InputSignalBinding isb = new InputSignalBinding();
-                    isb.setInputSignalValue(cVal);
-                    isb.setInputSignalID(isID);
-                    isb.setTransitionID(tID);
-
-                    jastAddBindingList.add(isb);
-                }
-            }
-        }
-        return jastAddBindingList;
-    }
-
-    public static JastAddList<OutputSignalBinding> parseOutputSignalBindingDefinitions(JastAddList<ToolInfo> toolInfos){
-
-        try {
-            Document doc = parseToolSpecifics(toolInfos);
-            return parseOutputSignalBindingDefinitionsInternal(doc);
-
-        } catch (ParserConfigurationException | SAXException | IOException e) {
-            logger.error(e.getMessage());
-        }
-
-        return null;
-    }
-
-    private static JastAddList<OutputSignalBinding> parseOutputSignalBindingDefinitionsInternal(Document doc) {
-
-        NodeList osBindingDefList = doc.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_BINDINGS_KEY);
-        JastAddList<OutputSignalBinding> jastAddBindingList = new JastAddList<>();
-
-        if (osBindingDefList.getLength() > 0 && osBindingDefList.item(0) != null) {
-
-            Node osBindingsNode = osBindingDefList.item(0);
-
-            if (osBindingsNode.getNodeType() == Node.ELEMENT_NODE) {
-
-                Element osBindingsElement = (Element) osBindingsNode;
-
-                NodeList osBindingNodes = osBindingsElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_BINDING_KEY);
-
-                for (int i = 0; i < osBindingNodes.getLength(); i++) {
-
-                    Node osBindingNode = osBindingNodes.item(i);
-                    Element osBindingElement = (Element) osBindingNode;
-
-                    String pID = osBindingElement.getElementsByTagName(PnmlConstants.PLACE_ID_KEY).item(0).getTextContent();
-                    String osID = osBindingElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_ID_KEY).item(0).getTextContent();
-                    String cVal = String.valueOf(osBindingElement.getElementsByTagName(PnmlConstants.CURRENT_VALUE_KEY).item(0).getTextContent());
-
-                    OutputSignalBinding osb = new OutputSignalBinding();
-                    parseOutputMappings(osBindingElement, pID, osID, cVal, osb);
-                    jastAddBindingList.add(osb);
-                }
-            }
-        }
-
-        return jastAddBindingList;
-    }
-
-    private static void parseOutputMappings(Element osBindingElement, String pID, String osID, String cVal, OutputSignalBinding osb) {
-        //osb.setCurrentValue(cVal);
-        osb.setOutputSignalID(osID);
-        osb.setPlaceID(pID);
-
-        NodeList eqMappingNodeList = osBindingElement.getElementsByTagName(PnmlConstants.EQUAL_OS_KEY);
-        NodeList thresholdMappingNodeList = osBindingElement.getElementsByTagName(PnmlConstants.THRESHOLD_KEY);
-        NodeList rangeMappingNodeList = osBindingElement.getElementsByTagName(PnmlConstants.RANGE_OS_KEY);
-
-        for (int j = 0; j < eqMappingNodeList.getLength(); j++) {
-            Element eqElement = (Element) eqMappingNodeList.item(j);
-            EqualityOutputMapping eom = new EqualityOutputMapping();
-            eom.setValue(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.VALUE_KEY).item(0).getTextContent()));
-            eom.setResult(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.RESULT_KEY).item(0).getTextContent()));
-            osb.addEqualityOM(eom);
-        }
-
-        for (int k = 0; k < thresholdMappingNodeList.getLength(); k++) {
-            Element eqElement = (Element) thresholdMappingNodeList.item(k);
-            ThresholdOutputMapping tom = new ThresholdOutputMapping();
-            tom.setValue(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.VALUE_KEY).item(0).getTextContent()));
-            tom.setResult(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.RESULT_KEY).item(0).getTextContent()));
-            osb.addThresholdOM(tom);
-        }
-
-        for (int l = 0; l < rangeMappingNodeList.getLength(); l++) {
-            Element eqElement = (Element) rangeMappingNodeList.item(l);
-            RangeOutputMapping rom = new RangeOutputMapping();
-            rom.setLowerBound(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.LOWER_BOUND_KEY).item(0).getTextContent()));
-            rom.setUpperBound(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.UPPER_BOUND_KEY).item(0).getTextContent()));
-            rom.setResult(Integer.valueOf(eqElement.getElementsByTagName(PnmlConstants.RESULT_KEY).item(0).getTextContent()));
-            osb.addRangeOM(rom);
-        }
-    }
-
-    private static Document parseToolSpecifics(JastAddList<ToolInfo> toolInfos) throws ParserConfigurationException, SAXException, IOException {
-
-        if(toolInfos == null || toolInfos.getNumChild() == 0){
-            return null;
-        }
-
-        StringBuffer toolInfoStringBuffer = toolInfos.getChild(0).getFormattedXMLBuffer();
-
-        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
-        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
-
-        Document doc = dBuilder.parse(fromStringBuffer(toolInfoStringBuffer));
-        doc.getDocumentElement().normalize();
-        return doc;
-    }
-
-    private static InputStream fromStringBuffer(StringBuffer buf) {
-        return new ByteArrayInputStream(buf.toString().getBytes());
-    }
-
-        /*public IoPetriNet doPostProcessing(PetriNet petriNet) {
-
-        System.out.println("doPostProcessing called");
-
-        try {
-            IoPetriNet ioPetriNet = new IoPetriNet();
-            ioPetriNet.setPN(petriNet);
-
-            if (petriNet.getToolspecificList() != null && petriNet.getToolspecificList().getNumChild() > 0) {
-
-                Document doc = parseToolSpecifics(petriNet.getToolspecificList());
-                this.parseSignalDefinitions(doc, ioPetriNet);
-                this.parseInputSignalBindingDefinitions(doc, ioPetriNet);
-                this.parseOutputSignalBindingDefinitions(doc, ioPetriNet);
-            }
-
-            return ioPetriNet;
-
-        } catch (ParserConfigurationException | SAXException | IOException e) {
-            logger.error(e.getMessage());
-        }
-        return null;
-    }/*
-
-
-    /*private void parseSignalDefinitions(Document doc, IoPetriNet ioPetriNet) {
-
-        NodeList isDefList = doc.getElementsByTagName(PnmlConstants.INPUT_SIGNALS_KEY);
-        NodeList osDefList = doc.getElementsByTagName(PnmlConstants.OUTPUT_SIGNALS_KEY);
-
-        ArrayList<String> inputSignalIds = new ArrayList<>();
-        ArrayList<String> outputSignalIds = new ArrayList<>();
-
-        if (isDefList.getLength() > 0 && isDefList.item(0) != null) {
-
-            Node nNode = isDefList.item(0);
-
-            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
-
-                Element eElement = (Element) nNode;
-
-                NodeList inputSignals = eElement.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_KEY);
-
-                for (int i = 0; i < inputSignals.getLength(); i++) {
-                    inputSignalIds.add(inputSignals.item(i).getTextContent());
-                }
-            }
-        }
-
-        if (osDefList.getLength() > 0 && osDefList.item(0) != null) {
-
-            Node nNode = osDefList.item(0);
-
-            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
-
-                Element eElement = (Element) nNode;
-
-                NodeList outputSignals = eElement.getElementsByTagName(PnmlConstants.OUTPUT_SIGNAL_KEY);
-
-                for (int i = 0; i < outputSignals.getLength(); i++) {
-                    outputSignalIds.add(outputSignals.item(i).getTextContent());
-                }
-            }
-        }
-
-        for (String isId : inputSignalIds) {
-            InputSignal is = new InputSignal();
-            is.setID(isId);
-            ioPetriNet.addIS(is);
-        }
-
-        for (String osId : outputSignalIds) {
-            OutputSignal os = new OutputSignal();
-            os.setID(osId);
-            ioPetriNet.addOS(os);
-        }
-    }*/
-}
\ No newline at end of file
diff --git a/src/main/java/de/tudresden/inf/st/postprocessing/PostProcessor.java b/src/main/java/de/tudresden/inf/st/postprocessing/PostProcessor.java
deleted file mode 100644
index a553ebef66f54b17b3c5a83ac15b1916f100bdab..0000000000000000000000000000000000000000
--- a/src/main/java/de/tudresden/inf/st/postprocessing/PostProcessor.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package de.tudresden.inf.st.postprocessing;
-
-public interface PostProcessor<InputModelType> {
-
-}