diff --git a/VectoCore/VectoCore/Models/SimulationComponent/IAuxPort.cs b/VectoCore/VectoCore/Models/SimulationComponent/IAuxPort.cs
index 3574b1494107089a62144b209aa4483886bb713f..8ffddbf456c1cf2f3f9c42112a21cddca1f8df29 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/IAuxPort.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/IAuxPort.cs
@@ -49,9 +49,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent
 
 		NewtonMeter TorqueDemand(Second absTime, Second dt, NewtonMeter torquePowerTrain, PerSecond angularSpeed, bool dryRun = false);
 
-		Watt PowerDemandEngineOn(Second time, Second simulationInterval, PerSecond engineSpeed);
+		Watt PowerDemandESSEngineOn(Second time, Second simulationInterval, PerSecond engineSpeed);
 
 
-		Watt PowerDemandEngineOff(Second absTime, Second dt);
+		Watt PowerDemandESSEngineOff(Second absTime, Second dt);
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index 4cda44042f6f7989a09b001ca35aeffd8b444d4d..334cba46251a326d7868be32923877fdc1867b1a 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -119,12 +119,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			AdditionalAux?.Initialize(torque, angularSpeed);
 			DCDCConverter?.Initialize();
 			PreviousState.PowerDemand = GetBusAuxPowerDemand(0.SI<Second>(), 1.SI<Second>(), torque, angularSpeed) +
-										(AdditionalAux?.PowerDemandEngineOn(0.SI<Second>(), 1.SI<Second>(), angularSpeed) ?? 0.SI<Watt>());
+										(AdditionalAux?.PowerDemandESSEngineOn(0.SI<Second>(), 1.SI<Second>(), angularSpeed) ?? 0.SI<Watt>());
 			return PreviousState.PowerDemand / angularSpeed;
 		}
 
 
-		public NewtonMeter TorqueDemand(Second absTime, Second dt, NewtonMeter torquePowerTrain, PerSecond angularSpeed, bool dryRun = false)
+		public virtual NewtonMeter TorqueDemand(Second absTime, Second dt, NewtonMeter torquePowerTrain, PerSecond angularSpeed, bool dryRun = false)
 		{
 			CurrentState.AngularSpeed = angularSpeed;
 			CurrentState.dt = dt;
@@ -135,26 +135,55 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			signals.VehicleStopped = false; 
 
 			CurrentState.PowerDemand = GetBusAuxPowerDemand(absTime, dt, torquePowerTrain, angularSpeed, dryRun) +
-										(AdditionalAux?.PowerDemandEngineOn(0.SI<Second>(), 1.SI<Second>(), angularSpeed) ?? 0.SI<Watt>());
+										(AdditionalAux?.PowerDemandESSEngineOn(0.SI<Second>(), 1.SI<Second>(), angularSpeed) ?? 0.SI<Watt>());
 
 			var avgAngularSpeed = (CurrentState.AngularSpeed + PreviousState.AngularSpeed) / 2.0;
 			return CurrentState.PowerDemand / avgAngularSpeed;
 		}
 
-		public Watt PowerDemandEngineOn(Second time, Second simulationInterval, PerSecond engineSpeed)
+		public virtual Watt PowerDemandESSEngineOn(Second time, Second simulationInterval, PerSecond engineSpeed)
 		{
 			var signals = Auxiliaries.Signals;
-			signals.EngineStopped = false; 
-			signals.VehicleStopped = false;
+			signals.EngineStopped = false;
+			signals.VehicleStopped = DataBus.VehicleInfo.VehicleStopped;
+
+			var busAuxPwrICEOn = GetBusAuxPowerDemand(time, simulationInterval, 0.SI<NewtonMeter>(), engineSpeed, true);
+			var esICEOnLoad = Auxiliaries.ElectricPowerConsumerSum;
+
+			signals.EngineStopped = true;
+			var busAuxPwrICEOff = GetBusAuxPowerDemand(time, simulationInterval, 0.SI<NewtonMeter>(), engineSpeed, true);
+			var esICEOffLoad = Auxiliaries.ElectricPowerConsumerSum;
+
+			// if busAuxPwrICEOn and busAuxPwrICEOff are different the battery is empty and the mechanical power is the difference
+			// if both are equal we need to add the difference between ES ICE On and ES ICE Off power demand (the latter is corrected by ES correction) 
+			var esMech = (busAuxPwrICEOn - busAuxPwrICEOff).IsEqual(0)
+				? (esICEOnLoad - esICEOffLoad) / AuxCfg.ElectricalUserInputsConfig.AlternatorGearEfficiency /
+				AuxCfg.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>())
+				: 0.SI<Watt>();
+
+			return busAuxPwrICEOff + esMech - Auxiliaries.ElectricPowerDemandMech + (busAuxPwrICEOn - busAuxPwrICEOff) +
+					(AdditionalAux?.PowerDemandESSEngineOn(0.SI<Second>(), 1.SI<Second>(), engineSpeed) ??
+					0.SI<Watt>());
+		}
+
+		protected virtual Watt ComputePowerDemand(Second time, Second simulationInterval, PerSecond engineSpeed, bool includeESBaseLoad = true)
+		{
+			var signals = Auxiliaries.Signals;
+			//signals.EngineStopped = true;
+			//signals.VehicleStopped = DataBus.VehicleInfo.VehicleStopped;
+			var esBaseLoad = Auxiliaries.ElectricPowerConsumerSum;
+
+			//signals.EngineStopped = false; 
+			//signals.VehicleStopped = false;
 			var retVal =  GetBusAuxPowerDemand(time, simulationInterval, 0.SI<NewtonMeter>(), engineSpeed, true) +
-						(AdditionalAux?.PowerDemandEngineOn(0.SI<Second>(), 1.SI<Second>(), engineSpeed) ?? 0.SI<Watt>());
+						(AdditionalAux?.PowerDemandESSEngineOn(0.SI<Second>(), 1.SI<Second>(), engineSpeed) ?? 0.SI<Watt>());
 
 			if (!SmartElectricSystem) {
 				return retVal;
 			}
 
 			//var batteryPwr = ElectricStorage.SOC * AuxCfg.ElectricalUserInputsConfig.ElectricStorageCapacity / simulationInterval;
-			var esSum = Auxiliaries.ElectricPowerConsumerSum;
+			var esSum = Auxiliaries.ElectricPowerConsumerSum - esBaseLoad;
 			//if (batteryPwr < esSum) {
 				retVal += (esSum ) / AuxCfg.ElectricalUserInputsConfig.AlternatorGearEfficiency /
 						AuxCfg.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>());
