diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
index 74824470c2c751032d7fea79137ff1dfaba54de4..f81e5e977d5077fb6ac407b2c8647eb1ac103182 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
@@ -49,9 +49,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			if (avgSpeed.IsEqual(0.RPMtoRad()) || avgSpeed.IsGreater(MaxSpeed)) {
 				return 0.SI<NewtonMeter>();
 			}
-			var (a, b) = GetSection(voltage);
-			var r1 = a.EfficiencyMap.LookupTorque(electricPower, avgSpeed, maxEmTorque);
-			var r2 = b.EfficiencyMap.LookupTorque(electricPower, avgSpeed, maxEmTorque);
+			var (vLow, vHigh) = GetSection(voltage);
+			var r1 = vLow.EfficiencyMap.LookupTorque(electricPower, avgSpeed, maxEmTorque);
+			var r2 = vHigh.EfficiencyMap.LookupTorque(electricPower, avgSpeed, maxEmTorque);
 
 			if (r1 is null && r2 is null) {
 				return null;
@@ -65,8 +65,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 				r2 = maxEmTorque;
 			}
 
-			var retVal = VectoMath.Interpolate(a.Voltage, b.Voltage,
-				r1, r2, voltage);
+			var retVal = vLow.Voltage.IsEqual(vHigh.Voltage)
+				? r1
+				: VectoMath.Interpolate(vLow.Voltage, vHigh.Voltage,
+					r1, r2, voltage);
 			var elPwr = LookupElectricPower(voltage, avgSpeed, retVal, true);
 			if (elPwr.ElectricalPower != null && electricPower.IsEqual(elPwr.ElectricalPower, 1e-3.SI<Watt>())) {
 				return retVal;
@@ -87,10 +89,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public EfficiencyMap.EfficiencyResult LookupElectricPower(Volt voltage, PerSecond avgSpeed, NewtonMeter torque, bool allowExtrapolation = false)
 		{
-			var tuple = GetSection(voltage);
+			var (vLow, vHigh) = GetSection(voltage);
 
-			var r1 = tuple.Item1.EfficiencyMap.LookupElectricPower(avgSpeed, torque, allowExtrapolation);
-			var r2 = tuple.Item2.EfficiencyMap.LookupElectricPower(avgSpeed, torque, allowExtrapolation);
+			var r1 = vLow.EfficiencyMap.LookupElectricPower(avgSpeed, torque, allowExtrapolation);
+			var r2 = vHigh.EfficiencyMap.LookupElectricPower(avgSpeed, torque, allowExtrapolation);
 
 			if (r1 == null || r2 == null || r1.ElectricalPower == null || r2.ElectricalPower == null) {
 				return new EfficiencyMap.EfficiencyResult() {
@@ -100,8 +102,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 				};
 			}
 
-			var pwr = VectoMath.Interpolate(tuple.Item1.Voltage, tuple.Item2.Voltage, r1.ElectricalPower,
-				r2.ElectricalPower, voltage);
+			var pwr = vLow.Voltage.IsEqual(vHigh.Voltage)
+				? r1.ElectricalPower
+				: VectoMath.Interpolate(vLow.Voltage, vHigh.Voltage, r1.ElectricalPower,
+					r2.ElectricalPower, voltage);
 
 			return new EfficiencyMap.EfficiencyResult() {
 				ElectricalPower = pwr,
@@ -113,20 +117,28 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public NewtonMeter FullGenerationTorque(Volt voltage, PerSecond avgSpeed)
 		{
-			var tuple = GetSection(voltage);
+			var (vLow, vHigh) = GetSection(voltage);
 
-			return VectoMath.Interpolate(tuple.Item1.Voltage, tuple.Item2.Voltage,
-				tuple.Item1.FullLoadCurve.FullGenerationTorque(avgSpeed),
-				tuple.Item2.FullLoadCurve.FullGenerationTorque(avgSpeed), voltage);
+			if (vLow.Voltage.IsEqual(vHigh.Voltage)) {
+				return vLow.FullLoadCurve.FullGenerationTorque(avgSpeed);
+			}
+
+			return VectoMath.Interpolate(vLow.Voltage, vHigh.Voltage,
+				vLow.FullLoadCurve.FullGenerationTorque(avgSpeed),
+				vHigh.FullLoadCurve.FullGenerationTorque(avgSpeed), voltage);
 		}
 
 		public NewtonMeter FullLoadDriveTorque(Volt voltage, PerSecond avgSpeed)
 		{
-			var (electricMotorVoltageLevelData, item2) = GetSection(voltage);
+			var (vLow, vHigh) = GetSection(voltage);
+
+			if (vLow.Voltage.IsEqual(vHigh.Voltage)) {
+				return vLow.FullLoadCurve.FullLoadDriveTorque(avgSpeed);
+			}
 
-			return VectoMath.Interpolate(electricMotorVoltageLevelData.Voltage, item2.Voltage,
-				electricMotorVoltageLevelData.FullLoadCurve.FullLoadDriveTorque(avgSpeed),
-				item2.FullLoadCurve.FullLoadDriveTorque(avgSpeed), voltage);
+			return VectoMath.Interpolate(vLow.Voltage, vHigh.Voltage,
+				vLow.FullLoadCurve.FullLoadDriveTorque(avgSpeed),
+				vHigh.FullLoadCurve.FullLoadDriveTorque(avgSpeed), voltage);
 		}
 
 		protected (ElectricMotorVoltageLevelData, ElectricMotorVoltageLevelData) GetSection(Volt voltage)
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs
index 7203984dea9c861b79b1cde68ad97709826fb50e..da5d0c02532ae9f635d672d65fc8538f98eab1cb 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs
@@ -188,7 +188,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 			TestPowertrain.HybridController.Initialize(Controller.PreviousState.OutTorque,
 				Controller.PreviousState.OutAngularVelocity);
 			TestPowertrain.Brakes.BrakePower = DataBus.Brakes.BrakePower;
-			var testResponse =
+            if (TestPowertrain.Gearbox != null) {
+                TestPowertrain.Gearbox.PreviousState.InAngularVelocity =
+                    (DataBus.GearboxInfo as Gearbox).PreviousState.InAngularVelocity;
+            }
+            var testResponse =
 				TestPowertrain.HybridController.NextComponent.Request(absTime, dt, outTorque, outAngularVelocity, false);
 
 			TestPowertrain.HybridController.ApplyStrategySettings(new HybridStrategyResponse() {
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/AT-Shift.vgbs b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/AT-Shift.vgbs
deleted file mode 100644
index 4da1c5a5aedffae8d86fd20777c0e56b83b0bea2..0000000000000000000000000000000000000000
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/AT-Shift.vgbs
+++ /dev/null
@@ -1,4 +0,0 @@
-engine torque [Nm],downshift rpm [1/min],upshift rpm [1/min]
--200,700,800
-0,700,800
-3000,700,800
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxPowerSplit.vgbx b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxPowerSplit.vgbx
index fd4f513c68633b5c8fe5132a2be6b3fe225ae6e4..361b61daa0471822aacb0b19af24693732091f78 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxPowerSplit.vgbx
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxPowerSplit.vgbx
@@ -18,19 +18,19 @@
       {
         "Ratio": 1.35,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 1.0,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 0.73,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       }
     ],
@@ -45,7 +45,7 @@
       "File": "TorqueConverterPowerSplit.vtcc",
       "RefRPM": 1000.0,
       "Inertia": 0.0,
-      "ShiftPolygon": "AT-Shift.vgbs"
+      "ShiftPolygon": ""
     },
     "DownshiftAferUpshiftDelay": 0.0,
     "UpshiftAfterDownshiftDelay": 0.0,
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxSerial.vgbx b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxSerial.vgbx
index 0620238ba28721816eb911ec7850274e1482ddcc..9cbd0b62769194c8bac77778f7c066ce43ad91bc 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxSerial.vgbx
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_AT/GearboxSerial.vgbx
@@ -18,37 +18,37 @@
       {
         "Ratio": 3.4,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 1.9,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 1.42,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 1.0,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 0.7,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       },
       {
         "Ratio": 0.62,
         "Efficiency": 0.98,
-        "ShiftPolygon": "AT-Shift.vgbs",
+        "ShiftPolygon": "",
         "MaxTorque": ""
       }
     ],
@@ -63,7 +63,7 @@
       "File": "TorqueConverter.vtcc",
       "RefRPM": 1000.0,
       "Inertia": 0.0,
-      "ShiftPolygon": "AT-Shift.vgbs"
+      "ShiftPolygon": ""
     },
     "DownshiftAferUpshiftDelay": 0.0,
     "UpshiftAfterDownshiftDelay": 0.0,