diff --git a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
index 743a29669be3df965dd2b8a83014b22a5eb0b54f..54f4fe5a771f4434b1f0d424e040b31c11c21ff4 100644
--- a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
+++ b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
@@ -113,7 +113,7 @@ Namespace IntegrationTests
             For i As Integer = 0 To 9
                 aux.ResetCalculations()
                 Assert.AreEqual(6087.0317, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
-                aux.CycleStep(1.SI(Of Second))
+                aux.CycleStep(1.SI(Of Second), 1.0)
                 'Console.WriteLine("{0}", aux.AA_TotalCycleFC_Grams)
             Next
 
@@ -128,7 +128,7 @@ Namespace IntegrationTests
             For i As Integer = 0 To 9
                 aux.ResetCalculations()
                 Assert.AreEqual(8954.1435, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
-                aux.CycleStep(1.SI(Of Second))
+                aux.CycleStep(1.SI(Of Second), 1.0)
                 'Console.WriteLine("{0}", aux.AA_TotalCycleFC_Grams)
             Next
 
@@ -143,7 +143,7 @@ Namespace IntegrationTests
             For i As Integer = 0 To 9
                 aux.ResetCalculations()
                 Assert.AreEqual(6087.0317, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
-                aux.CycleStep(1.SI(Of Second))
+                aux.CycleStep(1.SI(Of Second), 1.0)
                 'Console.WriteLine("{0}", aux.AA_TotalCycleFC_Grams)
             Next
 
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs
index dfad83254cb589ff025301e38e50a4cebd4e71d7..eb60207f4049016ee70dbdfd06c8794d5272729f 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs
@@ -274,7 +274,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries
 		}
 
 
-		public void CycleStep(Second seconds)
+		public void CycleStep(Second seconds, double essFactor)
 		{
 			try {
 				//M9.CycleStep(seconds);
@@ -282,11 +282,11 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries
 				//M11.CycleStep(seconds);
 				if (auxConfig.ElectricalUserInputsConfig.SmartElectrical) {
 					var generatedElPower =
-						(auxConfig.ElectricalUserInputsConfig.SmartElectrical && auxConfig.PneumaticUserInputsConfig.SmartAirCompression
+						(auxConfig.PneumaticUserInputsConfig.SmartAirCompression
 							? M7.SmartElectricalAndPneumaticAuxAltPowerGenAtCrank
 							: M7.SmartElectricalOnlyAuxAltPowerGenAtCrank) * M0.AlternatorsEfficiency *
 						auxConfig.ElectricalUserInputsConfig.AlternatorGearEfficiency;
-					ElectricStorage.Request(generatedElPower - ElectricPowerConsumerSum, seconds);
+					ElectricStorage.Request((generatedElPower - ElectricPowerConsumerSum) * essFactor, seconds);
 				}
 				Signals.CurrentCycleTimeInSeconds += seconds.Value();
 			} catch (Exception ex) {
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M08Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M08Impl.cs
index a9b54f4f2f7b0d9f7f385a06b02f24bcf747126a..b5a8cfa29234e56022db1b6e30c3099eb45d0927 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M08Impl.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M08Impl.cs
@@ -40,7 +40,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl
 			var sw5 = _smartElectrics ? sw1 : sw2;
 			var sw6 = !_signals.EngineStopped;
 			var sum5 = _m1.AveragePowerDemandAtCrankFromHVACMechanicals + sw5;
-			var sum6 = sw6 ? sum5 : 0.SI<Watt>();
+			var sum6 = sum5; // sw6 ? sum5 : 0.SI<Watt>();
 
 			var sw3 = _smartPneumatics ? _m7.SmartElectricalAndPneumaticAuxAltPowerGenAtCrank :
 				_m7.SmartElectricalOnlyAuxAltPowerGenAtCrank;
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs
index d53e3ed8097add1fc2c59c90b9f0ef99b4887f9a..300772b270eda0cb238923752faa0c199e23a0d0 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs
@@ -131,9 +131,10 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces
 		/// Cycle Step - Used to calculate fuelling
 		/// </summary>
 		/// <param name="seconds"></param>
+		/// <param name="essFactor"></param>
 		/// <returns></returns>
 		/// <remarks></remarks>
-		void CycleStep(Second seconds);
+		void CycleStep(Second seconds, double essFactor);
 
 		///// <summary>
 		///// Initialises AAUX Environment ( Begin Processs )
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index efee667b4bc0a034b21f5d0ea379350ee3261c2d..3d83f90df5bec6c576ee1c445c06fafdface4cce 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -38,7 +38,6 @@ using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
 using TUGraz.VectoCore.OutputData;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
@@ -107,6 +106,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		{
 			CurrentState.AngularSpeed = angularSpeed;
 			CurrentState.dt = dt;
+
+			var signals = Auxiliaries.Signals;
+			// trick bus auxiliaries that ice is on - all auxiliaries are considered. ESS is corrected in post-processing
+			signals.EngineStopped = false; 
+			signals.VehicleStopped = false; 
+
 			CurrentState.PowerDemand = GetBusAuxPowerDemand(absTime, dt, torquePowerTrain, torqueEngine, angularSpeed, dryRun);
 
 			var avgAngularSpeed = (CurrentState.AngularSpeed + PreviousState.AngularSpeed) / 2.0;
@@ -115,6 +120,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public Watt PowerDemandEngineOn(Second time, Second simulationInterval, PerSecond engineSpeed)
 		{
+			var signals = Auxiliaries.Signals;
+			signals.EngineStopped = false; 
+			signals.VehicleStopped = false;
 			return GetBusAuxPowerDemand(time, simulationInterval, 0.SI<NewtonMeter>(), 0.SI<NewtonMeter>(), engineSpeed, true);
 		}
 
@@ -124,6 +132,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			AdditionalAux = null;
 			CurrentState.AngularSpeed = DataBus.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;
+
 			var busAuxPowerDemand  = GetBusAuxPowerDemand(
 				absTime, dt, 0.SI<NewtonMeter>(), 0.SI<NewtonMeter>(), DataBus.EngineIdleSpeed);
 			AdditionalAux = conventionalAux;
@@ -131,27 +146,34 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			CurrentState.PowerDemand = ((AdditionalAux?.PowerDemandEngineOn(absTime, dt, DataBus.EngineIdleSpeed) ?? 0.SI<Watt>()) +
 										busAuxPowerDemand) * (1 - EngineStopStartUtilityFactor);
 
-			return EngineStopStartUtilityFactor * busAuxPowerDemand + AdditionalAux?.PowerDemandEngineOff(absTime, dt);
+			// 
+			signals.EngineStopped = !DataBus.IgnitionOn;
+			signals.VehicleStopped = DataBus.VehicleStopped;
+
+			busAuxPowerDemand = GetBusAuxPowerDemand(
+				absTime, dt, 0.SI<NewtonMeter>(), 0.SI<NewtonMeter>(), DataBus.EngineIdleSpeed);
+			AdditionalAux = conventionalAux;
+
+			return EngineStopStartUtilityFactor * (busAuxPowerDemand + AdditionalAux?.PowerDemandEngineOff(absTime, dt));
 		}
 
 
 		protected internal virtual void DoWriteModalResults(IModalDataContainer container)
 		{
-			
-			// cycleStep has to be called here and not in DoCommit, write is called before Commit!
-			Auxiliaries.CycleStep(CurrentState.dt);
-
 			var essUtilityFactor = 1.0;
 			if (!DataBus.IgnitionOn) {
 				essUtilityFactor = 1 - EngineStopStartUtilityFactor;
 			}
 
+			// cycleStep has to be called here and not in DoCommit, write is called before Commit!
+			Auxiliaries.CycleStep(CurrentState.dt, essUtilityFactor);
+
 			//CurrentState.TotalFuelConsumption = Auxiliaries.TotalFuel;
 			container[ModalResultField.P_aux] = CurrentState.PowerDemand;
 
-			container[ModalResultField.P_busAux_ES_HVAC] = Auxiliaries.HVACElectricalPowerConsumer;
-			container[ModalResultField.P_busAux_ES_other] = Auxiliaries.ElectricPowerConsumer;
-			container[ModalResultField.P_busAux_ES_consumer_sum] = Auxiliaries.ElectricPowerConsumerSum;
+			container[ModalResultField.P_busAux_ES_HVAC] = essUtilityFactor * Auxiliaries.HVACElectricalPowerConsumer;
+			container[ModalResultField.P_busAux_ES_other] = essUtilityFactor * Auxiliaries.ElectricPowerConsumer;
+			container[ModalResultField.P_busAux_ES_consumer_sum] = essUtilityFactor * Auxiliaries.ElectricPowerConsumerSum;
 			container[ModalResultField.P_busAux_ES_sum_mech] = essUtilityFactor * Auxiliaries.ElectricPowerDemandMech;
 			container[ModalResultField.P_busAux_ES_generated] = essUtilityFactor * Auxiliaries.ElectricPowerGenerated;
 
@@ -167,7 +189,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			container[ModalResultField.P_busAux_PS_generated_alwaysOn] = essUtilityFactor * Auxiliaries.PSPowerCompressorAlwaysOn;
 			container[ModalResultField.P_busAux_PS_generated_dragOnly] = essUtilityFactor * Auxiliaries.PSPowerCompressorDragOnly;
 
-			container[ModalResultField.P_busAux_HVACmech_consumer] = Auxiliaries.HVACMechanicalPowerConsumer;
+			container[ModalResultField.P_busAux_HVACmech_consumer] = essUtilityFactor * Auxiliaries.HVACMechanicalPowerConsumer;
 			container[ModalResultField.P_busAux_HVACmech_gen] = essUtilityFactor *  Auxiliaries.HVACMechanicalPowerGenerated;
 		}
 
@@ -211,24 +233,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			signals.Idle = DataBus.VehicleStopped;
 			signals.InNeutral = DataBus.Gear == 0;
 
-			signals.EngineStopped = !DataBus.IgnitionOn;
-			signals.VehicleStopped = DataBus.VehicleStopped;
+			
 
 			return Auxiliaries.AuxiliaryPowerAtCrankWatts + signals.PreExistingAuxPower;
 		}
 
-		protected class FuelConsumptionAdapter : IFuelConsumptionMap
-		{
-			protected internal FuelConsumptionMap FcMap;
-
-			public bool AllowExtrapolation { get; set; }
-
-			public KilogramPerSecond GetFuelConsumptionValue(NewtonMeter torque, PerSecond angularVelocity)
-			{
-				return FcMap.GetFuelConsumption(torque, angularVelocity, AllowExtrapolation).Value;
-			}
-		}
-
 		public class BusAuxState
 		{
 			public Second dt;