diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 0a179ae85a7b0c8c29b425a04f0cbbbe9bd79a80..96e80a328e1c6fc34a35d7c6e0fc92751502517c 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -470,6 +470,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				.AddAuxiliaries(container, data);
 
 			if (data.ElectricMachinesData.Any(x => x.Item1 == PowertrainPosition.HybridP1)) {
+				// this has to be done _after_ the powertrain is connected together so that the cluch already has its nextComponent set (necessary in the idle controlelr)
 				if (gearbox is ATGearbox atGbx) {
 					atGbx.IdleController = idleController;
 				} else {
@@ -964,14 +965,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			var ctl = new SimpleHybridController(container, es) { Gearbox = gbx, Engine = engine };
 			var idleController = GetIdleController(data.PTO, engine, container);
 			var clutch = data.GearboxData.Type.ManualTransmission() ? new SwitchableClutch(container, data.EngineData) : null;
-			if (data.ElectricMachinesData.Any(x => x.Item1 == PowertrainPosition.HybridP1)) {
-				if (gearbox is ATGearbox atGbx) {
-					atGbx.IdleController = idleController;
-					new ATClutchInfo(container);
-				} else {
-					clutch.IdleController = idleController;
-				}
-			}
+
 
 			var vehicle = new Vehicle(container, data.VehicleData, data.AirdragData);
 
@@ -1005,6 +999,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				.AddComponent(engine, idleController)
 				.AddAuxiliaries(container, data);
 
+			if (data.ElectricMachinesData.Any(x => x.Item1 == PowertrainPosition.HybridP1)) {
+				// this has to be done _after_ the powertrain is connected together so that the cluch already has its nextComponent set (necessary in the idle controlelr)
+				if (gearbox is ATGearbox atGbx) {
+					atGbx.IdleController = idleController;
+					new ATClutchInfo(container);
+				} else {
+					clutch.IdleController = idleController;
+				}
+			}
+
 			if (data.BusAuxiliaries != null) {
 				if (!(container.BusAux is BusAuxiliariesAdapter busAux)) {
 					throw new VectoException("BusAux data set but no BusAux component found!");
diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs
index 615ed911f1317b1f755f7dc7177444f962862d49..923f507498fbac11bfb7e995df1266badfbe7ed5 100644
--- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs
+++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs
@@ -370,28 +370,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, WithinSegment, Accelerate),      // len: 103m
 			(4591, 4606, WithinSegment, Roll),            // len: 15m
 			(4606, 4667, WithinSegment, Accelerate),      // len: 61m
-			(4667, 4679, WithinSegment, Roll),            // len: 12m
-			(4679, 4721, WithinSegment, Accelerate),      // len: 42m
+			(4667, 4678, WithinSegment, Roll),            // len: 11m
+			(4678, 4721, WithinSegment, Accelerate),      // len: 43m
 			(4721, 4730, WithinSegment, Roll),            // len: 9m
-			(4730, 4762, WithinSegment, Accelerate),      // len: 32m
-			(4762, 4769, WithinSegment, Roll),            // len: 7m
-			(4769, 4796, WithinSegment, Accelerate),      // len: 27m
-			(4796, 4801, WithinSegment, Roll),            // len: 5m
-			(4801, 4930, WithinSegment, Accelerate),      // len: 129m
-			(4930, 4937, WithinSegment, Roll),            // len: 7m
-			(4937, 5053, WithinSegment, Accelerate),      // len: 116m
-			(5053, 5065, WithinSegment, Roll),            // len: 12m
-			(5065, 5099, WithinSegment, Accelerate),      // len: 34m
-			(5099, 5113, WithinSegment, Roll),            // len: 14m
-			(5113, 5227, WithinSegment, Accelerate),      // len: 114m
-			(5227, 5245, WithinSegment, Roll),            // len: 18m
-			(5245, 5364, WithinSegment, Accelerate),      // len: 119m
-			(5364, 5692, UseCase2, Coast),                // len: 328m
-			(5692, 5947, WithinSegment, Coast),           // len: 255m
-			(5947, 6120, WithinSegment, Brake),           // len: 173m
-			(6120, 6132, WithinSegment, Coast),           // len: 12m
-			(6132, 6520, OutsideSegment, Coast),          // len: 388m
-			(6520, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, WithinSegment, Accelerate),      // len: 28m
+			(4758, 4765, WithinSegment, Roll),            // len: 7m
+			(4765, 4799, WithinSegment, Accelerate),      // len: 34m
+			(4799, 4804, WithinSegment, Roll),            // len: 5m
+			(4804, 4932, WithinSegment, Accelerate),      // len: 128m
+			(4932, 4939, WithinSegment, Roll),            // len: 7m
+			(4939, 5050, WithinSegment, Accelerate),      // len: 111m
+			(5050, 5062, WithinSegment, Roll),            // len: 12m
+			(5062, 5095, WithinSegment, Accelerate),      // len: 33m
+			(5095, 5109, WithinSegment, Roll),            // len: 14m
+			(5109, 5231, WithinSegment, Accelerate),      // len: 122m
+			(5231, 5250, WithinSegment, Roll),            // len: 19m
+			(5250, 5369, WithinSegment, Accelerate),      // len: 119m
+			(5369, 5674, UseCase2, Coast),                // len: 305m
+			(5674, 5929, WithinSegment, Coast),           // len: 255m
+			(5929, 6114, WithinSegment, Brake),           // len: 185m
+			(6114, 6127, WithinSegment, Coast),           // len: 13m
+			(6127, 6515, OutsideSegment, Coast),          // len: 388m
+			(6515, 1e6, OutsideSegment, Accelerate));
 
 		[TestCase]
 		public void Class5_PCC123_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -525,28 +525,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, WithinSegment, Accelerate),      // len: 103m
 			(4591, 4606, WithinSegment, Roll),            // len: 15m
 			(4606, 4667, WithinSegment, Accelerate),      // len: 61m
-			(4667, 4679, WithinSegment, Roll),            // len: 12m
-			(4679, 4721, WithinSegment, Accelerate),      // len: 42m
+			(4667, 4678, WithinSegment, Roll),            // len: 11m
+			(4678, 4721, WithinSegment, Accelerate),      // len: 43m
 			(4721, 4730, WithinSegment, Roll),            // len: 9m
-			(4730, 4762, WithinSegment, Accelerate),      // len: 32m
-			(4762, 4769, WithinSegment, Roll),            // len: 7m
-			(4769, 4796, WithinSegment, Accelerate),      // len: 27m
-			(4796, 4801, WithinSegment, Roll),            // len: 5m
-			(4801, 4930, WithinSegment, Accelerate),      // len: 129m
-			(4930, 4937, WithinSegment, Roll),            // len: 7m
-			(4937, 5053, WithinSegment, Accelerate),      // len: 116m
-			(5053, 5065, WithinSegment, Roll),            // len: 12m
-			(5065, 5099, WithinSegment, Accelerate),      // len: 34m
-			(5099, 5113, WithinSegment, Roll),            // len: 14m
-			(5113, 5227, WithinSegment, Accelerate),      // len: 114m
-			(5227, 5245, WithinSegment, Roll),            // len: 18m
-			(5245, 5364, WithinSegment, Accelerate),      // len: 119m
-			(5364, 5692, UseCase2, Coast),                // len: 328m
-			(5692, 5751, WithinSegment, Coast),           // len: 59m
-			(5751, 6124, WithinSegment, Brake),           // len: 373m
-			(6124, 6136, WithinSegment, Coast),           // len: 12m
-			(6136, 6409, OutsideSegment, Coast),          // len: 273m
-			(6409, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, WithinSegment, Accelerate),      // len: 28m
+			(4758, 4765, WithinSegment, Roll),            // len: 7m
+			(4765, 4799, WithinSegment, Accelerate),      // len: 34m
+			(4799, 4804, WithinSegment, Roll),            // len: 5m
+			(4804, 4932, WithinSegment, Accelerate),      // len: 128m
+			(4932, 4939, WithinSegment, Roll),            // len: 7m
+			(4939, 5050, WithinSegment, Accelerate),      // len: 111m
+			(5050, 5062, WithinSegment, Roll),            // len: 12m
+			(5062, 5095, WithinSegment, Accelerate),      // len: 33m
+			(5095, 5109, WithinSegment, Roll),            // len: 14m
+			(5109, 5231, WithinSegment, Accelerate),      // len: 122m
+			(5231, 5250, WithinSegment, Roll),            // len: 19m
+			(5250, 5369, WithinSegment, Accelerate),      // len: 119m
+			(5369, 5674, UseCase2, Coast),                // len: 305m
+			(5674, 5746, WithinSegment, Coast),           // len: 72m
+			(5746, 6130, WithinSegment, Brake),           // len: 384m
+			(6130, 6404, OutsideSegment, Coast),          // len: 274m
+			(6404, 1e6, OutsideSegment, Accelerate));
+
 
 		[TestCase]
 		public void Class5_PCC12_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -669,26 +669,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, OutsideSegment, Accelerate),     // len: 103m
 			(4591, 4606, OutsideSegment, Roll),           // len: 15m
 			(4606, 4667, OutsideSegment, Accelerate),     // len: 61m
