diff --git a/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/inject/JastaddTransformationInjectRouteSensor.java b/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/inject/JastaddTransformationInjectRouteSensor.java
index 3edb0670ce37bc36133c086a49a995a2baf7e04a..0e55df9bf82b6d54afe9e167c39908d513553903 100644
--- a/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/inject/JastaddTransformationInjectRouteSensor.java
+++ b/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/inject/JastaddTransformationInjectRouteSensor.java
@@ -23,15 +23,7 @@ public class JastaddTransformationInjectRouteSensor<TJastaddDriver extends Jasta
     java.util.List<Sensor> refsToBeRemoved = new ArrayList<>();
 
     for (final JastaddRouteSensorInjectMatch match : matches) {
-      for (Sensor sensor : match.getRoute().getRequiredSensors()) {
-        if (sensor == match.getSensor()) {
-          refsToBeRemoved.add(sensor);
-        }
-      }
-    }
-
-    for(Sensor sensor : refsToBeRemoved) {
-      sensor.removeSelf();
+      match.getRoute().removeRequiredSensor(match.getSensor());
     }
 
     driver.flushCache();
diff --git a/trainbenchmark-tool-jastadd-specialized-incremental/src/main/jastadd/intrinsics/bidirectional.jadd b/trainbenchmark-tool-jastadd-specialized-incremental/src/main/jastadd/intrinsics/bidirectional.jadd
index 06cef5aa17700ba2df4a9d075500a8b6c63ec7b6..56a888a9f4b8f2c256ad30c988417805beb0d163 100644
--- a/trainbenchmark-tool-jastadd-specialized-incremental/src/main/jastadd/intrinsics/bidirectional.jadd
+++ b/trainbenchmark-tool-jastadd-specialized-incremental/src/main/jastadd/intrinsics/bidirectional.jadd
@@ -162,7 +162,7 @@ aspect SwitchPositionsTargetSwitch {
       s.getManagedPositions().add(this);
     }
   }
-  public void Switch.addToPositions(SwitchPosition s) {
+  public void Switch.addPosition(SwitchPosition s) {
     Switch old_Target = s.getManagedTarget();
     if (old_Target != null) {
       old_Target.getManagedPositions().remove(s);
@@ -170,7 +170,7 @@ aspect SwitchPositionsTargetSwitch {
     this.getManagedPositions().add(s);
     s.setManagedTarget(this);
   }
-  public void Switch.removeFromPositions(SwitchPosition s) {
+  public void Switch.removePosition(SwitchPosition s) {
     this.getManagedPositions().remove(s);
     s.setManagedTarget(null);
   }
@@ -203,11 +203,11 @@ aspect RouteRequireSensor {
     return ((RefList)this.getManagedRequiredSensors()).contains(s);
   }
 
-  public void Sensor.addToRequiringRoutes(Route r) {
+  public void Sensor.addRequiringRoute(Route r) {
     this.getManagedRequiringRoutes().add(r);
     r.getManagedRequiredSensors().add(this);
   }
-  public boolean Sensor.removeFromRequiringRoutes(Route r) {
+  public boolean Sensor.removeRequiringRoute(Route r) {
     boolean a = this.getManagedRequiringRoutes().remove(r);
     boolean b = r.getManagedRequiredSensors().remove(this);
     if (a != b) {
@@ -215,11 +215,11 @@ aspect RouteRequireSensor {
     }
     return a || b;
   }
-  public void Route.addToRequiredSensors(Sensor s) {
+  public void Route.addRequiredSensor(Sensor s) {
     this.getManagedRequiredSensors().add(s);
     s.getManagedRequiringRoutes().add(this);
   }
-  public boolean Route.removeFromRequiredSensors(Sensor s) {
+  public boolean Route.removeRequiredSensor(Sensor s) {
     boolean a = this.getManagedRequiredSensors().remove(s);
     boolean b = s.getManagedRequiringRoutes().remove(this);
     if (a != b) {
diff --git a/trainbenchmark-tool-jastadd-specialized/src/main/jastadd/intrinsics/bidirectional.jadd b/trainbenchmark-tool-jastadd-specialized/src/main/jastadd/intrinsics/bidirectional.jadd
index c922dc0568417ffe802a87496bb39889100c214e..33f1a65cef5459f703c7cd3401466150bfd23aab 100644
--- a/trainbenchmark-tool-jastadd-specialized/src/main/jastadd/intrinsics/bidirectional.jadd
+++ b/trainbenchmark-tool-jastadd-specialized/src/main/jastadd/intrinsics/bidirectional.jadd
@@ -154,7 +154,7 @@ aspect SwitchPositionsTargetSwitch {
       s.getManagedPositions().add(this);
     }
   }
-  public void Switch.addToPositions(SwitchPosition s) {
+  public void Switch.addPosition(SwitchPosition s) {
     Switch old_Target = s.getManagedTarget();
     if (old_Target != null) {
       old_Target.getManagedPositions().remove(s);
@@ -162,7 +162,7 @@ aspect SwitchPositionsTargetSwitch {
     this.getManagedPositions().add(s);
     s.setManagedTarget(this);
   }
-  public void Switch.removeFromPositions(SwitchPosition s) {
+  public void Switch.removePosition(SwitchPosition s) {
     this.getManagedPositions().remove(s);
     s.setManagedTarget(null);
   }
@@ -195,11 +195,11 @@ aspect RouteRequireSensor {
     return ((RefList)this.getManagedRequiredSensors()).contains(s);
   }
 
-  public void Sensor.addToRequiringRoutes(Route r) {
+  public void Sensor.addRequiringRoute(Route r) {
     this.getManagedRequiringRoutes().add(r);
     r.getManagedRequiredSensors().add(this);
   }
-  public boolean Sensor.removeFromRequiringRoutes(Route r) {
+  public boolean Sensor.removeRequiringRoute(Route r) {
     boolean a = this.getManagedRequiringRoutes().remove(r);
     boolean b = r.getManagedRequiredSensors().remove(this);
     if (a != b) {
@@ -207,11 +207,11 @@ aspect RouteRequireSensor {
     }
     return a || b;
   }
-  public void Route.addToRequiredSensors(Sensor s) {
+  public void Route.addRequiredSensor(Sensor s) {
     this.getManagedRequiredSensors().add(s);
     s.getManagedRequiringRoutes().add(this);
   }
-  public boolean Route.removeFromRequiredSensors(Sensor s) {
+  public boolean Route.removeRequiredSensor(Sensor s) {
     boolean a = this.getManagedRequiredSensors().remove(s);
     boolean b = s.getManagedRequiringRoutes().remove(this);
     if (a != b) {