diff --git a/build.gradle b/build.gradle
index 8d438f150a6876739dfd7e4708698321044bfafb..fae5d2b811356606b494c85b5f92261b2d3a9376 100644
--- a/build.gradle
+++ b/build.gradle
@@ -27,8 +27,8 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.pnml.Main')
 dependencies {
     implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
     implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
-    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.13.1'
-    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.13.1'
+    implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
+    implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.13.2'
 
     // pnml lib
     implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.ecore', version: '2.12.0'
@@ -37,11 +37,9 @@ dependencies {
     implementation group: 'org.eclipse.emf', name: 'org.eclipse.emf.mwe.core', version: '1.3.13'
     implementation group: 'fr.lip6.pnml', name: 'fr.lip6.pnml.framework.ptnet', version: '2.2.12'
     implementation group: 'fr.lip6.pnml', name: 'fr.lip6.pnml.framework.utils', version: '2.2.12'
-    implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
     implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-api', version: '1.2.22'
     implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.22'
     implementation group: 'com.thaiopensource', name: 'jing', version: '20091111'
-    implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.30'
 
     jastadd2 "org.jastadd:jastadd:2.3.4"
 }
@@ -54,6 +52,7 @@ run {
 
 // Generated files
 def ecoreFile = "./src/main/resources/placeTransition.ecore"
+def relastAspect = "./src/gen/jastadd/placeTransition.ecore.jadd"
 def relastFile = "./src/gen/jastadd/placeTransition.relast"
 
 // First phase: Ecore -> RelAst
@@ -70,7 +69,7 @@ task ecoreToRelast(type: JavaExec) {
     args "libs/ecore2relast-0.1.jar", ecoreFile, relastFile
 
     inputs.files file(ecoreFile)
-    outputs.files file(relastFile)
+    outputs.files file(relastFile), file(relastAspect)
 }
 
 // Second phase: RelAst -> JastAdd
diff --git a/src/main/java/de/tudresden/inf/st/pnml/Main.java b/src/main/java/de/tudresden/inf/st/pnml/Main.java
index 93238e147a802d98a46eac41dafe7d941d87e3ec..9d98c9f14c5512f3ee847fcd144119b6809be034 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/Main.java
@@ -8,8 +8,8 @@ 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.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -18,7 +18,7 @@ import java.util.List;
 
 public class Main {
 
-  private static Logger logger = LogManager.getLogger(Main.class);
+  private static final Logger logger = LoggerFactory.getLogger(Main.class);
 
   public static void main(String[] args) {
 
@@ -31,14 +31,14 @@ public class Main {
     try {
       document = PNMLUtils.importPnmlDocument(file.toFile(), false);
 
-      System.out.println(document.toPNML());
+      logger.info(document.toPNML());
     } catch (ImportException | InvalidIDException e) {
-      logger.error("Unable to import PNML document from file '" + fileName + "'");
+      logger.error("Unable to import PNML document from file '{}'", fileName);
       System.exit(-1);
     }
 
 
-    System.out.println("Imported document workspace ID: " + ModelRepository.getInstance().getCurrentDocWSId());
+    logger.info("Imported document workspace ID: {}", ModelRepository.getInstance().getCurrentDocWSId());
 
     PNType type = PNMLUtils.determinePNType(document);
     switch (type) {
@@ -49,18 +49,22 @@ public class Main {
         List<PetriNet> petriNets = new ArrayList<>();
 
         for (fr.lip6.move.pnml.ptnet.PetriNet pmnlNet : ptDoc.getNets()) {
-          PnmlParser parser = null;
+          PnmlParser parser;
           try {
             parser = new PnmlParser(pmnlNet);
             petriNets.add(parser.getPetriNet());
           } catch (PnmlParseException e) {
-            e.printStackTrace();
+            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());
+        logger.error("Petri net is of unsupported type {}.", type.getLiteral());
         System.exit(-1);
     }
   }