-			(4667, 4679, OutsideSegment, Roll),           // len: 12m
-			(4679, 4721, OutsideSegment, Accelerate),     // len: 42m
+			(4667, 4678, OutsideSegment, Roll),           // len: 11m
+			(4678, 4721, OutsideSegment, Accelerate),     // len: 43m
 			(4721, 4730, OutsideSegment, Roll),           // len: 9m
-			(4730, 4762, OutsideSegment, Accelerate),     // len: 32m
-			(4762, 4769, OutsideSegment, Roll),           // len: 7m
-			(4769, 4796, OutsideSegment, Accelerate),     // len: 27m
-			(4796, 4801, OutsideSegment, Roll),           // len: 5m
-			(4801, 4930, OutsideSegment, Accelerate),     // len: 129m
-			(4930, 4937, OutsideSegment, Roll),           // len: 7m
-			(4937, 5053, OutsideSegment, Accelerate),     // len: 116m
-			(5053, 5065, OutsideSegment, Roll),           // len: 12m
-			(5065, 5099, OutsideSegment, Accelerate),     // len: 34m
-			(5099, 5113, OutsideSegment, Roll),           // len: 14m
-			(5113, 5227, OutsideSegment, Accelerate),     // len: 114m
-			(5227, 5245, OutsideSegment, Roll),           // len: 18m
-			(5245, 5465, OutsideSegment, Accelerate),     // len: 220m
-			(5465, 5560, OutsideSegment, Coast),          // len: 95m
-			(5560, 6125, OutsideSegment, Brake),          // len: 565m
-			(6125, 6410, OutsideSegment, Coast),          // len: 285m
-			(6410, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, OutsideSegment, Accelerate),     // len: 28m
+			(4758, 4765, OutsideSegment, Roll),           // len: 7m
+			(4765, 4799, OutsideSegment, Accelerate),     // len: 34m
+			(4799, 4804, OutsideSegment, Roll),           // len: 5m
+			(4804, 4932, OutsideSegment, Accelerate),     // len: 128m
+			(4932, 4939, OutsideSegment, Roll),           // len: 7m
+			(4939, 5050, OutsideSegment, Accelerate),     // len: 111m
+			(5050, 5062, OutsideSegment, Roll),           // len: 12m
+			(5062, 5095, OutsideSegment, Accelerate),     // len: 33m
+			(5095, 5109, OutsideSegment, Roll),           // len: 14m
+			(5109, 5231, OutsideSegment, Accelerate),     // len: 122m
+			(5231, 5250, OutsideSegment, Roll),           // len: 19m
+			(5250, 5459, OutsideSegment, Accelerate),     // len: 209m
+			(5459, 5554, OutsideSegment, Coast),          // len: 95m
+			(5554, 6131, OutsideSegment, Brake),          // len: 577m
+			(6131, 6404, OutsideSegment, Coast),          // len: 273m
+			(6404, 1e6, OutsideSegment, Accelerate));
+
+
 
 		[TestCase]
 		public void Class5_NoADAS_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -830,26 +832,26 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, OutsideSegment, Accelerate),     // len: 103m
 			(4591, 4606, OutsideSegment, Roll),           // len: 15m
 			(4606, 4667, OutsideSegment, Accelerate),     // len: 61m