@@ -163,40 +192,33 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			return retVal;
 		}
 
-		public Watt PowerDemandEngineOff(Second absTime, Second dt)
+		public virtual Watt PowerDemandESSEngineOff(Second absTime, Second dt)
 		{
 			
-			CurrentState.AngularSpeed = DataBus.EngineInfo.EngineIdleSpeed;
-			CurrentState.dt = dt;
+			//CurrentState.AngularSpeed = DataBus.EngineInfo.EngineIdleSpeed;
+			//CurrentState.dt = dt;
 
 			var signals = Auxiliaries.Signals;
 
-			//// set internal state of power demand as if ICE is on - multiplied by (1-ESS_UF) 
-			//signals.EngineStopped = false;
-			//signals.VehicleStopped = false;
-
-			//// get busaux PowerDemand without additional Auxiliaries first.
-			//var conventionalAux = AdditionalAux;
-			//AdditionalAux = null;
 			signals.EngineStopped = !DataBus.EngineCtl.CombustionEngineOn;
 			signals.VehicleStopped = DataBus.VehicleInfo.VehicleStopped;
 
 			var busAuxPowerDemand  = GetBusAuxPowerDemand(
-				absTime, dt, 0.SI<NewtonMeter>(), DataBus.EngineInfo.EngineIdleSpeed);
-			//AdditionalAux = conventionalAux;
-
-			CurrentState.PowerDemand = ((AdditionalAux?.PowerDemandEngineOn(absTime, dt, DataBus.EngineInfo.EngineIdleSpeed) ?? 0.SI<Watt>()) +
-										busAuxPowerDemand) * (1 - EngineStopStartUtilityFactor);
-			//CurrentState.ESPowerGeneratedICE_On = Auxiliaries.ElectricPowerGenerated;
-			//CurrentState.ESPowerMech = Auxiliaries.ElectricPowerDemandMech;
-			// 
-			
+				absTime, dt, 0.SI<NewtonMeter>(), DataBus.EngineInfo.EngineIdleSpeed) - Auxiliaries.ElectricPowerDemandMech;
+            //AdditionalAux = conventionalAux;
+
+            CurrentState.PowerDemand = ((AdditionalAux?.PowerDemandESSEngineOn(absTime, dt, DataBus.EngineInfo.EngineIdleSpeed) ?? 0.SI<Watt>()) +
+                                        busAuxPowerDemand) * (1 - EngineStopStartUtilityFactor);
+            //CurrentState.ESPowerGeneratedICE_On = Auxiliaries.ElectricPowerGenerated;
+            //CurrentState.ESPowerMech = Auxiliaries.ElectricPowerDemandMech;
+            // 
+
 
-			//busAuxPowerDemand = GetBusAuxPowerDemand(
-			//	absTime, dt, 0.SI<NewtonMeter>(), DataBus.EngineInfo.EngineIdleSpeed);
-			//AdditionalAux = conventionalAux;
+            //busAuxPowerDemand = GetBusAuxPowerDemand(
+            //	absTime, dt, 0.SI<NewtonMeter>(), DataBus.EngineInfo.EngineIdleSpeed);
+            //AdditionalAux = conventionalAux;
 
-			return EngineStopStartUtilityFactor * (busAuxPowerDemand + (AdditionalAux?.PowerDemandEngineOff(absTime, dt) ?? 0.SI<Watt>()));
+            return EngineStopStartUtilityFactor * (busAuxPowerDemand + (AdditionalAux?.PowerDemandESSEngineOff(absTime, dt) ?? 0.SI<Watt>()));
 		}
 
 
@@ -210,13 +232,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				essUtilityFactor = 1 - EngineStopStartUtilityFactor;
 			}
 
-			//var signals = Auxiliaries.Signals;
-			//signals.EngineStopped = !DataBus.IgnitionOn;
-			//signals.VehicleStopped = DataBus.VehicleStopped;
+            var signals = Auxiliaries.Signals;
+            signals.EngineStopped = !DataBus.EngineCtl.CombustionEngineOn;
+            signals.VehicleStopped = DataBus.VehicleInfo.VehicleStopped;
 
-			// cycleStep has to be called here and not in DoCommit, write is called before Commit!
-			//var oldSOC = Auxiliaries.BatterySOC;
-			Auxiliaries.CycleStep(CurrentState.dt, DataBus.EngineCtl.CombustionEngineOn ? 1.0 : EngineStopStartUtilityFactor);
+            // cycleStep has to be called here and not in DoCommit, write is called before Commit!
+            //var oldSOC = Auxiliaries.BatterySOC;
+            Auxiliaries.CycleStep(CurrentState.dt, DataBus.EngineCtl.CombustionEngineOn ? 1.0 : EngineStopStartUtilityFactor);
 			//var newSOC = Auxiliaries.BatterySOC;
 
 			//CurrentState.TotalFuelConsumption = Auxiliaries.TotalFuel;
@@ -249,7 +271,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 																			? Auxiliaries.ElectricPowerConsumerSum
 																			: Auxiliaries.ElectricPowerGenerated);
 					container[ModalResultField.P_busAux_ES_sum_mech] =
-						essUtilityFactor * (Auxiliaries.ElectricPowerConsumerSum - batteryPwr) /
+						essUtilityFactor * (Auxiliaries.ElectricPowerConsumerSum + batteryPwr) /
 						AuxCfg.ElectricalUserInputsConfig.AlternatorGearEfficiency /
 						AuxCfg.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>());
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index dbd298ab144b642db67b6501d8351b26174da6d3..fd4d86c13873aa0c53d4b5a34c27da1005453bfe 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -657,7 +657,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 			public bool EngineOn { get; set; }
 
