diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs
index 80d9393c4d9c7ff9b508b441731e4f4577773e3a..4132480759febdc72d3b889a0752eccea9408ea2 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs
@@ -3,8 +3,10 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Models.Connector.Ports;
 using TUGraz.VectoCore.Models.Connector.Ports.Impl;
 using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
@@ -19,6 +21,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			ModelData.TractionInterruption = 0.SI<Second>();
 		}
 
+		public override void CommitSimulationStep(Second time, Second simulationInterval, IModalDataContainer container)
+		{
+			base.CommitSimulationStep(time, simulationInterval, container);
+		}
+
+		public override void Connect(ITnOutPort other)
+		{
+			base.Connect(other);
+		}
+
+		public override bool GearEngaged(Second absTime)
+		{
+			return base.GearEngaged(absTime);
+		}
+
 		public override IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity)
 		{
 			var absTime = 0.SI<Second>();
@@ -47,6 +64,29 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			return response;
 		}
 
+		public override IResponse Request(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, bool dryRun = false)
+		{
+			var response = base.Request(absTime, dt, outTorque, outAngularVelocity, dryRun);
+			if (response is ResponseGearShift) {
+				response = base.Request(absTime, dt, outTorque, outAngularVelocity, dryRun);
+			}
+			return response;
+		}
+
+		public override void TriggerGearshift(Second absTime, Second dt)
+		{
+			base.TriggerGearshift(absTime, dt);
+		}
+
+		protected override void DoCommitSimulationStep(Second time, Second simulationInterval)
+		{
+			base.DoCommitSimulationStep(time, simulationInterval);
+		}
+
+		protected override void DoWriteModalResults(Second time, Second simulationInterval, IModalDataContainer container)
+		{
+			base.DoWriteModalResults(time, simulationInterval, container);
+		}
 
 		protected internal override ResponseDryRun Initialize(Second absTime, GearshiftPosition gear,
 			NewtonMeter outTorque, PerSecond outAngularVelocity)
@@ -65,7 +105,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			}
 
 			var response = NextComponent.Request(absTime, Constants.SimulationSettings.TargetTimeInterval, inTorque, inAngularVelocity, true);
-			
+
 			var eMotor = DataBus.ElectricMotorInfo(DataBus.PowertrainInfo.ElectricMotorPositions[0]);
 			var fullLoad = -eMotor.MaxPowerDrive(DataBus.BatteryInfo.InternalVoltage, inAngularVelocity);
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs
index 0499aa19f44be506291f99f671ee5beea937ed4a..948787726f44537174bc1c327010d5fd63fd1308 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs
@@ -1,4 +1,6 @@
-using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Simulation;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 {
@@ -7,5 +9,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		public APTNShiftStrategy(IVehicleContainer dataBus) : base(dataBus) { }
 
 		public new static string Name => "APT-N";
+
+		protected override GearshiftPosition CheckEarlyDownshift(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, GearshiftPosition currentGear, IResponse resp)
+		{
+			return base.CheckEarlyDownshift(absTime, dt, outTorque, outAngularVelocity, currentGear, resp);
+		}
+
+		protected override GearshiftPosition CheckEarlyUpshift(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, GearshiftPosition currentGear, IResponse resp)
+		{
+			return base.CheckEarlyUpshift(absTime, dt, outTorque, outAngularVelocity, currentGear, resp);
+		}
+
+		protected override GearshiftPosition DoCheckUpshift(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, GearshiftPosition currentGear, IResponse r)
+		{
+			return base.DoCheckUpshift(absTime, dt, outTorque, outAngularVelocity, inTorque, inAngularVelocity, currentGear, r);
+		}
 	}
 }
\ No newline at end of file