-			(4667, 4679, OutsideSegment, Roll),           // len: 12m
-			(4679, 4721, OutsideSegment, Accelerate),     // len: 42m
+			(4667, 4678, OutsideSegment, Roll),           // len: 11m
+			(4678, 4721, OutsideSegment, Accelerate),     // len: 43m
 			(4721, 4730, OutsideSegment, Roll),           // len: 9m
-			(4730, 4762, OutsideSegment, Accelerate),     // len: 32m
-			(4762, 4769, OutsideSegment, Roll),           // len: 7m
-			(4769, 4796, OutsideSegment, Accelerate),     // len: 27m
-			(4796, 4801, OutsideSegment, Roll),           // len: 5m
-			(4801, 4930, OutsideSegment, Accelerate),     // len: 129m
-			(4930, 4937, OutsideSegment, Roll),           // len: 7m
-			(4937, 5053, OutsideSegment, Accelerate),     // len: 116m
-			(5053, 5065, OutsideSegment, Roll),           // len: 12m
-			(5065, 5099, OutsideSegment, Accelerate),     // len: 34m
-			(5099, 5113, OutsideSegment, Roll),           // len: 14m
-			(5113, 5227, OutsideSegment, Accelerate),     // len: 114m
-			(5227, 5245, OutsideSegment, Roll),           // len: 18m
-			(5245, 5465, OutsideSegment, Accelerate),     // len: 220m
-			(5465, 5560, OutsideSegment, Coast),          // len: 95m
-			(5560, 6125, OutsideSegment, Brake),          // len: 565m
-			(6125, 6410, OutsideSegment, Coast),          // len: 285m
-			(6410, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, OutsideSegment, Accelerate),     // len: 28m
+			(4758, 4765, OutsideSegment, Roll),           // len: 7m
+			(4765, 4799, OutsideSegment, Accelerate),     // len: 34m
+			(4799, 4804, OutsideSegment, Roll),           // len: 5m
+			(4804, 4932, OutsideSegment, Accelerate),     // len: 128m
+			(4932, 4939, OutsideSegment, Roll),           // len: 7m
+			(4939, 5050, OutsideSegment, Accelerate),     // len: 111m
+			(5050, 5062, OutsideSegment, Roll),           // len: 12m
+			(5062, 5095, OutsideSegment, Accelerate),     // len: 33m
+			(5095, 5109, OutsideSegment, Roll),           // len: 14m
+			(5109, 5231, OutsideSegment, Accelerate),     // len: 122m
+			(5231, 5250, OutsideSegment, Roll),           // len: 19m
+			(5250, 5459, OutsideSegment, Accelerate),     // len: 209m
+			(5459, 5554, OutsideSegment, Coast),          // len: 95m
+			(5554, 6131, OutsideSegment, Brake),          // len: 577m
+			(6131, 6404, OutsideSegment, Coast),          // len: 273m
+			(6404, 1e6, OutsideSegment, Accelerate));
 
 		[TestCase]
 		public void Class5_EcoRollWithoutEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -992,26 +994,26 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, OutsideSegment, Accelerate),     // len: 103m
 			(4591, 4606, OutsideSegment, Roll),           // len: 15m
 			(4606, 4667, OutsideSegment, Accelerate),     // len: 61m
