diff --git a/src/main/jastadd/Navigation.jrag b/src/main/jastadd/Navigation.jrag
index 38b4d06c7c82c1b90cd69591abaa68dc432e0c20..3565a968336ade7cfa7140048d69074dde7748bd 100644
--- a/src/main/jastadd/Navigation.jrag
+++ b/src/main/jastadd/Navigation.jrag
@@ -2,7 +2,7 @@ aspect Navigation {
   inh PetriNet PnObject.petriNet();
   eq PetriNet.getChild().petriNet() = this;
 
-  java.util.Collection<Place> Transition.incomingPlaces() {
+  syn java.util.Collection<Place> Transition.incomingPlaces() {
     java.util.Set<Place> incomingPlaces = new java.util.HashSet<>();
     for (Arc incomingArc : getInArcList()) {
       incomingPlaces.add(incomingArc.getSource().asPlaceNode().place());
@@ -10,7 +10,7 @@ aspect Navigation {
     return incomingPlaces;
   }
 
-  java.util.Collection<Place> Transition.outgoingPlaces() {
+  syn java.util.Collection<Place> Transition.outgoingPlaces() {
     java.util.Set<Place> outgoingPlaces = new java.util.HashSet<>();
     for (Arc outgoingArc : getOutArcList()) {
       outgoingPlaces.add(outgoingArc.getTarget().asPlaceNode().place());
diff --git a/src/main/jastadd/conversion/PrimitiveElements.jadd b/src/main/jastadd/conversion/PrimitiveElements.jadd
new file mode 100644
index 0000000000000000000000000000000000000000..3fff6b828a9e156e46985cae5f209c3544fa5497
--- /dev/null
+++ b/src/main/jastadd/conversion/PrimitiveElements.jadd
@@ -0,0 +1,14 @@
+aspect PrimitivesConversion {
+
+    syn fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI InputSignalTransition.convertToPnmlObject(){
+        return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertTransitionToPnmlObject(this);
+    }
+
+    syn fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI OutputSignalPlace.convertToPnmlObject(){
+        return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertPlaceToPnmlObject(this);
+    }
+
+    syn fr.lip6.move.pnml.ptnet.hlapi.ArcHLAPI Arc.convertToPnmlObject(){
+        return de.tudresden.inf.st.export.PrimitiveElementsConverter.convertArcToPnmlObject(this);
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/de/tudresden/inf/st/export/ComplexElementsConverter.java b/src/main/java/de/tudresden/inf/st/export/ComplexElementsConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..740df912f72f29daa7e0745115ef3b067f22f71f
--- /dev/null
+++ b/src/main/java/de/tudresden/inf/st/export/ComplexElementsConverter.java
@@ -0,0 +1,4 @@
+package de.tudresden.inf.st.export;
+
+public class ComplexElementsConverter {
+}
diff --git a/src/main/java/de/tudresden/inf/st/export/PrimitiveElementsConverter.java b/src/main/java/de/tudresden/inf/st/export/PrimitiveElementsConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..703becc39be4ba98dd44b6aa05b0fb6d2c402103
--- /dev/null
+++ b/src/main/java/de/tudresden/inf/st/export/PrimitiveElementsConverter.java
@@ -0,0 +1,23 @@
+package de.tudresden.inf.st.export;
+
+import de.tudresden.inf.st.pnml.jastadd.model.Arc;
+import de.tudresden.inf.st.pnml.jastadd.model.InputSignalTransition;
+import de.tudresden.inf.st.pnml.jastadd.model.OutputSignalPlace;
+import fr.lip6.move.pnml.ptnet.hlapi.ArcHLAPI;
+import fr.lip6.move.pnml.ptnet.hlapi.PlaceHLAPI;
+import fr.lip6.move.pnml.ptnet.hlapi.TransitionHLAPI;
+
+public class PrimitiveElementsConverter {
+
+    public static TransitionHLAPI convertTransitionToPnmlObject(InputSignalTransition inputSignalTransition){
+        return null;
+    }
+
+    public static PlaceHLAPI convertPlaceToPnmlObject(OutputSignalPlace outputSignalPlace){
+        return null;
+    }
+
+    public static ArcHLAPI convertArcToPnmlObject(Arc arc){
+        return null;
+    }
+}
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 f1358a44192b498e5d6ee23ad8d51933d43aa706..c154407e768963168d99d44e30e643813d0aed07 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/Main.java
@@ -1,13 +1,79 @@
 package de.tudresden.inf.st.pnml;
 
+import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
+import de.tudresden.inf.st.postprocessing.GlobalToLocalNetsPostProcessor;
+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 Main {
 
     private static final Logger logger = LoggerFactory.getLogger(Main.class);
 
     public static void main(String[] args) {
 
+        List<PetriNet> petriNets = parsePnml("src/main/resources/minimal_global.pnml");
+
+    }
+
+    private 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()) {
+                    PnmlParser parser;
+                    try {
+                        parser = new PnmlParser(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;
     }
 }
\ No newline at end of file
diff --git a/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java b/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6953645fefde1906da6825b2ccf93d610f810ef
--- /dev/null
+++ b/src/main/java/de/tudresden/inf/st/postprocessing/GlobalToLocalNetsPostProcessor.java
@@ -0,0 +1,23 @@
+package de.tudresden.inf.st.postprocessing;
+
+import de.tudresden.inf.st.pnml.PnmlConstants;
+import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
+import de.tudresden.inf.st.pnml.jastadd.model.Transition;
+
+import java.util.Set;
+
+public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
+
+    public static PetriNet disconnectNets(PetriNet petriNet){
+
+        Set<Transition> transitionSet = petriNet.allTransitions();
+
+        for(Transition transition : transitionSet){
+            if(transition.type().equals(PnmlConstants.TRANSITION_TYPE_TOPIC)){
+                // transition.incomingPlaces());
+            }
+        }
+
+        return null;
+    }
+}