diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
index 91e17a240c5e61f4b6ce7e201d4bcc45717d3160..b10be1b872608b53624e211d9141f6e023087fbf 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
@@ -80,9 +80,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 			var searchResult = SearchAlgorithm.Search(retVal, electricPower - elPwr.ElectricalPower,
 				interval: 10.SI<NewtonMeter>(),
-				getYValue: x => (Watt)x,
+				getYValue: x => (Watt)x - electricPower,
 				evaluateFunction: x => LookupElectricPower(voltage, avgSpeed, x, true).ElectricalPower,
-				criterion: x => ((Watt)x).Value()
+				criterion: x => ((Watt)x - electricPower).Value()
 			);
 
 			return searchResult;
diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
index fff7330b5f4ef65f141cab70210848663d01b52a..ea60ff7aae91bd7d6fd9a574374cdbc49e299a99 100644
--- a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
+++ b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
@@ -72,9 +72,10 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual("9.8449", pwr.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
 
 			var pwrMap = ElectricMotorMapReader.Create(pwr, 1);
-			Assert.AreEqual(-10171.0, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(0, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-298.4752, pwrMap.LookupElectricPower(1.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
-			Assert.AreEqual(-20430.186, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-20853.4819, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
         }
 
@@ -103,9 +104,10 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual("9.8449", pwrLow.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
 
 			var pwrMapLow = ElectricMotorMapReader.Create(pwrLow, 1);
-			Assert.AreEqual(-10171.0, pwrMapLow.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-0, pwrMapLow.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-298.4752, pwrMapLow.LookupElectricPower(1.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
-			Assert.AreEqual(-20430.186, pwrMapLow.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-20853.4819, pwrMapLow.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
 
 
@@ -126,9 +128,10 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual("8.86041", pwrHi.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
 
 			var pwrMap = ElectricMotorMapReader.Create(pwrHi, 1);
-			Assert.AreEqual(-9153.9, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(0, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-268.6277, pwrMap.LookupElectricPower(1.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
-			Assert.AreEqual(-18387.16730, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-18768.1337, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 		}
 
 		[TestCase()]
@@ -142,10 +145,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 
 
 			Assert.AreEqual(26, emData.DragCurve.Lookup(2000.RPMtoRad()).Value());
-			Assert.AreEqual(33, emData.DragCurve.Lookup(2000.RPMtoRad()).Value());
-			Assert.AreEqual(29.5, emData.DragCurve.Lookup(2000.RPMtoRad()).Value());
-			Assert.AreEqual(31.25, emData.DragCurve.Lookup(2000.RPMtoRad()).Value());
-
+			
 			var em = emData.EfficiencyData;
 
 			Assert.AreEqual(-334.2300, em.FullLoadDriveTorque(400.SI<Volt>(), 2000.RPMtoRad()).Value());
@@ -158,10 +158,17 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual(370.153, em.FullGenerationTorque(500.SI<Volt>(), 2000.RPMtoRad()).Value());
 			Assert.AreEqual(388.1145, em.FullGenerationTorque(550.SI<Volt>(), 2000.RPMtoRad()).Value());
 
-			Assert.AreEqual(-101.760, em.EfficiencyMapLookupTorque(400.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
-            Assert.AreEqual(-115.1818, em.EfficiencyMapLookupTorque(600.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
-            Assert.AreEqual(14.5383, em.EfficiencyMapLookupTorque(500.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
-            Assert.AreEqual(14.5383, em.EfficiencyMapLookupTorque(550.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
+            Assert.AreEqual(-101.70072, em.EfficiencyMapLookupTorque(400.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
+			Assert.AreEqual(-25000, em.LookupElectricPower(400.SI<Volt>(), 2000.RPMtoRad(), -101.70072.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-1);
+
+			Assert.AreEqual(-114.51788, em.EfficiencyMapLookupTorque(600.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
+			Assert.AreEqual(-25000, em.LookupElectricPower(600.SI<Volt>(), 2000.RPMtoRad(), -114.51788.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-1);
+
+			Assert.AreEqual(-107.772009, em.EfficiencyMapLookupTorque(500.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
+			Assert.AreEqual(-25000, em.LookupElectricPower(500.SI<Volt>(), 2000.RPMtoRad(), -107.772009.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-1);
+
+			Assert.AreEqual(-111.053784, em.EfficiencyMapLookupTorque(550.SI<Volt>(), -25000.SI<Watt>(), 2000.RPMtoRad(), -300.SI<NewtonMeter>()).Value(), 1e-3);
+			Assert.AreEqual(-25000, em.LookupElectricPower(550.SI<Volt>(), 2000.RPMtoRad(), -111.053784.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-1);
 
 		}
 
@@ -192,9 +199,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual("9.8449", pwr.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
 
 			var pwrMap = ElectricMotorMapReader.Create(pwr, 2);
-			Assert.AreEqual(-5816.6, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(0, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-147.2105, pwrMap.LookupElectricPower(1.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+
 
-			Assert.AreEqual(-16170.5166, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+			Assert.AreEqual(-16412.2624, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
         }
 
diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs
index 5e3c0639d4a77e09646e9e5bf44b6621b5c274d9..a76168ec48d425f9577c3d0d0cca0f2d838ee66c 100644
--- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs
+++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsConventional.cs
@@ -1031,8 +1031,8 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(3410, 3468, OutsideSegment, Coast),          // len: 58m
 			(3468, 3854, OutsideSegment, Roll),           // len: 386m
 			(3854, 3864, OutsideSegment, Brake),          // len: 10m
-			(3864, 3884, OutsideSegment, Coast),          // len: 20m
-			(3884, 5012, OutsideSegment, Brake),          // len: 1128m
+			(3864, 3915, OutsideSegment, Coast),          // len: 20m
+			(3915, 5012, OutsideSegment, Brake),          // len: 1128m
 			(5012, 5420, OutsideSegment, Coast),          // len: 408m
 			(5420, 1e6, OutsideSegment, Accelerate));
 
@@ -1232,9 +1232,9 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 		public void Class5_PCC123EcoRollEngineStop_CaseA_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
 			(0, 4025, OutsideSegment, Accelerate),        // len: 4025m
 			(4025, 5309, WithinSegment, Accelerate),      // len: 1284m
-			(5309, 5908, UseCase1, Roll),                 // len: 599m
-			(5908, 5932, OutsideSegment, Coast),          // len: 24m
-			(5932, 1e6, OutsideSegment, Accelerate));
+			(5309, 5920, UseCase1, Roll),                 // len: 599m
+			//(5920, 5932, OutsideSegment, Coast),          // len: 24m
+			(5920, 1e6, OutsideSegment, Accelerate));
 
 		[TestCase]
 		public void Class5_PCC123EcoRollEngineStop_CaseB_Conventional() => TestPCC(MethodBase.GetCurrentMethod().Name,
@@ -1243,7 +1243,7 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(5216, 6698, UseCase1, Roll),                 // len: 1482m
 			(6698, 6757, WithinSegment, Coast),           // len: 59m
 			(6757, 7158, WithinSegment, Roll),            // len: 401m
-			(7158, 7170, WithinSegment, Brake),           // len: 12m
+			//(7158, 7170, WithinSegment, Brake),           // len: 12m
 			(7170, 7552, WithinSegment, Coast),           // len: 382m
 			(7552, 7912, OutsideSegment, Coast),          // len: 360m
 			(7912, 1e6, OutsideSegment, Accelerate));
@@ -1370,8 +1370,8 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(3410, 3468, OutsideSegment, Coast),          // len: 58m
 			(3468, 3854, OutsideSegment, Roll),           // len: 386m
 			(3854, 3864, OutsideSegment, Brake),          // len: 10m
-			(3864, 3884, OutsideSegment, Coast),          // len: 20m
-			(3884, 5012, OutsideSegment, Brake),          // len: 1128m
+			(3864, 3915, OutsideSegment, Coast),          // len: 20m
+			(3915, 5012, OutsideSegment, Brake),          // len: 1128m
 			(5012, 5420, OutsideSegment, Coast),          // len: 408m
 			(5420, 1e6, OutsideSegment, Accelerate));
 
diff --git a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsPEV.cs b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsPEV.cs
index 39251c77028b1d30074beb826b36537dbaa4e58e..e287cf0ee70a30149660b1e24bbfae910c4d9988 100644
--- a/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsPEV.cs
+++ b/VectoCore/VectoCoreTest/Integration/ADAS/ADASTestsPEV.cs
@@ -132,19 +132,19 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4837, 4845, OutsideSegment, Roll),           // len: 8m
 			(4845, 4881, OutsideSegment, Accelerate),     // len: 36m
 			(4881, 4887, OutsideSegment, Roll),           // len: 6m
-			(4887, 4903, OutsideSegment, Accelerate),     // len: 16m
-			(4903, 4909, OutsideSegment, Roll),           // len: 6m
-			(4909, 5041, OutsideSegment, Accelerate),     // len: 46m
+			(4887, 4900, OutsideSegment, Accelerate),     // len: 16m
+			(4900, 4905, OutsideSegment, Roll),           // len: 6m
+			(4905, 5082, OutsideSegment, Accelerate),     // len: 46m
             //(4955, 5041, OutsideSegment, Roll),           // len: 7m
                                                           //(4962, 4983, OutsideSegment, Accelerate),     // len: 21m
                                                           //(4983, 4991, OutsideSegment, Roll),           // len: 8m
                                                           //(4991, 5015, OutsideSegment, Accelerate),     // len: 24m
                                                           //(5015, 5025, OutsideSegment, Roll),           // len: 10m
-            (5041, 5054, OutsideSegment, Roll),     // len: 28m
-            (5054, 5087, OutsideSegment, Accelerate),           // len: 12m
-            (5087, 5102, OutsideSegment, Roll),     // len: 392m
-			(5102, 5437, OutsideSegment, Accelerate),
-			(5437, 5532, OutsideSegment, Coast),          // len: 107m
+            (5082, 5097, OutsideSegment, Roll),     // len: 28m
+            (5097, 5135, OutsideSegment, Accelerate),           // len: 12m
+            (5135, 5152, OutsideSegment, Roll),     // len: 392m
+			(5152, 5431, OutsideSegment, Accelerate),
+			(5431, 5537, OutsideSegment, Coast),          // len: 107m
 			(5564, 6084, OutsideSegment, Brake)          // len: 517m
 			//(6081, 6366, OutsideSegment, Coast),          // len: 285m
 			//(6366, 1e6, OutsideSegment, Accelerate)
@@ -152,18 +152,18 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 
 		[TestCase]
 		public void Class5_E2_NoADAS_CrestCoast1() => TestPCC(MethodBase.GetCurrentMethod().Name.Split('_').Slice(0, -1).Join("_"), MethodBase.GetCurrentMethod().Name.Split('_').Last(),
-			(0, 0, OutsideSegment, Halt),                 // len: 0m
-			(0, 13, OutsideSegment, Accelerate),          // len: 13m
-			(13, 18, OutsideSegment, Roll),               // len: 5m
-			(18, 36, OutsideSegment, Accelerate),         // len: 18m
-			(36, 43, OutsideSegment, Roll),               // len: 7m
-			(43, 78, OutsideSegment, Accelerate),         // len: 35m
-			(78, 87, OutsideSegment, Roll),               // len: 9m
-			(87, 169, OutsideSegment, Accelerate),        // len: 82m
-			(169, 182, OutsideSegment, Roll),             // len: 13m
-			(182, 278, OutsideSegment, Accelerate),       // len: 96m
-			(278, 295, OutsideSegment, Roll),             // len: 17m
-			(295, 3809, OutsideSegment, Accelerate),      // len: 3514m
+			//(0, 0, OutsideSegment, Halt),                 // len: 0m
+			//(0, 13, OutsideSegment, Accelerate),          // len: 13m
+			//(13, 18, OutsideSegment, Roll),               // len: 5m
+			//(18, 36, OutsideSegment, Accelerate),         // len: 18m
+			//(36, 43, OutsideSegment, Roll),               // len: 7m
+			//(43, 78, OutsideSegment, Accelerate),         // len: 35m
+			//(78, 87, OutsideSegment, Roll),               // len: 9m
+			//(87, 169, OutsideSegment, Accelerate),        // len: 82m
+			//(169, 182, OutsideSegment, Roll),             // len: 13m
+			//(182, 278, OutsideSegment, Accelerate),       // len: 96m
+			//(278, 295, OutsideSegment, Roll),             // len: 17m
+			(500, 3809, OutsideSegment, Accelerate),      // len: 3514m
 			(3809, 4568, OutsideSegment, Coast),          // len: 759m
 			(4568, 5001, OutsideSegment, Brake),          // len: 433m
 			(5001, 5408, OutsideSegment, Coast),          // len: 407m
@@ -183,7 +183,7 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			//(169, 182, OutsideSegment, Roll),             // len: 13m
 			//(182, 278, OutsideSegment, Accelerate),       // len: 96m
 			//(278, 295, OutsideSegment, Roll),             // len: 17m
-			(442, 3615, OutsideSegment, Accelerate),      // len: 3320m
+			(500, 3615, OutsideSegment, Accelerate),      // len: 3320m
 			(3615, 4248, OutsideSegment, Coast),          // len: 633m
 			(4248, 4509, OutsideSegment, Brake),          // len: 261m
 			(4509, 4717, OutsideSegment, Coast),          // len: 208m
@@ -280,19 +280,21 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4837, 4845, WithinSegment, Roll),            // len: 8m
 			(4845, 4881, WithinSegment, Accelerate),      // len: 36m
 			(4881, 4887, WithinSegment, Roll),            // len: 6m
-			(4887, 4903, WithinSegment, Accelerate),      // len: 16m
-			(4903, 4909, WithinSegment, Roll),            // len: 6m
-			(4909, 5041, WithinSegment, Accelerate),      // len: 46m
-			(5041, 5054, WithinSegment, Roll),            // len: 7m
-			(5054, 5087, WithinSegment, Accelerate),      // len: 21m
-			(5087, 5102, WithinSegment, Roll),            // len: 8m
+			(4887, 4900, WithinSegment, Accelerate),      // len: 16m
+			(4900, 4905, WithinSegment, Roll),            // len: 6m
+			(4905, 5082, WithinSegment, Accelerate),      // len: 46m
+            (5082, 5097, WithinSegment, Roll),            // len: 7m
+            (5097, 5135, WithinSegment, Accelerate),      // len: 21m
+            (5135, 5152, WithinSegment, Roll),            // len: 8m
 			//(4991, 5015, WithinSegment, Accelerate),      // len: 24m
 			//(5015, 5025, WithinSegment, Roll),            // len: 10m
 			//(5025, 5053, WithinSegment, Accelerate),      // len: 28m
 			//(5053, 5065, WithinSegment, Roll),            // len: 12m
-			(5102, 5356, WithinSegment, Accelerate),      // len: 291m
+			(5152, 5356, WithinSegment, Accelerate),      // len: 291m
 			(5356, 5684, UseCase2, Coast),                // len: 328m
-			(5684, 6135, WithinSegment, Coast),           // len: 451m
+			(5684, 6010, WithinSegment, Coast),           // len: 451m
+			(6010, 6072, WithinSegment, Brake),           // len: 451m
+			(6072, 6135, WithinSegment, Coast),           // len: 451m
 			(6135, 6473, OutsideSegment, Coast),          // len: 338m
 			(6473, 1e6, OutsideSegment, Accelerate));
 
@@ -309,7 +311,7 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			//(169, 182, OutsideSegment, Roll),             // len: 13m
 			//(182, 278, OutsideSegment, Accelerate),       // len: 96m
 			//(278, 295, OutsideSegment, Roll),             // len: 17m
-			(422, 3809, OutsideSegment, Accelerate),      // len: 3514m
+			(500, 3809, OutsideSegment, Accelerate),      // len: 3514m
 			(3809, 4568, OutsideSegment, Coast),          // len: 759m
 			(4568, 5001, OutsideSegment, Brake),          // len: 433m
 			(5001, 5408, OutsideSegment, Coast),          // len: 407m
@@ -329,7 +331,7 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			//(169, 182, OutsideSegment, Roll),             // len: 13m
 			//(182, 278, OutsideSegment, Accelerate),       // len: 96m
 			//(278, 295, OutsideSegment, Roll),             // len: 17m
-			(422, 3615, OutsideSegment, Accelerate),      // len: 3320m
+			(500, 3615, OutsideSegment, Accelerate),      // len: 3320m
 			(3615, 4248, OutsideSegment, Coast),          // len: 633m
 			(4248, 4509, OutsideSegment, Brake),          // len: 261m
 			(4509, 4717, OutsideSegment, Coast),          // len: 208m
@@ -433,17 +435,17 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			(4837, 4845, WithinSegment, Roll),            // len: 8m
 			(4845, 4881, WithinSegment, Accelerate),      // len: 36m
 			(4881, 4887, WithinSegment, Roll),            // len: 6m
-			(4887, 4903, WithinSegment, Accelerate),      // len: 16m
-			(4903, 4909, WithinSegment, Roll),            // len: 6m
-			(4909, 5041, WithinSegment, Accelerate),      // len: 46m
-            (5041, 5054, WithinSegment, Roll),            // len: 7m
-            (5054, 5087, WithinSegment, Accelerate),      // len: 21m
-            (5087, 5102, WithinSegment, Roll),            // len: 8m
+			(4887, 4900, WithinSegment, Accelerate),      // len: 16m
+			(4900, 4905, WithinSegment, Roll),            // len: 6m
+			(4905, 5082, WithinSegment, Accelerate),      // len: 46m
+            (5082, 5097, WithinSegment, Roll),            // len: 7m
+            (5097, 5135, WithinSegment, Accelerate),      // len: 21m
+            (5135, 5152, WithinSegment, Roll),            // len: 8m
 			//(4991, 5015, WithinSegment, Accelerate),      // len: 24m
 	          //(5015, 5025, WithinSegment, Roll),            // len: 10m
 	          //(5025, 5053, WithinSegment, Accelerate),      // len: 28m
 	          //(5053, 5065, WithinSegment, Roll),            // len: 12m
-            (5065, 5356, WithinSegment, Accelerate),      // len: 291m
+            (5152, 5356, WithinSegment, Accelerate),      // len: 291m
 			(5356, 5684, UseCase2, Coast),                // len: 328m
 			(5684, 5755, WithinSegment, Coast),           // len: 71m
 			(5755, 6080, WithinSegment, Brake),           // len: 325m
@@ -464,7 +466,7 @@ namespace TUGraz.VectoCore.Tests.Integration.ADAS
 			//(169, 182, OutsideSegment, Roll),             // len: 13m
 			//(182, 278, OutsideSegment, Accelerate),       // len: 96m
 			//(278, 295, OutsideSegment, Roll),             // len: 17m
-			(422, 3809, OutsideSegment, Accelerate),      // len: 3514m
+			(500, 3809, OutsideSegment, Accelerate),      // len: 3514m
 			(3809, 4568, OutsideSegment, Coast),          // len: 759m
 			(4568, 5001, OutsideSegment, Brake),          // len: 433m
 			(5001, 5408, OutsideSegment, Coast),          // len: 407m
diff --git a/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs b/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs
index 73d27a4a754efa732b8ab124d30c565bb522631a..2d5182ad5d4742fc932298ee4b4b8e571802b233 100644
--- a/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs
+++ b/VectoCore/VectoCoreTest/Integration/AMTShiftStrategyTests.cs
@@ -37,7 +37,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 		//	RunJob_DeclSingle(jobName, 9);
 		//}
 
-		public void RunJob_DeclSingle(string jobName, int runIdx)
+        public void RunJob_DeclSingle(string jobName, int runIdx)
 		{
 			var relativeJobPath = jobName;
 			var writer = new FileOutputWriter(relativeJobPath);
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs
index 83f6dc0b74b0c029d96daadd99b499c06260b1d7..09c976b8f6216edaeda053c67befee98795be010 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs
@@ -74,8 +74,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.64, TestName = "Class5 LNG 6"),
-		TestCase(Class5NG, 6, TankSystem.Compressed, 259.1, 696.99, TestName = "Class5 CNG 6"),
+		TestCase(Class5NG, 6, TankSystem.Liquefied, 253.2, 701.43, TestName = "Class5 LNG 6"),
+		TestCase(Class5NG, 6, TankSystem.Compressed, 259.0, 696.78, 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 9449a675a886eafe6928c8b8c4157e62ca1b9da5..6cc856913e867c5980f3ac1b39b2538e7b3f6d6f 100644
--- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
@@ -263,12 +263,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.AsEnumerable().Select(x => x[string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble())));
-			Assert.AreEqual(201.34762, view.Rows[0][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			//201.361576994368; 239.289343483313; 169.755876536437; 182.846813110234; 219.963573213321; 251.22381935842
+			Assert.AreEqual(201.36157, view.Rows[0][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
 			Assert.AreEqual(239.28934, view.Rows[1][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(169.94310, view.Rows[2][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(182.88093, view.Rows[3][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(221.72701, view.Rows[4][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
-			Assert.AreEqual(251.83813, view.Rows[5][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(169.75587, view.Rows[2][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(182.84681, view.Rows[3][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(219.96357, view.Rows[4][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
+			Assert.AreEqual(251.22381, view.Rows[5][string.Format(SummaryDataContainer.Fields.FCMAP_KM, "")].ToString().ToDouble(), 1e-3);
 		}
 
 		[TestCase(EngineSpeedLimitJobATDecl)]
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
index fce37835bec5d61e96b89c4fb634ccaf569561df..f6da8e1e92b7e8f95d3adeffabf92461feb4650d 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs
@@ -36,13 +36,13 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
 		}
 
-		[TestCase(100, 100, -1479.601019),
-		 TestCase(100, 30, -494.148831),
-		 TestCase(100, 300, -5033.132712),
-		 TestCase(600, 100, -7290.510011),
-		 TestCase(600, 300, -21431.717255),
-		 TestCase(800, -100, 7178.770573),
-		 TestCase(800, -300, 22444.155535)]
+		[TestCase(100, 100, -1484.401151),
+		 TestCase(100, 30, -498.336701),
+		 TestCase(100, 300, -5058.393920),
+		 TestCase(600, 100, -7292.591952),
+		 TestCase(600, 300, -21459.016866),
+		 TestCase(800, -100, 7174.730264),
+		 TestCase(800, -300, 22354.108093)]
 		public void ElectricMotorOnlyRequestTest(double speed, double torque, double expectedBatteryPower)
 		{
 			var container = new MockVehicleContainer();
@@ -83,13 +83,13 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			Assert.IsTrue(response.ElectricSystem.ConsumerPower.Value() < enginePower.Value());
 		}
 
-		[TestCase(100, 100, -1557.958914),
-		 TestCase(100, 30, -514.409252),
-		 TestCase(100, 300, -5354.8590277),
-		 TestCase(600, 100, -7634.931063),
-		 TestCase(600, 300, -22551.5067289),
-		 TestCase(800, -100, 6899.830573),
-		 TestCase(800, -300, 21495.107228)]
+		[TestCase(100, 100, -1566.457317),
+		 TestCase(100, 30, -519.553356),
+		 TestCase(100, 300, -5395.304809),
+		 TestCase(600, 100, -7653.267447),
+		 TestCase(600, 300, -22631.653148),
+		 TestCase(800, -100, 6785.258050),
+		 TestCase(800, -300, 21273.378603)]
 		public void ElectricMotorOnlyRequestTestMechLoss(double speed, double torque, double expectedBatteryPower)
 		{
 			var container = new MockVehicleContainer();
@@ -130,12 +130,12 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			Assert.IsTrue(response.ElectricSystem.ConsumerPower.Value() < enginePower.Value());
 		}
 
-		[TestCase(100, 100, -30, -494.148831),
-		TestCase(100, 300, -150, -2265.054223),
-		TestCase(600, 100, 100, 5368.366615),
-		TestCase(600, 300, -50, -3926.835416),
-		TestCase(800, -100, 200, 14945.984737),
-		TestCase(800, -300, 200, 14945.984737),]
+		[TestCase(100, 100, -30, -498.33670),
+		TestCase(100, 300, -150, -2273.504629),
+		TestCase(600, 100, 100, 5367.264248),
+		TestCase(600, 300, -50, -3925.642046),
+		TestCase(800, -100, 200, 14907.629627),
+		TestCase(800, -300, 200, 14907.629627),]
 		public void ElectricMotorAssistingRequestTest(double speed, double torque, double electricTorque, double expectedBatteryPower)
 		{
 			var container = new MockVehicleContainer();
@@ -181,12 +181,12 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			Assert.IsTrue(response.ElectricSystem.ConsumerPower.Value() < response.ElectricMotor.ElectricMotorPowerMech.Value());
 		}
 
-		[TestCase(100, 100, -30, -514.409252),
-		TestCase(100, 300, -150, -2393.422644),
-		TestCase(600, 100, 100, 5089.426615),
-		TestCase(600, 300, -50, -4095.4354163),
-		TestCase(800, -100, 200, 14414.8247370),
-		TestCase(800, -300, 200, 14414.8247370),]
+		[TestCase(100, 100, -30, -519.553356),
+		TestCase(100, 300, -150, -2407.931677),
+		TestCase(600, 100, 100, 5075.160087),
+		TestCase(600, 300, -50, -4102.198874),
+		TestCase(800, -100, 200, 14165.993213),
+		TestCase(800, -300, 200, 14165.993213),]
 		public void ElectricMotorAssistingRequestTestMechLoss(double speed, double torque, double electricTorque, double expectedBatteryPower)
 		{
 			var container = new MockVehicleContainer();
@@ -287,12 +287,12 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			battery.CommitSimulationStep(absTime, dt, modData);
 		}
 
-		[TestCase(0.5, 100, 100, -1479.601019, 2.674905),
-		TestCase(0.5, 100, 300, -5033.132712, 31.224759),
-		TestCase(0.5, 600, 100, -7290.510011, 65.884061),
-		TestCase(0.5, 600, 300, -21431.717255, 590.431866),
-		TestCase(0.5, 800, -100, 7178.770573, 61.667578),
-		TestCase(0.5, 800, -300, 22444.155535, 581.889779)
+		[TestCase(0.5, 100, 100, -1484.401151, 2.69232),
+		TestCase(0.5, 100, 300, -5058.393920, 31.54095),
+		TestCase(0.5, 600, 100, -7292.591952, 65.92202),
+		TestCase(0.5, 600, 300, -21459.016866, 591.97964),
+		TestCase(0.5, 800, -100, 7174.730264, 61.59876),
+		TestCase(0.5, 800, -300, 22354.108093, 577.346990)
 		]
 		public void ElectricMotorOnlyWithBatteryRequestTest(double initialSoc, double speed, double torque, double expectedBatteryPower, double expectedBatteryLoss)
 		{
@@ -401,7 +401,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var i = 0;
 
 			var t1 = 21;
-			var t2 = 13;
+			var t2 = 14;
 			var t3 = 20;
 
 			try {
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs
index e1759afd92b0d22691eb405916c7bc53d41645dc..298d539c57724dd8c80a8a5b210fd7f5a4ef1224 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs
@@ -23,10 +23,10 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData {
 		}
 
 		
-		[TestCase(-10000, 700, -120.6737), // EM drive has negative torque and thus negative electric power
-		TestCase(-20000, 1200, -141.5367),
-		TestCase(10000, 700, 153.5121),
-		TestCase(20000, 1200, 177.4109)]
+		[TestCase(-10000, 700, -118.916545), // EM drive has negative torque and thus negative electric power
+		TestCase(-20000, 1200, -141.451404),
+		TestCase(10000, 700, 155.046977),
+		TestCase(20000, 1200, 177.530544)]
 		public void TestLookupTorqueForBatPower(double batPwr, double emSpeed, double expectedTq)
 		{
 			var inputProvider =
diff --git a/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs
index c0331eab1a7aba44d01841baf940925d46c274eb..8bbb6b9db598474954cd4aa2b882facc9e01ed43 100644
--- a/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs
@@ -1200,6 +1200,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = 0.SI<Watt>();
@@ -1237,6 +1238,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = 0.SI<Watt>();
@@ -1279,6 +1281,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = 0.SI<Watt>();
@@ -1380,7 +1383,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
-
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = 0.SI<Watt>();
@@ -1418,6 +1421,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = 0.SI<Watt>();
@@ -1460,6 +1464,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = 0.SI<Watt>();
@@ -2227,6 +2232,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 
 				// WHR
@@ -2270,6 +2276,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				// WHR
 				modData[ModalResultField.P_WHR_el_corr] = P_WHR;
@@ -2501,6 +2508,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = 120.SI<Watt>() * emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = 120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				modData[ModalResultField.P_reess_int] = P_bat;
 				modData[ModalResultField.P_reess_terminal] = P_bat * (P_bat < 0 ? batEff : 1/batEff);
@@ -2551,6 +2559,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 				modData[ModalResultField.P_EM_electricMotor_el_, emPos] = -120.SI<Watt>() / emEff;
 				modData[ModalResultField.P_EM_mech_, emPos] = -120.SI<Watt>();
+				modData[ModalResultField.EM_Off_, emPos] = 0.SI<Scalar>();
 
 				modData[ModalResultField.P_reess_int] = P_bat;
 				modData[ModalResultField.P_reess_terminal] = P_bat * (P_bat < 0 ? batEff : 1 / batEff);
diff --git a/VectoCore/VectoCoreTest/XML/XMLWritingTest.cs b/VectoCore/VectoCoreTest/XML/XMLWritingTest.cs
index 44e26ea93718324461a98dd1abccbb16caf2970b..e5ba6ea7cfe7aeb1aa654a47819740b4fe25b594 100644
--- a/VectoCore/VectoCoreTest/XML/XMLWritingTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLWritingTest.cs
@@ -102,7 +102,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			var xml = xmlInputReader.CreateEngineering(outFile);
 
 			Assert.IsNotNull(xml);
-			Assert.AreEqual("325kW 12.7l Engine", xml.JobInputData.JobName);
+			Assert.AreEqual("N/A N/A", xml.JobInputData.JobName);
 		}
 
 		[Category("LongRunning")]
@@ -118,7 +118,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			var xml = xmlInputReader.CreateEngineering(outFile);
 
 			Assert.IsNotNull(xml);
-			Assert.AreEqual("325kW 12.7l Engine", xml.JobInputData.JobName);
+			Assert.AreEqual("N/A N/A", xml.JobInputData.JobName);
 		}
 
 		[Category("LongRunning")]
@@ -136,7 +136,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			var xml = xmlInputReader.CreateEngineering(Path.Combine(outDir, outFile));
 
 			Assert.IsNotNull(xml);
-			Assert.AreEqual("325kW 12.7l Engine", xml.JobInputData.JobName);
+			Assert.AreEqual("N/A N/A", xml.JobInputData.JobName);
 		}
 
 		[Category("LongRunning")]