-			(4667, 4679, OutsideSegment, Roll),           // len: 12m
-			(4679, 4721, OutsideSegment, Accelerate),     // len: 42m
+			(4667, 4678, OutsideSegment, Roll),           // len: 11m
+			(4678, 4721, OutsideSegment, Accelerate),     // len: 43m
 			(4721, 4730, OutsideSegment, Roll),           // len: 9m
-			(4730, 4762, OutsideSegment, Accelerate),     // len: 32m
-			(4762, 4769, OutsideSegment, Roll),           // len: 7m
-			(4769, 4796, OutsideSegment, Accelerate),     // len: 27m
-			(4796, 4801, OutsideSegment, Roll),           // len: 5m
-			(4801, 4930, OutsideSegment, Accelerate),     // len: 129m
-			(4930, 4937, OutsideSegment, Roll),           // len: 7m
-			(4937, 5053, OutsideSegment, Accelerate),     // len: 116m
-			(5053, 5065, OutsideSegment, Roll),           // len: 12m
-			(5065, 5099, OutsideSegment, Accelerate),     // len: 34m
-			(5099, 5113, OutsideSegment, Roll),           // len: 14m
-			(5113, 5227, OutsideSegment, Accelerate),     // len: 114m
-			(5227, 5245, OutsideSegment, Roll),           // len: 18m
-			(5245, 5465, OutsideSegment, Accelerate),     // len: 220m
-			(5465, 5560, OutsideSegment, Coast),          // len: 95m
-			(5560, 6125, OutsideSegment, Brake),          // len: 565m
-			(6125, 6410, OutsideSegment, Coast),          // len: 285m
-			(6410, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, OutsideSegment, Accelerate),     // len: 28m
+			(4758, 4765, OutsideSegment, Roll),           // len: 7m
+			(4765, 4799, OutsideSegment, Accelerate),     // len: 34m
+			(4799, 4804, OutsideSegment, Roll),           // len: 5m
+			(4804, 4932, OutsideSegment, Accelerate),     // len: 128m
+			(4932, 4939, OutsideSegment, Roll),           // len: 7m
+			(4939, 5050, OutsideSegment, Accelerate),     // len: 111m
+			(5050, 5062, OutsideSegment, Roll),           // len: 12m
+			(5062, 5095, OutsideSegment, Accelerate),     // len: 33m
+			(5095, 5109, OutsideSegment, Roll),           // len: 14m
+			(5109, 5231, OutsideSegment, Accelerate),     // len: 122m
+			(5231, 5250, OutsideSegment, Roll),           // len: 19m
+			(5250, 5459, OutsideSegment, Accelerate),     // len: 209m
+			(5459, 5554, OutsideSegment, Coast),          // len: 95m
+			(5554, 6131, OutsideSegment, Brake),          // len: 577m
+			(6131, 6404, OutsideSegment, Coast),          // len: 273m
+			(6404, 1e6, OutsideSegment, Accelerate));
 
 		[TestCase]
 		public void Class5_EcoRollEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -1158,28 +1160,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, WithinSegment, Accelerate),      // len: 103m
 			(4591, 4606, WithinSegment, Roll),            // len: 15m
 			(4606, 4667, WithinSegment, Accelerate),      // len: 61m
