diff --git a/src/main/jastadd/Navigation.jrag b/src/main/jastadd/Navigation.jrag
new file mode 100644
index 0000000000000000000000000000000000000000..116505ed9939286c5ef84b117a840fb404ba98e9
--- /dev/null
+++ b/src/main/jastadd/Navigation.jrag
@@ -0,0 +1,14 @@
+aspect Navigation {
+  inh PetriNet PnObject.petriNet();
+  eq PetriNet.getChild().petriNet() = this;
+
+  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();
+}
diff --git a/src/main/jastadd/References.jrag b/src/main/jastadd/References.jrag
index 71bce532403f868a1b2bacb6d40059ad1a62b358..bce6451f2d7dd420d92c767b7a282df31381a3b2 100644
--- a/src/main/jastadd/References.jrag
+++ b/src/main/jastadd/References.jrag
@@ -9,14 +9,6 @@ aspect References {
     throw new RuntimeException(new de.tudresden.inf.st.pnml.PnmlParseException("Unable to resolve id " + id));
   }
 
-  coll java.util.Set<PnObject> PetriNet.allObjects() [new java.util.HashSet()] root PetriNet;
-  PnObject contributes this
-    to PetriNet.allObjects()
-    for petriNet();
-
-  inh PetriNet PnObject.petriNet();
-  eq PetriNet.getChild().petriNet() = this;
-
   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);