-			public Watt AuxPowerEngineOff { get; set; }
+			//public Watt AuxPowerEngineOff { get; set; }
 		}
 
 		protected internal class CombustionEngineIdleController : LoggingObject, IIdleController
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
index 805ac1b940ac415aba9a970671a806b7dfb72495..0ceb2ce33e9ba04bd3fe0705d4fc930e74cc7f60 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			return 0.SI<NewtonMeter>();
 		}
 
-		public Watt PowerDemandEngineOff(Second absTime, Second dt)
+		public Watt PowerDemandESSEngineOff(Second absTime, Second dt)
 		{
 
 			var auxiliarieIgnoredDuringVehicleStop = new[] {
@@ -169,7 +169,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			return engineOffDemand;  //powerDemands.Sum(kv => kv.Value); 
 		}
 
-		public Watt PowerDemandEngineOn(Second absTime, Second dt, PerSecond engineSpeed)
+		public Watt PowerDemandESSEngineOn(Second absTime, Second dt, PerSecond engineSpeed)
 		{
 			return ComputePowerDemand(engineSpeed, absTime, dt, true);
 		}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
index 6fce8459ee66fee16f6d18ca6b1c9e3f970fa2c6..45e6fd86a036b4840970c0687642a2a9ced969fd 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
@@ -90,10 +90,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl {
 			CurrentState.EnginePower = 0.SI<Watt>();
 			CurrentState.dt = dt;
 
-			if (!dryRun) {
+			//if (!dryRun) {
 				//EngineAux.TorqueDemand(absTime, dt, 0.SI<NewtonMeter>(), 0.SI<NewtonMeter>(), ModelData.IdleSpeed);
-				CurrentState.AuxPowerEngineOff = EngineAux.PowerDemandEngineOff(absTime, dt);
-			} else {
+				//CurrentState.AuxPowerEngineOff = EngineAux.PowerDemandEngineOff(absTime, dt);
+			//} else {
+			if (dryRun) {
 				return new ResponseDryRun(this) {
 					DeltaFullLoad = 0.SI<Watt>(),
 					DeltaDragLoad = 0.SI<Watt>(),
@@ -113,6 +114,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl {
 				};
 			}
 
+			EngineAux?.TorqueDemand(absTime, dt, outTorque, outAngularVelocity, dryRun);
 			return new ResponseSuccess(this) {
 				Engine = {
 					TorqueOutDemand = outTorque,
@@ -182,11 +184,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl {
 
 			container[ModalResultField.ICEOn] = CurrentState.EngineOn;
 			
-			var auxDemandPwr = EngineAux.PowerDemandEngineOn(time, simulationInterval, ModelData.IdleSpeed);
-			var auxDemandTq = auxDemandPwr / ModelData.IdleSpeed;
+			var auxDemandPwrICEOn = EngineAux.PowerDemandESSEngineOn(time, simulationInterval, ModelData.IdleSpeed);
+			var auxDemandPwrICEOff = EngineAux.PowerDemandESSEngineOff(time, simulationInterval);
+			var auxDemandTq = auxDemandPwrICEOn / ModelData.IdleSpeed;
 			
-			container[ModalResultField.P_aux_ESS_mech_ice_off] = (CurrentState.AuxPowerEngineOff ?? 0.SI<Watt>());
-			container[ModalResultField.P_aux_ESS_mech_ice_on] = (auxDemandPwr ?? 0.SI<Watt>());
+			container[ModalResultField.P_aux_ESS_mech_ice_off] = (auxDemandPwrICEOff ?? 0.SI<Watt>());
+			container[ModalResultField.P_aux_ESS_mech_ice_on] = (auxDemandPwrICEOn ?? 0.SI<Watt>());
 
 			WriteWHRPowerEngineOff(container, ModelData.IdleSpeed, auxDemandTq);
 
diff --git a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs
index 7853613203473406d63b6476562b554c5084f62b..fe3104d983db62c3e2332eb9f0dd1c21e0dc2fec 100644
--- a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs
+++ b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs
@@ -1,14 +1,42 @@
-using System.IO;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
 using System.Linq;
 using Ninject;
 using NUnit.Framework;
 using NUnit.Framework.Internal;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
+using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.Models.BusAuxiliaries;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
+using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics;
+using TUGraz.VectoCore.Models.Connector.Ports.Impl;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Models.SimulationComponent;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
 using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Tests.Models.SimulationComponent;
+using TUGraz.VectoCore.Tests.Utils;
+using TUGraz.VectoCore.Utils;
+using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels;
 
 namespace TUGraz.VectoCore.Tests.Models.EngineeringMode
 {
@@ -41,6 +69,9 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode
 		const string JobFile_C3a = @"TestData\Hybrids\BusAuxEngineeringMode\InterurbanBus_ENG_BusAux_C3a.vecto";
 		const string JobFile_C3b = @"TestData\Hybrids\BusAuxEngineeringMode\InterurbanBus_ENG_BusAux_C3b.vecto";
 
+
+		private const string JobRoeck_BusAux_B =
+			@"J:\TE-Em\Emissionsmodelle\VECTO\Arbeitsordner\AAUX\Check bus aux electrical system configurations\System type B\Citybus_P0-APT-S-175kW-6.8l_B\Citybus_P0_B.vecto";
 		[
 		TestCase(JobFile, 0, TestName = "InterurbanBus ENG BusAux NonSmart Interurban"),
 		TestCase(JobFile, 1, TestName = "InterurbanBus ENG BusAux NonSmart Coach"),
@@ -80,10 +111,15 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode
 
 		TestCase(JobFile_C1, 0, TestName = "InterurbanBus ENG BusAux C1 Interurban"),
 
+		TestCase(JobRoeck_BusAux_B, 0, "dev", TestName = "Roeck Citybus P0 Type B"),
 		]
-		public void InterurbanBus_BusAuxTest(string jobFile, int runIdx)
+		public void InterurbanBus_BusAuxTest(string jobFile, int runIdx, string outPath = null)
 		{
-			var writer = new FileOutputWriter(jobFile);
+			var outFile = Path.Combine(Path.GetDirectoryName(jobFile), outPath, Path.GetFileName(jobFile));
+			if (!Directory.Exists(Path.GetDirectoryName(outFile))) {
+				Directory.CreateDirectory(Path.GetDirectoryName(outFile));
+			}
+			var writer = new FileOutputWriter(outFile);
 			var inputData = Path.GetExtension(jobFile) == ".xml"
 				? xmlInputReader.CreateDeclaration(jobFile)
 				//? new XMLDeclarationInputDataProvider(relativeJobPath, true)
@@ -114,5 +150,431 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode
 			jobContainer.Execute();
 			jobContainer.WaitFinished();
 		}
+
+
+		// ##########################################################
+
+		// Case B: Smart ES
+
+		// driving, ICE on, battery not empty
+		// driving, ICE on, battery empty
+		// driving, ICE off, battery not empty
+		// driving, ICE off, battery empty
+		// standstill, ICE on, battery not empty
+		// standstill, ICE on, battery empty
+		// standstill, ICE off, battery not empty
+		// standstill, ICE off, battery empty
+		// braking, battery not full
+		// braking, battery full
+
+		public const double AlternatorEfficiency = 0.7;
+		public const double DCDCEfficiency = 0.97;
+
+		public const double MaxAlternatorPower = 4000.0;
+
+		public const double I_Base = 25.0;
+		public const double I_ICEOff_dr = 20.0;
+		public const double I_ICEOff_stop = 10.0;
+
+		public const double P_aux_m_Base = 900;
+		public const double P_aux_m_ICEOff_dr = 750;
+		public const double P_aux_m_ICEOff_st = 300;
+
+		public const double PowernetVoltage = 28.3;
+		public const double P_ES_base = I_Base * PowernetVoltage;  // 707,5 W
+		public const double P_ES_ICEOff_dr = I_ICEOff_dr * PowernetVoltage; // 566 W
+		public const double P_ES_ICEOff_stop = I_ICEOff_stop * PowernetVoltage; // 283 W
+
+		public const double P_PS_off_600 = 524.3 / 0.97; //540.5154639 W
+		public const double P_PS_off_1000 = 775.75 / 0.97; // 799.742268 W
+
+		public static WattSecond ElectricStorageCapacity = 28.3.SI(Unit.SI.Watt.Hour).Cast<WattSecond>();
+
+		[TestCase(DrivingBehavior.Accelerating, true, 0,
+			P_aux_m_Base + P_PS_off_1000 + P_ES_base / AlternatorEfficiency, P_ES_base, P_ES_base, P_ES_base / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case A (1); driving, ICE on")]
+		[TestCase(DrivingBehavior.Accelerating, false, 0,
+			0, 0, P_ES_ICEOff_dr, 0, P_aux_m_ICEOff_dr + P_PS_off_600,
+			P_aux_m_Base + P_PS_off_600 + (P_ES_base - P_ES_ICEOff_dr) / AlternatorEfficiency,
+			TestName = "BusAux Case A (2); driving, ICE off")]
+		[TestCase(DrivingBehavior.Halted, true, 0,
+			P_aux_m_Base + P_PS_off_600 + P_ES_base / AlternatorEfficiency, P_ES_base, P_ES_base,
+			P_ES_base / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case A (3); standstill, ICE on")]
+		[TestCase(DrivingBehavior.Halted, false, 0,
+			0, 0, P_ES_ICEOff_stop, 0, P_aux_m_ICEOff_st + P_PS_off_600,
+			P_PS_off_600 + P_aux_m_Base + (P_ES_base - P_ES_ICEOff_stop) / AlternatorEfficiency,
+			TestName = "BusAux Case A (4); standstill, ICE off")]
+		[TestCase(DrivingBehavior.Braking, true, 0,
+			P_aux_m_Base + P_PS_off_1000 + P_ES_base / AlternatorEfficiency, P_ES_base, P_ES_base,
+			P_ES_base / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case A (5); braking, ICE on")]
+		public void TestBusAux_Case_A(DrivingBehavior drivingBehavior, bool iceOn, double batterySoC,
+			double P_auxMech_expected, double P_busAux_ES_gen_expected, double P_busAux_ES_consumer_sum_expected,
+			double P_busAux_ES_mech,
+			double P_aux_ESS_mech_ICE_off_expected, double P_aux_ESS_mech_ICE_on_expected)
+		{
+			TestBusAux_Casees(AlternatorType.Conventional, drivingBehavior, iceOn, batterySoC, P_auxMech_expected, P_busAux_ES_gen_expected, P_busAux_ES_consumer_sum_expected, P_busAux_ES_mech, P_aux_ESS_mech_ICE_off_expected, P_aux_ESS_mech_ICE_on_expected);
+		}
+
+
+		[TestCase(DrivingBehavior.Accelerating, true, 0.5,
+			P_aux_m_Base + P_PS_off_1000, 0, P_ES_base, 0, 0, 0,
+			TestName = "BusAux Case B (1); driving, ICE on, battery not empty")]
+		[TestCase(DrivingBehavior.Accelerating, true, 0,
+			P_aux_m_Base + P_PS_off_1000 + P_ES_base / AlternatorEfficiency, P_ES_base, P_ES_base,
+			P_ES_base / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case B (2); driving, ICE on, battery empty")]
+		[TestCase(DrivingBehavior.Accelerating, false, 0.5,
+			0, 0, P_ES_ICEOff_dr, 0, P_aux_m_ICEOff_dr + P_PS_off_600,
+			P_aux_m_Base + P_PS_off_600 + (P_ES_base - P_ES_ICEOff_dr) / AlternatorEfficiency,
+			TestName = "BusAux Case B (3); driving, ICE off, battery not empty")]
+		[TestCase(DrivingBehavior.Accelerating, false, 0,
+			0, 0, P_ES_ICEOff_dr, 0, P_aux_m_ICEOff_dr + P_PS_off_600,
+			P_aux_m_Base + P_PS_off_600 + (P_ES_base - P_ES_ICEOff_dr) / AlternatorEfficiency,
+			TestName = "BusAux Case B (4); driving, ICE off, battery empty")]
+		[TestCase(DrivingBehavior.Halted, true, 0.5,
+			P_aux_m_Base + P_PS_off_600, 0, P_ES_base, 0, 0, 0,
+			TestName = "BusAux Case B (5); standstill, ICE on, battery not empty")]
+		[TestCase(DrivingBehavior.Halted, true, 0,
+			P_aux_m_Base + P_PS_off_600 + P_ES_base / AlternatorEfficiency, P_ES_base, P_ES_base,
+			P_ES_base / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case B (6); standstill, ICE on, battery empty")]
+		[TestCase(DrivingBehavior.Halted, false, 0.5,
+			0, 0, P_ES_ICEOff_stop, 0, P_aux_m_ICEOff_st + P_PS_off_600,
+			P_PS_off_600 + P_aux_m_Base + (P_ES_base - P_ES_ICEOff_stop) / AlternatorEfficiency,
+			TestName = "BusAux Case B (7); standstill, ICE off, battery not empty")]
+		[TestCase(DrivingBehavior.Halted, false, 0,
+			0, 0, P_ES_ICEOff_stop, 0, P_aux_m_ICEOff_st + P_PS_off_600,
+			P_PS_off_600 + P_aux_m_Base + (P_ES_base - P_ES_ICEOff_stop) / AlternatorEfficiency,
+			TestName = "BusAux Case B (8); standstill, ICE off, battery empty")]
+		[TestCase(DrivingBehavior.Braking, true, 0.5,
+			P_aux_m_Base + P_PS_off_1000 + MaxAlternatorPower / AlternatorEfficiency, MaxAlternatorPower, P_ES_base,
+			MaxAlternatorPower / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case B (9); braking, ICE on, battery not full")]
+		[TestCase(DrivingBehavior.Braking, true, 1,
+			P_aux_m_Base + P_PS_off_1000 + P_ES_base / AlternatorEfficiency, P_ES_base, P_ES_base,
+			P_ES_base / AlternatorEfficiency, 0, 0,
+			TestName = "BusAux Case B (10); braking, ICE on, battery full")]
+		public void TestBusAux_Case_B(DrivingBehavior drivingBehavior, bool iceOn, double batterySoC,
+			double P_auxMech_expected, double P_busAux_ES_gen_expected, double P_busAux_ES_consumer_sum_expected,
+			double P_busAux_ES_mech,
+			double P_aux_ESS_mech_ICE_off_expected, double P_aux_ESS_mech_ICE_on_expected)
+		{
+			TestBusAux_Casees(AlternatorType.Smart, drivingBehavior, iceOn, batterySoC, P_auxMech_expected, P_busAux_ES_gen_expected, P_busAux_ES_consumer_sum_expected, P_busAux_ES_mech, P_aux_ESS_mech_ICE_off_expected, P_aux_ESS_mech_ICE_on_expected);
+		}
+
+		public void TestBusAux_Casees(AlternatorType alternatorType, DrivingBehavior drivingBehavior, bool iceOn,
+			double batterySoC,
+			double P_auxMech_expected, double P_busAux_ES_gen_expected, double P_busAux_ES_consumer_sum_expected,
+			double P_busAux_ES_mech,
+			double P_aux_ESS_mech_ICE_off_expected, double P_aux_ESS_mech_ICE_on_expected) 
+		{
+
+			var container = CreatePowerTrain(batterySoC, alternatorType);
+
+			container.VehicleStopped = drivingBehavior == DrivingBehavior.Halted;
+			container.VehicleSpeed = drivingBehavior == DrivingBehavior.Halted
+				? 0.KMPHtoMeterPerSecond()
+				: 30.KMPHtoMeterPerSecond();
+			container.DriverBehavior = drivingBehavior;
+			container.DrivingAction = drivingBehavior == DrivingBehavior.Halted
+				? DrivingAction.Halt
+				: (drivingBehavior == DrivingBehavior.Braking ? DrivingAction.Brake : DrivingAction.Accelerate);
+			container.EngineSpeed = drivingBehavior == DrivingBehavior.Halted ? 600.RPMtoRad() : 1000.RPMtoRad();
+			container.EngineCtl.CombustionEngineOn = iceOn;
+
+
+			var ice = container.Components.First(x => x is ICombustionEngine) as StopStartCombustionEngine;
+			Assert.NotNull(ice);
+
+			var modData = container.ModalData as ModalDataContainer;
+			Assert.NotNull(modData);
+
+			var absTime = 0.SI<Second>();
+			var dt = 1.SI<Second>();
+			IResponse response = null;
+			switch (drivingBehavior) {
+				case DrivingBehavior.Halted:
+					container.Gear = new GearshiftPosition(0);
+					ice.CombustionEngineOn = iceOn;
+					response = ice.Request(absTime, dt, 0.SI<NewtonMeter>(), 600.RPMtoRad(), false);
+					break;
+				case DrivingBehavior.Accelerating:
+				case DrivingBehavior.Driving:
+					container.Gear = new GearshiftPosition(3);
+					ice.CombustionEngineOn = iceOn;
+					response = ice.Request(absTime, dt, 0.SI<NewtonMeter>(), iceOn ? 1000.RPMtoRad() : 600.RPMtoRad(), false);
+					break;
+				case DrivingBehavior.Braking:
+					container.Gear = new GearshiftPosition(3);
+					container.BrakePower = 50e3.SI<Watt>();
+					ice.CombustionEngineOn = iceOn;
+					response = ice.Request(absTime, dt, 0.SI<NewtonMeter>(), iceOn ? 1000.RPMtoRad() : 600.RPMtoRad(), false);
+					break;
+				default:
+					throw new ArgumentOutOfRangeException(nameof(drivingBehavior), drivingBehavior, null);
+			}
+
+			Assert.NotNull(response);
+			Assert.IsAssignableFrom<ResponseSuccess>(response);
+			
+			container.CommitSimulationStep(absTime, dt);
+			modData.CommitSimulationStep();
+
+			Assert.AreEqual(1, modData.Data.Rows.Count);
+
+			var row = modData.Data.Rows[0];
+
+			Assert.AreEqual(iceOn, row.Field<bool>(ModalResultField.ICEOn.GetName()), ModalResultField.ICEOn.GetName());
+			Assert.AreEqual(P_auxMech_expected, row.Field<SI>(ModalResultField.P_aux_mech.GetName()).Value(), 1e-3, ModalResultField.P_aux_mech.GetName());
+			Assert.AreEqual(P_busAux_ES_gen_expected, row.Field<SI>(ModalResultField.P_busAux_ES_generated.GetName()).Value(), 1e-3, ModalResultField.P_busAux_ES_generated.GetName());
+			Assert.AreEqual(P_busAux_ES_consumer_sum_expected, row.Field<SI>(ModalResultField.P_busAux_ES_consumer_sum.GetName()).Value(), 1e-3, ModalResultField.P_busAux_ES_consumer_sum.GetName());
+			Assert.AreEqual(P_busAux_ES_consumer_sum_expected, row.Field<SI>(ModalResultField.P_busAux_ES_other.GetName()).Value(), 1e-3, ModalResultField.P_busAux_ES_other.GetName());
+			Assert.AreEqual(P_busAux_ES_mech, row.Field<SI>(ModalResultField.P_busAux_ES_sum_mech.GetName()).Value(), 1e-3, ModalResultField.P_busAux_ES_sum_mech.GetName());
+
+			Assert.AreEqual(P_aux_ESS_mech_ICE_off_expected, row.Field<SI>(ModalResultField.P_aux_ESS_mech_ice_off.GetName()).Value(), 1e-3, ModalResultField.P_aux_ESS_mech_ice_off.GetName());
+			Assert.AreEqual(P_aux_ESS_mech_ICE_on_expected, row.Field<SI>(ModalResultField.P_aux_ESS_mech_ice_on.GetName()).Value(), 1e-3, ModalResultField.P_aux_ESS_mech_ice_on.GetName());
+
+		}
+
+		public const string EngineFileHigh = @"TestData\Components\24t Coach_high.veng";
+
+		public static MockVehicleContainer CreatePowerTrain(double initialSoC, AlternatorType alternatorType)
+		{
+			//var gearboxData = CreateGearboxData();
+			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFileHigh, 6);
+            //var axleGearData = CreateAxleGearData();
+            var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
+            //var airdragData = CreateAirdragData();
+            //var driverData = CreateDriverData(AccelerationFile);
+
+            var cycleData = DrivingCycleDataReader.ReadFromStream("s,v,grad,stop\n0,0,0,10\n10,20,0,0\n20,21,0,0\n30,22,0,0\n40,23,0,0\n50,24,0,0\n60,25,0,0\n70,26,0,0\n80,27,0,0\n90,28,0,0\n100,29,0,0".ToStream(), CycleType.DistanceBased, "DummyCycle", false);
+
+			var runData = new VectoRunData() {
+				JobRunId = 0,
+                VehicleData = vehicleData,
+                EngineData = engineData,
+				ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
+				SimulationType = SimulationType.DistanceCycle,
+				Cycle = cycleData,
+				BusAuxiliaries = CreateBusAuxData(alternatorType, vehicleData),
+				Aux = CreateAuxiliaryData(P_aux_m_Base.SI<Watt>(), P_aux_m_ICEOff_dr.SI<Watt>(), P_aux_m_ICEOff_st.SI<Watt>())
+			};
+			
+			var modData = new ModalDataContainer(runData, null, null) {
+				WriteModalResults = false
+			};
+
+			var container = new MockVehicleContainer() {
+				CycleData = new CycleData() { LeftSample = cycleData.Entries.First()},
+				ModalData = modData, 
+				HasCombustionEngine = true,
+				HasElectricMotor = false,
+			};
+			var engine = new StopStartCombustionEngine(container, engineData);
+			
+
+			container.EngineInfo = engine;
+			
+			var conventionalAux = CreateAuxiliaries(runData.Aux, container);
+			var aux = new BusAuxiliariesAdapter(container, runData.BusAuxiliaries, conventionalAux);
+
+			var auxCfg = runData.BusAuxiliaries;
+			var electricStorage = auxCfg.ElectricalUserInputsConfig.AlternatorType == AlternatorType.Smart
+				? new SimpleBattery(container, auxCfg.ElectricalUserInputsConfig.ElectricStorageCapacity, auxCfg.ElectricalUserInputsConfig.StoredEnergyEfficiency, initialSoC)
+				: (ISimpleBattery)new NoBattery(container);
+			aux.ElectricStorage = electricStorage;
+			engine.Connect(aux.Port());
+
+
+			return container;
+		}
+
+		private static IAuxPort CreateAuxiliaries(IEnumerable<VectoRunData.AuxData> auxDataList,
+			IVehicleContainer container)
+		{
+			var aux = new EngineAuxiliary(container);
+			foreach (var auxData in auxDataList) {
+				// id's in upper case
+				var id = auxData.ID.ToUpper();
+
+				switch (auxData.DemandType) {
+					case AuxiliaryDemandType.Constant:
+						aux.AddConstant(id, auxData.PowerDemand);
+						break;
+					default:
+						throw new ArgumentOutOfRangeException("AuxiliaryDemandType", auxData.DemandType.ToString());
+				}
+
+				container.ModalData?.AddAuxiliary(id);
+			}
+
+			return aux;
+		}
+
+		private static IList<VectoRunData.AuxData> CreateAuxiliaryData(Watt pwrICEOn, Watt pwrICEOffDriving, Watt pwrICEOffStandstill)
+		{
+			var baseDemand = pwrICEOffStandstill;
+			var stpDemand = pwrICEOffDriving - pwrICEOffStandstill;
+			var fanDemand = pwrICEOn - pwrICEOffDriving;
+
+			var auxList = new List<VectoRunData.AuxData>() {
+				new VectoRunData.AuxData { ID = Constants.Auxiliaries.IDs.ENG_AUX_MECH_BASE, DemandType = AuxiliaryDemandType.Constant, PowerDemand = baseDemand},
+				new VectoRunData.AuxData { ID = Constants.Auxiliaries.IDs.ENG_AUX_MECH_STP, DemandType = AuxiliaryDemandType.Constant, PowerDemand = stpDemand},
+				new VectoRunData.AuxData { ID = Constants.Auxiliaries.IDs.ENG_AUX_MECH_FAN, DemandType = AuxiliaryDemandType.Constant, PowerDemand = fanDemand},
+			};
+
+			return auxList;
+		}
+
+		private static AuxiliaryConfig CreateBusAuxData(AlternatorType alternatorType, VehicleData vehicleData)
+		{
+			var CompressorMap = "TestData/Integration/BusAuxiliaries/DEFAULT_2-Cylinder_1-Stage_650ccm.ACMP";
+			var AverageAirDemand = 0.0.SI<NormLiterPerSecond>();
+			var SmartAirCompression = false;
+			var GearRatio = 1.0;
+
+			var BatteryEfficiency = 1.0;
+			var ESSupplyFromHEVREESS = false;
+			//var AlternatorType = VectoCommon.Models.AlternatorType.Smart;
+			var ElectricPowerDemand = 0.0.SI<Watt>();
+			var MechanicalPowerDemand = 0.0.SI<Watt>();
+			var AuxHeaterPower = 0.0.SI<Watt>();
+			var AverageHeatingDemand = 0.0.SI<Joule>();
+
+			var retVal = new AuxiliaryConfig() {
+				//InputData = auxInputData.BusAuxiliariesData,
+				ElectricalUserInputsConfig = new ElectricsUserInputsConfig() {
+					PowerNetVoltage = Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage,
+					//StoredEnergyEfficiency = Constants.BusAuxiliaries.ElectricSystem.StoredEnergyEfficiency,
+					ResultCardIdle = new DummyResultCard(),
+					ResultCardOverrun = new DummyResultCard(),
+					ResultCardTraction = new DummyResultCard(),
+					AlternatorGearEfficiency = Constants.BusAuxiliaries.ElectricSystem.AlternatorGearEfficiency,
+					DoorActuationTimeSecond = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond,
+					AlternatorMap = new SimpleAlternator(AlternatorEfficiency) {
+						Technologies = new List<string>() { "engineering mode" }
+					},
+					AlternatorType = alternatorType,
+					ConnectESToREESS = ESSupplyFromHEVREESS,
+					DCDCEfficiency = DCDCEfficiency,
+					MaxAlternatorPower = MaxAlternatorPower.SI<Watt>(),
+					ElectricStorageCapacity = ElectricStorageCapacity ?? 0.SI<WattSecond>(),
+					StoredEnergyEfficiency = BatteryEfficiency,
+					ElectricalConsumers = GetElectricConsumers(I_Base.SI<Ampere>(), I_ICEOff_dr.SI<Ampere>(), I_ICEOff_stop.SI<Ampere>()),
+				},
+				PneumaticAuxillariesConfig = new PneumaticsConsumersDemand() {
+					AdBlueInjection = 0.SI<NormLiterPerSecond>(),
+					AirControlledSuspension = AverageAirDemand,
+					Braking = 0.SI<NormLiterPerKilogram>(),
+					BreakingWithKneeling = 0.SI<NormLiterPerKilogramMeter>(),
+					DeadVolBlowOuts = 0.SI<PerSecond>(),
+					DeadVolume = 0.SI<NormLiter>(),
+					NonSmartRegenFractionTotalAirDemand = 0,
+					SmartRegenFractionTotalAirDemand = 0,
+					OverrunUtilisationForCompressionFraction =
+						Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction,
+					DoorOpening = 0.SI<NormLiter>(),
+					StopBrakeActuation = 0.SI<NormLiterPerKilogram>(),
+				},
+				PneumaticUserInputsConfig = new PneumaticUserInputsConfig() {
+					CompressorMap =
+						new CompressorMap(CompressorMapReader.Create(VectoCSVFile.Read(CompressorMap), 1.0),
+							"engineering mode", ""),
+					CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency,
+					CompressorGearRatio = GearRatio,
+					SmartAirCompression = SmartAirCompression,
+					SmartRegeneration = false,
+					KneelingHeight = 0.SI<Meter>(),
+					AirSuspensionControl = ConsumerTechnology.Pneumatically,
+					AdBlueDosing = ConsumerTechnology.Electrically,
+					Doors = ConsumerTechnology.Electrically
+				},
+				Actuations = new Actuations() {
+					Braking = 0,
+					Kneeling = 0,
+					ParkBrakeAndDoors = 0,
+					CycleTime = 1.SI<Second>()
+				},
+				SSMInputs = new SSMEngineeringInputs() {
+					MechanicalPower = MechanicalPowerDemand,
+					ElectricPower = ElectricPowerDemand,
+					AuxHeaterPower = AuxHeaterPower,
+					HeatingDemand = AverageHeatingDemand,
+					AuxHeaterEfficiency = Constants.BusAuxiliaries.SteadyStateModel.AuxHeaterEfficiency,
+					FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant,
+					CoolantHeatTransferredToAirCabinHeater =
+						Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater,
+				},
+				VehicleData = vehicleData,
+			};
+
+			return retVal;
+		}
+
+		private static Dictionary<string, ElectricConsumerEntry> GetElectricConsumers(Ampere currentDemand, Ampere currentDemandEngineOffDriving, Ampere currentDemandEngineOffStandstill)
+		{
+			var retVal = new Dictionary<string, ElectricConsumerEntry>();
+
+			var iBase = currentDemandEngineOffStandstill;
+			var iSP = currentDemandEngineOffDriving -
+					currentDemandEngineOffStandstill;
+			var iFan = currentDemand - currentDemandEngineOffDriving;
+
+			retVal["BaseLoad"] = new ElectricConsumerEntry() {
+				Current = iBase,
+				BaseVehicle = true
+			};
+			retVal[Constants.Auxiliaries.IDs.SteeringPump] = new ElectricConsumerEntry() {
+				Current = iSP,
+				ActiveDuringEngineStopStandstill = false,
+			};
+			retVal[Constants.Auxiliaries.IDs.Fan] = new ElectricConsumerEntry() {
+				Current = iFan,
+				ActiveDuringEngineStopStandstill = false,
+				ActiveDuringEngineStopDriving = false,
+			};
+			return retVal;
+		}
+
+		
+
+		private static VehicleData CreateVehicleData(Kilogram loading)
+		{
+			var axles = new List<Axle> {
+				new Axle {
+					AxleWeightShare = 0.4375,
+					Inertia = 21.66667.SI<KilogramSquareMeter>(),
+					RollResistanceCoefficient = 0.0055,
+					TwinTyres = false,
+					TyreTestLoad = 62538.75.SI<Newton>()
+				},
+				new Axle {
+					AxleWeightShare = 0.375,
+					Inertia = 10.83333.SI<KilogramSquareMeter>(),
+					RollResistanceCoefficient = 0.0065,
+					TwinTyres = true,
+					TyreTestLoad = 52532.55.SI<Newton>()
+				},
+				new Axle {
+					AxleWeightShare = 0.1875,
+					Inertia = 21.66667.SI<KilogramSquareMeter>(),
+					RollResistanceCoefficient = 0.0055,
+					TwinTyres = false,
+					TyreTestLoad = 62538.75.SI<Newton>()
+				}
+			};
+			return new VehicleData {
+				AirDensity = DeclarationData.AirDensity,
+				AxleConfiguration = AxleConfiguration.AxleConfig_6x2,
+				CurbMass = 15700.SI<Kilogram>(),
+				Loading = loading,
+				DynamicTyreRadius = 0.52.SI<Meter>(),
+				AxleData = axles,
+				SavedInDeclarationMode = false
+			};
+		}
+
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
index b1b64a846bb56a8a38f01667a2bafa3dc350ed39..06d288301fa8b5d61ed60fb65fe8b617ed49ccef 100644
--- a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
@@ -403,8 +403,8 @@ namespace TUGraz.VectoCore.Tests.Utils
 			set;
 		}
 
-		public bool HasElectricMotor { get; }
-		public PowertrainPosition[] ElectricMotorPositions { get; }
+		public bool HasElectricMotor { get; set; }
+		public PowertrainPosition[] ElectricMotorPositions { get; set; }
 
 		#endregion
 	}
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index ea343f7b54d81d2390adc478c7b53521f5e2a31f..440b0b8fcdf237a7b70142f2cb9377d800135219 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -1055,9 +1055,6 @@
     <None Include="TestData\Hybrids\GenericVehicle_Group5_P3_APT\Hybrid_Parameters.vhctl">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
-    <None Include="TestData\Hybrids\GenericVehicle_Group5_P3_APT\LongHaul.vdri">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
     <None Include="TestData\Hybrids\GenericVehicle_Group5_P3_APT\MaxCurrent.vimax">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
@@ -1079,9 +1076,6 @@
     <None Include="TestData\Hybrids\GenericVehicle_Group5_P3_APT\P3 APT Group 5_noESS.vecto">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
-    <None Include="TestData\Hybrids\GenericVehicle_Group5_P3_APT\RegionalDelivery.vdri">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
     <None Include="TestData\Hybrids\GenericVehicle_Group5_P3_APT\ShiftParameters.vtcu">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
@@ -3952,14 +3946,14 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     <None Include="TestData\Integration\VTPMode\DualFuelVehicle\vtp_cycle_2Hz.vdri">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</None>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\class_5_generic vehicle_DECL.vecto">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     <None Include="TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\VTP_rural_2Hz.vdri">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</None>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Integration\VTPMode\DualFuelVehicle\VTP_DualFuel.vecto">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
@@ -5124,44 +5118,44 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="TestData\Integration\MediumLorries\vecto_vehicle-medium_lorry.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-		</Content>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\Tractor_4x2_vehicle-class-5_Generic vehicle.RSLT_MANUFACTURER.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="TestData\Integration\MediumLorries\vecto_vehicle-medium_lorry-Van.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-		</Content>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\Tractor_4x2_vehicle-class-5_Generic vehicle.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-	<Content Include="TestData\Integration\MediumLorries\vecto_vehicle-medium_lorryFWD.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</Content>
+    <Content Include="TestData\Integration\MediumLorries\vecto_vehicle-medium_lorryFWD.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle\CityBus_AT_Ser_2TC.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="TestData\Integration\ShiftStrategyV2\SampleVehicles\Rigid Truck_4x2_vehicle-class-1_EURO6_2018.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</Content>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle\Rigid Truck_4x2_vehicle-class-3_EURO6_2018.MANUFACTURER.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="TestData\Integration\ShiftStrategyV2\SampleVehicles\Rigid Truck_4x2_vehicle-class-2_EURO6_2018.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</Content>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle\Rigid Truck_4x2_vehicle-class-3_EURO6_2018.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="TestData\Integration\ShiftStrategyV2\SampleVehicles\Rigid Truck_4x2_vehicle-class-3_EURO6_2018.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</Content>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle_CNG\Tractor_4x2_vehicle-class-5_Generic vehicle.RSLT_MANUFACTURER.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="TestData\Integration\ShiftStrategyV2\SampleVehicles\Rigid Truck_4x2_vehicle-class-4_EURO6_2018.xml">
-		<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-	</Content>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle_CNG\Tractor_4x2_vehicle-class-5_Generic vehicle.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>