-			(4667, 4679, WithinSegment, Roll),            // len: 12m
-			(4679, 4721, WithinSegment, Accelerate),      // len: 42m
+			(4667, 4678, WithinSegment, Roll),            // len: 11m
+			(4678, 4721, WithinSegment, Accelerate),      // len: 43m
 			(4721, 4730, WithinSegment, Roll),            // len: 9m
-			(4730, 4762, WithinSegment, Accelerate),      // len: 32m
-			(4762, 4769, WithinSegment, Roll),            // len: 7m
-			(4769, 4796, WithinSegment, Accelerate),      // len: 27m
-			(4796, 4801, WithinSegment, Roll),            // len: 5m
-			(4801, 4930, WithinSegment, Accelerate),      // len: 129m
-			(4930, 4937, WithinSegment, Roll),            // len: 7m
-			(4937, 5053, WithinSegment, Accelerate),      // len: 116m
-			(5053, 5065, WithinSegment, Roll),            // len: 12m
-			(5065, 5099, WithinSegment, Accelerate),      // len: 34m
-			(5099, 5113, WithinSegment, Roll),            // len: 14m
-			(5113, 5227, WithinSegment, Accelerate),      // len: 114m
-			(5227, 5245, WithinSegment, Roll),            // len: 18m
-			(5245, 5364, WithinSegment, Accelerate),      // len: 119m
-			(5364, 5623, UseCase2, Roll),                 // len: 259m
-			(5623, 5841, WithinSegment, Coast),           // len: 218m
-			(5841, 6113, WithinSegment, Brake),           // len: 272m
-			(6113, 6224, WithinSegment, Coast),           // len: 111m
-			(6224, 6514, OutsideSegment, Coast),          // len: 290m
-			(6514, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, WithinSegment, Accelerate),      // len: 28m
+			(4758, 4765, WithinSegment, Roll),            // len: 7m
+			(4765, 4799, WithinSegment, Accelerate),      // len: 34m
+			(4799, 4804, WithinSegment, Roll),            // len: 5m
+			(4804, 4932, WithinSegment, Accelerate),      // len: 128m
+			(4932, 4939, WithinSegment, Roll),            // len: 7m
+			(4939, 5050, WithinSegment, Accelerate),      // len: 111m
+			(5050, 5062, WithinSegment, Roll),            // len: 12m
+			(5062, 5095, WithinSegment, Accelerate),      // len: 33m
+			(5095, 5109, WithinSegment, Roll),            // len: 14m
+			(5109, 5231, WithinSegment, Accelerate),      // len: 122m
+			(5231, 5250, WithinSegment, Roll),            // len: 19m
+			(5250, 5369, WithinSegment, Accelerate),      // len: 119m
+			(5369, 5618, UseCase2, Roll),                 // len: 249m
+			(5618, 5836, WithinSegment, Coast),           // len: 218m
+			(5836, 6120, WithinSegment, Brake),           // len: 284m
+			(6120, 6231, WithinSegment, Coast),           // len: 111m
+			(6231, 6520, OutsideSegment, Coast),          // len: 289m
+			(6520, 1e6, OutsideSegment, Accelerate));
 
 		[TestCase]
 		public void Class5_PCC123EcoRollWithoutEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -1329,28 +1331,28 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4488, 4591, WithinSegment, Accelerate),      // len: 103m
 			(4591, 4606, WithinSegment, Roll),            // len: 15m
 			(4606, 4667, WithinSegment, Accelerate),      // len: 61m
-			(4667, 4679, WithinSegment, Roll),            // len: 12m
-			(4679, 4721, WithinSegment, Accelerate),      // len: 42m
+			(4667, 4678, WithinSegment, Roll),            // len: 11m
+			(4678, 4721, WithinSegment, Accelerate),      // len: 43m
 			(4721, 4730, WithinSegment, Roll),            // len: 9m
-			(4730, 4762, WithinSegment, Accelerate),      // len: 32m
-			(4762, 4769, WithinSegment, Roll),            // len: 7m
-			(4769, 4796, WithinSegment, Accelerate),      // len: 27m
-			(4796, 4801, WithinSegment, Roll),            // len: 5m
-			(4801, 4930, WithinSegment, Accelerate),      // len: 129m
-			(4930, 4937, WithinSegment, Roll),            // len: 7m
-			(4937, 5053, WithinSegment, Accelerate),      // len: 116m
-			(5053, 5065, WithinSegment, Roll),            // len: 12m
-			(5065, 5099, WithinSegment, Accelerate),      // len: 34m
-			(5099, 5113, WithinSegment, Roll),            // len: 14m
-			(5113, 5227, WithinSegment, Accelerate),      // len: 114m
-			(5227, 5245, WithinSegment, Roll),            // len: 18m
-			(5245, 5364, WithinSegment, Accelerate),      // len: 119m
-			(5364, 5623, UseCase2, Roll),                 // len: 259m
-			(5623, 5841, WithinSegment, Coast),           // len: 218m
-			(5841, 6113, WithinSegment, Brake),           // len: 272m
-			(6113, 6225, WithinSegment, Coast),           // len: 112m
-			(6225, 6514, OutsideSegment, Coast),          // len: 289m
-			(6514, 1e6, OutsideSegment, Accelerate));
+			(4730, 4758, WithinSegment, Accelerate),      // len: 28m
+			(4758, 4765, WithinSegment, Roll),            // len: 7m
+			(4765, 4799, WithinSegment, Accelerate),      // len: 34m
+			(4799, 4804, WithinSegment, Roll),            // len: 5m
+			(4804, 4932, WithinSegment, Accelerate),      // len: 128m
+			(4932, 4939, WithinSegment, Roll),            // len: 7m
+			(4939, 5050, WithinSegment, Accelerate),      // len: 111m
+			(5050, 5062, WithinSegment, Roll),            // len: 12m
+			(5062, 5095, WithinSegment, Accelerate),      // len: 33m
+			(5095, 5109, WithinSegment, Roll),            // len: 14m
+			(5109, 5231, WithinSegment, Accelerate),      // len: 122m
+			(5231, 5250, WithinSegment, Roll),            // len: 19m
+			(5250, 5369, WithinSegment, Accelerate),      // len: 119m
+			(5369, 5618, UseCase2, Roll),                 // len: 249m
+			(5618, 5836, WithinSegment, Coast),           // len: 218m
+			(5836, 6120, WithinSegment, Brake),           // len: 284m
+			(6120, 6231, WithinSegment, Coast),           // len: 111m
+			(6231, 6520, OutsideSegment, Coast),          // len: 289m
+			(6520, 1e6, OutsideSegment, Accelerate));
 
 		[TestCase]
 		public void Class5_PCC123EcoRollEngineStop_CrestCoast1_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs
index edbf53336df8718c56455d4d1e65f1e7611d09d9..256e38698eba6bb72805912a126df20243d9fd79 100644
--- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs
+++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsHEV.cs
@@ -391,15 +391,30 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 
 		[TestCase]
 		public void Class5_PCC12_CaseJ_HEV() => TestPCC(MethodBase.GetCurrentMethod().Name,
-			(500, 3559, OutsideSegment, Accelerate),        // len: 3559m
+			(0, 3559, OutsideSegment, Accelerate),        // len: 3559m
 			(3559, 4563, WithinSegment, Accelerate),      // len: 1004m
-			(5146, 5342, WithinSegment, Accelerate),      // len: 196m
-			(5342, 5669, UseCase2, Coast),                // len: 327m
-			(5669, 5740, WithinSegment, Coast),           // len: 71m
-			(5740, 6113, WithinSegment, Brake),           // len: 373m
-			(6113, 6125, WithinSegment, Coast),           // len: 12m
-			(6125, 6398, OutsideSegment, Coast),          // len: 273m
-			(6398, 1e6, OutsideSegment, Accelerate));
+			(4563, 4582, WithinSegment, Roll),            // len: 19m
+			(4582, 4709, WithinSegment, Accelerate),      // len: 127m
+			(4709, 4723, WithinSegment, Roll),            // len: 14m
+			(4723, 4789, WithinSegment, Accelerate),      // len: 66m
+			(4789, 4800, WithinSegment, Roll),            // len: 11m
+			(4800, 4861, WithinSegment, Accelerate),      // len: 61m
+			(4861, 4870, WithinSegment, Roll),            // len: 9m
+			(4870, 4931, WithinSegment, Accelerate),      // len: 61m
+			(4931, 4940, WithinSegment, Roll),            // len: 9m
+			(4940, 5028, WithinSegment, Accelerate),      // len: 88m
+			(5028, 5040, WithinSegment, Roll),            // len: 12m
+			(5040, 5079, WithinSegment, Accelerate),      // len: 39m
+			(5079, 5093, WithinSegment, Roll),            // len: 14m
+			(5093, 5131, WithinSegment, Accelerate),      // len: 38m
+			(5131, 5147, WithinSegment, Roll),            // len: 16m
+			(5147, 5344, WithinSegment, Accelerate),      // len: 197m
+			(5344, 5671, UseCase2, Coast),                // len: 327m
+			(5671, 5730, WithinSegment, Coast),           // len: 59m
+			(5730, 6115, WithinSegment, Brake),           // len: 385m
+			(6115, 6400, OutsideSegment, Coast),          // len: 285m
+			(6400, 1e6, OutsideSegment, Accelerate));
+
 
 		[TestCase]
 		public void Class5_PCC12_CrestCoast1_HEV() => TestPCC(MethodBase.GetCurrentMethod().Name,
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs
index 2c545a2d642c0da382a41797292650ce84a20ff2..a0163adc0d30125727619fb8606ad0d5e92dea8a 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs
@@ -63,10 +63,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration
 			xmlInputReader = _kernel.Get<IXMLInputDataReader>();
 		}
 
-		[TestCase(null, 1.0, 45.605835, TestName = "Engine CF - NONE"),
-		TestCase("CFRegPer", 1.2, 45.605835 * 1.2, TestName = "Engine CF - CFRegPer"),
-		TestCase("BFColdHot", 1.2, 45.605835 * 1.2, TestName = "Engine CF - BFColdHod"),
-		TestCase("CFNCV", 1.2, 45.605835, TestName = "Engine CF - CFNCV")  // has no influence - only for documentation purpose
+		[TestCase(null, 1.0, 45.602745257853236d, TestName = "Engine CF - NONE"),
+		TestCase("CFRegPer", 1.2, 45.602745257853236d * 1.2, TestName = "Engine CF - CFRegPer"),
+		TestCase("BFColdHot", 1.2, 45.602745257853236d * 1.2, TestName = "Engine CF - BFColdHod"),
+		TestCase("CFNCV", 1.2, 45.602745257853236d, TestName = "Engine CF - CFNCV")  // has no influence - only for documentation purpose
 			]
 		public void TestEngineCorrectionFactors(string correctionFactor, double value, double expectedFc)
 		{
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs
index c5aef61c2f9fb2fdb95f80cda3911dbb3c563dc2..fe60239cf8c65b49c693855bbae9a497258a829e 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs
@@ -75,8 +75,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration
 		[
 		 TestCase(Class5NG, 2, TankSystem.Liquefied, 253.8, 703.2, TestName = "Class5 LNG 2"),
 		 TestCase(Class5NG, 2, TankSystem.Compressed, 259.7, 698.6 , TestName = "Class5 CNG 2"),
-		TestCase(Class5NG, 6, TankSystem.Liquefied, 253.3, 701.63, TestName = "Class5 LNG 6"),
-		TestCase(Class5NG, 6, TankSystem.Compressed, 259.1, 696.98, TestName = "Class5 CNG 6"),
+		TestCase(Class5NG, 6, TankSystem.Liquefied, 253.2, 701.46, TestName = "Class5 LNG 6"),
+		TestCase(Class5NG, 6, TankSystem.Compressed, 259.0, 696.81, TestName = "Class5 CNG 6"),
 			]
 		public void NaturalGasTankSystemTest(string filename, int runIdx, TankSystem tankSystem, double expectedFc, double expectedCo2)
 		{
diff --git a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
index 56114b7ed1cacb9a18305d46ffcaa392757856b1..79b9d6d565c556c54c3594c606f3b7110e5b914e 100644
--- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
@@ -260,13 +260,13 @@ namespace TUGraz.VectoCore.Tests.Integration
 			Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException)));
 			var view = new DataView(sumData.Table, "", SummaryDataContainer.Fields.SORT, DataViewRowState.CurrentRows).ToTable();
 			Console.WriteLine(string.Join("; ", view.Rows.Cast<DataRow>().Select(x => x[string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble())));
-			//201.36157699436848; 239.28934348331288; 169.78069143422488; 182.88228302807696; 220.0873665620844; 251.26047754498438
-			Assert.AreEqual(201.36157699436848, view.Rows[0][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(239.28934348331288, view.Rows[1][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(169.78069143422488, view.Rows[2][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(182.88228302807696, view.Rows[3][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(220.0873665620844, view.Rows[4][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(251.26047754498438, view.Rows[5][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			//201.3548642491803; 239.27885601652696; 169.7345262485087; 182.825905694444; 219.40786682729086; 250.54711559861258
+			Assert.AreEqual(201.3548642491803, view.Rows[0][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(239.27885601652696, view.Rows[1][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(169.7345262485087, view.Rows[2][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(182.825905694444, view.Rows[3][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(219.40786682729086, view.Rows[4][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(250.54711559861258, view.Rows[5][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
 		}
 
 		[TestCase(EngineSpeedLimitJobATDecl)]
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs
index 6ad0a6d25d3ece17af0183cc03e6b2dfaf2a15bb..c7671f3919645ff223523ceef0fb8e4ff2e4c4db 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/FactoryTest.cs
@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var run = factory.SimulationRuns().First();
 			var vehicleContainer = (VehicleContainer)run.GetContainer();
 
-			Assert.AreEqual(11, vehicleContainer.SimulationComponents().Count);
+			Assert.AreEqual(10, vehicleContainer.SimulationComponents().Count);
 
 			Assert.IsInstanceOf<Gearbox>(vehicleContainer.GearboxInfo, "gearbox not installed");
 			Assert.IsInstanceOf<CombustionEngine>(vehicleContainer.EngineInfo, "engine not installed");
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
index bbe9cd9cb8c8965c2de3b474228f11f4bb68af55..25c891c1ed8069b4ed71593edbace5cce9ad0924 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
@@ -440,10 +440,14 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 
 			var i = 0;
 
-			var t1 = 21;
-			var t2 = 14;
+			var t1 = 20;
+			var t2 = 9;
 			var t3 = 20;
 
+			Assert.AreEqual(19008.29074, data.First().Item2.Overload.OverloadBuffer.Value(), 1e-3);
+			Assert.AreEqual(100, data.First().Item2.Overload.ContinuousTorque.Value(), 1e-3);
+			Assert.AreEqual(3687.46233, data.First().Item2.Overload.ContinuousPowerLoss.Value(), 1e-3);
+
 			try {
 				// energy buffer is empty - overload is available
 				for (; i < t1; i++) {
@@ -451,7 +455,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 					var absTime = i * dt;
 
 					var response = motor.Request(absTime, dt, torque, speed);
-					Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2);
+					Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2, $"{i}");
 					motor.CommitSimulationStep(absTime, dt, modData);
 					modData[ModalResultField.time] = absTime;
 					modData.CommitSimulationStep();
@@ -465,7 +469,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 					var absTime = i * dt;
 
 					var response = motor.Request(absTime, dt, continuousTorque, speed);
-					Assert.AreEqual(-100, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2);
+					Assert.AreEqual(-100, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2, $"{i}");
 					motor.CommitSimulationStep(absTime, dt, modData);
 					modData[ModalResultField.time] = absTime;
 					modData.CommitSimulationStep();
@@ -478,7 +482,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 					var absTime = i * dt;
 
 					var response = motor.Request(absTime, dt, torque * 0.5, speed);
-					Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2);
+					Assert.AreEqual(-334.23, response.ElectricMotor.MaxDriveTorque.Value(), 1e-2, $"{i}");
 					motor.CommitSimulationStep(absTime, dt, modData);
 					modData[ModalResultField.time] = absTime;
 					modData.CommitSimulationStep();
diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
index ce852349cf92b83f6440b1b6923d7914d487ff0c..28c966f34c055f2e50cd1c369d4b043bad60488b 100644
--- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
@@ -596,8 +596,8 @@ namespace TUGraz.VectoCore.Tests.Reports
 					? 0.SI<Watt>()
 					: (Watt)row[ModalResultField.P_angle_loss.GetName()];
 				var pAxleIn = (Watt)row[ModalResultField.P_axle_in.GetName()];
-				var pLossRet = (Watt)row[ModalResultField.P_ret_loss.GetName()];
-				var pRetIn = (Watt)row[ModalResultField.P_retarder_in.GetName()];
+				var pLossRet = row[ModalResultField.P_ret_loss.GetName()] is DBNull ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_ret_loss.GetName()];
+				var pRetIn = row[ModalResultField.P_retarder_in.GetName()] is DBNull ? pAxleIn : (Watt)row[ModalResultField.P_retarder_in.GetName()];
 				var pGbxInertia = (Watt)row[ModalResultField.P_gbx_inertia.GetName()];
 				var pShiftLoss = row[ModalResultField.P_gbx_shift_loss.GetName()] is DBNull
 					? 0.SI<Watt>()
@@ -929,8 +929,8 @@ namespace TUGraz.VectoCore.Tests.Reports
 					? 0.SI<Watt>()
 					: (Watt)row[ModalResultField.P_angle_loss.GetName()];
 				var pAxleIn = (Watt)row[ModalResultField.P_axle_in.GetName()];
-				var pLossRet = (Watt)row[ModalResultField.P_ret_loss.GetName()];
-				var pRetIn = (Watt)row[ModalResultField.P_retarder_in.GetName()];
+				var pLossRet = row[ModalResultField.P_ret_loss.GetName()] is DBNull ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_ret_loss.GetName()];
+				var pRetIn = row[ModalResultField.P_retarder_in.GetName()] is DBNull ? pAxleIn : (Watt)row[ModalResultField.P_retarder_in.GetName()];
 				var pGbxInertia = (Watt)row[ModalResultField.P_gbx_inertia.GetName()];
 				var pShiftLoss = row[ModalResultField.P_gbx_shift_loss.GetName()] is DBNull
 					? 0.SI<Watt>()