diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf
index fe4a9057fd06ea12cd30ff6aa1ae1244ac1f0e9c..6ac6b262a72c2d7bd76a9b01d18d80002d962f70 100644
Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf and b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf differ
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs
index 7c288f190e4c1c910a34c4d69fd98f449200b404..faf4a3ea7f8e44abb7459958b474951b6c58e2dc 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/Interfaces/IBusAuxiliaries.cs
@@ -161,6 +161,9 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces
 
 	public class HeaterDemandResult
 	{
+		/// <summary>
+		/// Fuel heater (Diesel)
+		/// </summary>
 		public Joule AuxHeater => HeaterPower.AuxHeaterPower * CycleTime;
 
 		public WattSecond HeatPumpElectricEnergy => HeaterPower.HeatPumpPowerEl * CycleTime;
diff --git a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/IModalDataPostProcessor.cs b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/IModalDataPostProcessor.cs
index d0e3c60d49108d321634191ba85159d6c99d86b4..e1a932b3e8d2b8f188c534345473017bfadf692b 100644
--- a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/IModalDataPostProcessor.cs
+++ b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/IModalDataPostProcessor.cs
@@ -16,5 +16,6 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing
 	public interface IModalDataPostProcessor
     {
         ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData);
-    }
+
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/BatteryElectricPostprocessingCorrection.cs b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/BatteryElectricPostprocessingCorrection.cs
index 93c82e9ed057cff56258acd28dcdca7d63c1ec0d..dd358d499f721b75281f496a8e94a515e61f01b9 100644
--- a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/BatteryElectricPostprocessingCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/BatteryElectricPostprocessingCorrection.cs
@@ -1,6 +1,8 @@
 using System.Collections.Generic;
+using System.Linq;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRunDataFactory;
 using TUGraz.VectoCore.Models.BusAuxiliaries;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
 using TUGraz.VectoCore.Models.Declaration;
@@ -9,11 +11,11 @@ using TUGraz.VectoCore.OutputData.ModDataPostprocessing;
 
 namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
 {
-    public class BatteryElectricPostprocessingCorrection : IModalDataPostProcessor
+    public class BatteryElectricPostprocessingCorrection : ModalDataPostProcessingCorrectionBase
     {
         #region Implementation of IModalDataPostProcessor
 
-        public ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
+        public override ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
         {
             var chgEfficiency = DeclarationData.CalculateChargingEfficiencyPEV(runData);
 
@@ -34,15 +36,34 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
                             runData.DCDCData.DCDCEfficiency;
 
             }
+			var corrected = new PEVCorrectedModalData(modData)
+			{
+				CorrectedAirDemand = airDemandCorr,
+				DeltaAir = deltaAir,
+				WorkBusAux_elPS_SoC_ElRange = deltaEPSel,
+				ElectricEnergyConsumption_SoC = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int),
+				ElectricEnergyConsumption_Final = (-modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) + deltaEPSel) / chgEfficiency,
+			};
 
-            return new PEVCorrectedModalData(modData) {
-                CorrectedAirDemand = airDemandCorr,
-                DeltaAir = deltaAir,
-                WorkBusAux_elPS_SoC_ElRange = deltaEPSel,
-                ElectricEnergyConsumption_SoC = -modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int),
-                ElectricEnergyConsumption_Final = (-modData.TimeIntegral<WattSecond>(ModalResultField.P_reess_int) + deltaEPSel) / chgEfficiency,
-            };
-        }
+            SetAuxHeaterDemand(modData, runData, corrected);
+			if (corrected.AuxHeaterDemand?.IsGreater(0) ?? false) {
+               
+				var f = FuelData.Diesel;
+
+				var fc = new PEVFuelConsumptionCorrection(
+                    fuel: f,
+					distance: modData.Distance,
+					duration: modData.Duration,
+					fcAuxHeater: corrected.AuxHeaterDemand / f.LowerHeatingValueVecto);
+
+
+				corrected.FuelCorrection[f.FuelType] = fc;
+			}
+
+
+
+			return corrected;
+		}
 
         #endregion
     }
diff --git a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/ConventionalModalDataPostprocessingCorrection.cs b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/ConventionalModalDataPostprocessingCorrection.cs
index 28d1fe9724acb9a550caef4020951af829ccc23f..ad52825fa0789d1cfab31b7993234673f0807dc4 100644
--- a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/ConventionalModalDataPostprocessingCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/ConventionalModalDataPostprocessingCorrection.cs
@@ -14,12 +14,62 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
 namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
 {
-    public class ConventionalModalDataPostprocessingCorrection : IModalDataPostProcessor
+	public abstract class ModalDataPostProcessingCorrectionBase : IModalDataPostProcessor
+	{
+		#region Implementation of IModalDataPostProcessor
+
+		public abstract ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData);
+
+        protected virtual void SetAuxHeaterDemand(IModalDataContainer modData, VectoRunData runData, AbstractCorrectedModalData r)
+        {
+
+            if (modData.AuxHeaterDemandCalc == null)
+            {
+                r.AuxHeaterDemand = 0.SI<Joule>();
+                r.WorkBusAuxHeatPumpHeatingMech = 0.SI<WattSecond>();
+                r.WorkBusAuxHeatPumpHeatingElMech = 0.SI<WattSecond>();
+                r.WorkBusAuxElectricHeater = 0.SI<WattSecond>();
+                return;
+            }
+            var duration = modData.Duration;
+            var engineWasteheatSum = modData.FuelData.Aggregate(
+                0.SI<Joule>(),
+                (current, fuel) => current + modData.TotalFuelConsumption(ModalResultField.FCFinal, fuel) *
+                    fuel.LowerHeatingValueVecto);
+            var emLossEnergy = 0.SI<Joule>();
+            //if (runData.ElectricMachinesData.Count > 0) {
+            foreach (var em in runData.ElectricMachinesData)
+            {
+                var emPos = em.Item1; //runData.ElectricMachinesData.First().Item1;
+                var colName = modData.GetColumnName(emPos, ModalResultField.P_EM_electricMotorLoss_);
+                if (emPos == PowertrainPosition.IEPC)
+                {
+                    colName = modData.GetColumnName(emPos, ModalResultField.P_IEPC_electricMotorLoss_);
+                }
+                emLossEnergy += modData.TimeIntegral<WattSecond>(colName).Cast<Joule>();
+            }
+
+            //r.WorkBusAuxHeatPumpHeatingElMech = workBusAuxES /
+            //                              runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>()) /
+            //                             runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorGearEfficiency;
+            var heatingDemand = modData.AuxHeaterDemandCalc(duration, engineWasteheatSum, emLossEnergy);
+
+            r.WorkBusAuxHeatPumpHeatingMech = heatingDemand.HeatPumpMechanicalEnergy;
+            r.WorkBusAuxHeatPumpHeatingElMech = heatingDemand.HeatPumpElectricEnergy /
+                                                runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>()) /
+                                                runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorGearEfficiency;
+            r.AuxHeaterDemand = heatingDemand.AuxHeater;
+            r.WorkBusAuxElectricHeater = heatingDemand.ElectricHeaterEnergy;
+        }
+        #endregion
+    }
+
+    public class ConventionalModalDataPostprocessingCorrection : ModalDataPostProcessingCorrectionBase
     {
 
         #region Implementation of IModalDataPostProcessor
 
-		public virtual ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
+		public override ICorrectedModalData ApplyCorrection(IModalDataContainer modData, VectoRunData runData)
 		{
 			return DoApplyCorrection(modData, runData);
 		}
@@ -173,44 +223,7 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
             return f;
         }
 
-        protected virtual void SetAuxHeaterDemand(IModalDataContainer modData, VectoRunData runData, CorrectedModalData r)
-        {
-
-            if (modData.AuxHeaterDemandCalc == null) {
-                r.AuxHeaterDemand = 0.SI<Joule>();
-                r.WorkBusAuxHeatPumpHeatingMech = 0.SI<WattSecond>();
-                r.WorkBusAuxHeatPumpHeatingElMech = 0.SI<WattSecond>();
-                r.WorkBusAuxElectricHeater = 0.SI<WattSecond>();
-                return;
-            }
-            var duration = modData.Duration;
-            var engineWasteheatSum = modData.FuelData.Aggregate(
-                0.SI<Joule>(),
-                (current, fuel) => current + modData.TotalFuelConsumption(ModalResultField.FCFinal, fuel) *
-                    fuel.LowerHeatingValueVecto);
-            var emLossEnergy = 0.SI<Joule>();
-            //if (runData.ElectricMachinesData.Count > 0) {
-            foreach (var em in runData.ElectricMachinesData) {
-                var emPos = em.Item1; //runData.ElectricMachinesData.First().Item1;
-                var colName = modData.GetColumnName(emPos, ModalResultField.P_EM_electricMotorLoss_);
-                if (emPos == PowertrainPosition.IEPC) {
-                    colName = modData.GetColumnName(emPos, ModalResultField.P_IEPC_electricMotorLoss_);
-                }
-                emLossEnergy += modData.TimeIntegral<WattSecond>(colName).Cast<Joule>();
-            }
-
-            //r.WorkBusAuxHeatPumpHeatingElMech = workBusAuxES /
-            //                              runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>()) /
-            //                             runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorGearEfficiency;
-            var heatingDemand = modData.AuxHeaterDemandCalc(duration, engineWasteheatSum, emLossEnergy);
 
-            r.WorkBusAuxHeatPumpHeatingMech = heatingDemand.HeatPumpMechanicalEnergy;
-            r.WorkBusAuxHeatPumpHeatingElMech = heatingDemand.HeatPumpElectricEnergy /
-                                                runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>()) /
-                                                runData.BusAuxiliaries.ElectricalUserInputsConfig.AlternatorGearEfficiency;
-            r.AuxHeaterDemand = heatingDemand.AuxHeater;
-            r.WorkBusAuxElectricHeater = heatingDemand.ElectricHeaterEnergy;
-        }
 
         protected virtual void SetMissingDCDCEnergy(IModalDataContainer modData, VectoRunData runData, CorrectedModalData r)
         {
diff --git a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/CorrectedModalData.cs b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/CorrectedModalData.cs
index 579cedc96605c7b2bd4f108cacdbaa83c0de6b37..7e3c2a765a6ab8ccc0587a94addc9d7358b6d801 100644
--- a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/CorrectedModalData.cs
+++ b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/CorrectedModalData.cs
@@ -78,7 +78,7 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
         public CorrectedModalData(IModalDataContainer modData) : base(modData)
         {
 
-            FuelCorrection = new Dictionary<FuelType, IFuelConsumptionCorrection>();
+            //FuelCorrection = new Dictionary<FuelType, IFuelConsumptionCorrection>();
         }
 
         public override IFuelConsumptionCorrection FuelConsumptionCorrection(IFuelProperties fuel)
diff --git a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/FuelConsumptionCorrection.cs b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/FuelConsumptionCorrection.cs
index 63fead479ed56fdd046d2ffaf4838336d9941684..1f3c6159d1faba02f699aa3b319339dae275b14b 100644
--- a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/FuelConsumptionCorrection.cs
+++ b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/Impl/FuelConsumptionCorrection.cs
@@ -1,5 +1,6 @@
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
 
 namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
 {
@@ -127,4 +128,85 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing.Impl
 
 		#endregion
 	}
+
+
+    /// <summary>
+    /// Used for aux heaters
+    /// </summary>
+    public class PEVFuelConsumptionCorrection : IFuelConsumptionCorrection
+	{
+		private readonly Second _duration;
+		private readonly Meter _distance;
+		private readonly Kilogram _fcAuxHeater;
+		private readonly IFuelProperties _fuel;
+
+		public PEVFuelConsumptionCorrection(
+			IFuelProperties fuel,
+			Second duration,
+			Meter distance,
+			Kilogram fcAuxHeater
+			)
+		{
+			_fuel = fuel;
+			_duration = duration;
+			_distance = distance;
+			_fcAuxHeater = fcAuxHeater;
+		}
+
+		#region Implementation of IFuelConsumptionCorrection
+
+		public IFuelProperties Fuel => _fuel;
+
+		public KilogramPerWattSecond EngineLineCorrectionFactor => throw new System.NotImplementedException();
+
+		public KilogramPerWattSecond VehicleLine => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_ESS_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_ESS_CORR_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_BusAux_PS_CORR_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_BusAux_ES_CORR_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_WHR_CORR_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_AUXHTR_H => _fcAuxHeater / _duration;
+
+		public KilogramPerSecond FC_AUXHTR_H_CORR => FC_AUXHTR_H;
+
+		public KilogramPerSecond FC_REESS_SOC_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_REESS_SOC_CORR_H => throw new System.NotImplementedException();
+
+		public KilogramPerSecond FC_FINAL_H => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_WHR_CORR_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_BusAux_PS_CORR_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_BusAux_ES_CORR_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_AUXHTR_KM => _fcAuxHeater / _distance;
+
+		public KilogramPerMeter FC_AUXHTR_KM_CORR => FC_AUXHTR_KM;
+
+		public KilogramPerMeter FC_REESS_SOC_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_REESS_SOC_CORR_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_ESS_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_ESS_CORR_KM => throw new System.NotImplementedException();
+
+		public KilogramPerMeter FC_FINAL_KM => throw new System.NotImplementedException();
+
+		public VolumePerMeter FuelVolumePerMeter => throw new System.NotImplementedException();
+
+		public Kilogram TotalFuelConsumptionCorrected => FC_AUXHTR_KM_CORR * _distance;
+
+		public Joule EnergyDemand => throw new System.NotImplementedException();
+
+		#endregion
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/PostProcessingNinjectModule.cs b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/PostProcessingNinjectModule.cs
index 512d0e4c3b7c36f0d05ee9b807812b1a84fbce76..3cf6c760745d7dea820f831775d683c0ee5da80e 100644
--- a/VectoCore/VectoCore/OutputData/ModDataPostprocessing/PostProcessingNinjectModule.cs
+++ b/VectoCore/VectoCore/OutputData/ModDataPostprocessing/PostProcessingNinjectModule.cs
@@ -12,7 +12,6 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing
 
 		public override void Load()
 		{
-
 			Bind<IModalDataPostProcessorFactory>().ToFactory(() => new UseFirstArgumentAsInstanceProvider());
 
 			Bind<IModalDataPostProcessor>().To<BatteryElectricPostprocessingCorrection>()
@@ -35,7 +34,6 @@ namespace TUGraz.VectoCore.OutputData.ModDataPostprocessing
 
 			Bind<IModalDataPostProcessor>().To<ConventionalModalDataPostprocessingCorrection>()
 				.Named(VectoSimulationJobType.ConventionalVehicle.ToString());
-
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs
index 2a947aee113886b370e88125784f6f426525eb5a..b89bb3c4d75ffb99463e695a988d0ee42a71eac9 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs
@@ -20,18 +20,20 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
 
         public XElement GetElement(IResultEntry entry, IFuelConsumptionCorrection fc)
         {
-            return new XElement(TNS + XMLNames.Report_Results_Fuel,
-                new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fc.Fuel.FuelType.ToXMLFormat()),
-                GetFuelConsumptionEntries(fc.TotalFuelConsumptionCorrected, fc.Fuel, entry.Distance, entry.Payload, entry.CargoVolume, entry.PassengerCount).Select(x => new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
-            );
+			return GetElement(fc.TotalFuelConsumptionCorrected, fc.Fuel, entry.Distance, entry.Payload, entry.CargoVolume, entry.PassengerCount);
         }
 
         public XElement GetElement(IWeightedResult entry, IFuelProperties fuel, Kilogram consumption)
-        {
-            return new XElement(TNS + XMLNames.Report_Results_Fuel,
-                new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fuel.FuelType.ToXMLFormat()),
-                GetFuelConsumptionEntries(consumption, fuel, entry.Distance, entry.Payload, entry.CargoVolume, entry.PassengerCount).Select(x => new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
-            );
+		{
+			return GetElement(consumption, fuel, entry.Distance, entry.Payload, entry.CargoVolume, entry.PassengerCount);
+		}
+
+		protected virtual XElement GetElement(Kilogram consumption, IFuelProperties fuel, Meter distance, Kilogram payLoad, CubicMeter cargoVolume, double? passengerCount)
+		{
+			return new XElement(TNS + XMLNames.Report_Results_Fuel,
+				new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fuel.FuelType.ToXMLFormat()),
+				GetFuelConsumptionEntries(consumption, fuel, distance, payLoad, cargoVolume, passengerCount).Select(x => new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
+			);
         }
 
         #endregion
@@ -114,5 +116,4 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
         #endregion
 
     }
-
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/IResultsWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/IResultsWriter.cs
index da451d48a48d6310c9bbbe972b167b7f8ef3f07f..b506435e5cfe6e6a286269fc5b479be601095304 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/IResultsWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/IResultsWriter.cs
@@ -75,7 +75,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
         IResultGroupWriter GetBusSimulationParameterWriter(ICommonResultsWriterFactory factory, XNamespace ns);
 
         IFuelConsumptionWriter GetFuelConsumptionBus(ICommonResultsWriterFactory factory, XNamespace ns);
-        IElectricEnergyConsumptionWriter GetElectricEnergyConsumptionBus(ICommonResultsWriterFactory factory, XNamespace ns);
+
+		IElectricEnergyConsumptionWriter GetElectricEnergyConsumptionBus(ICommonResultsWriterFactory factory, XNamespace ns);
         ICO2Writer GetCO2ResultBus(ICommonResultsWriterFactory factory, XNamespace ns);
         ICO2Writer GetCO2ResultPEVBus(ICommonResultsWriterFactory factory, XNamespace ns);
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultTotalWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultTotalWriter.cs
index fb1e35a525791ecc9fc3e59a4756bd5caab7160f..caef6f1b763a04f8b9aba643aba85116ab515b04 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultTotalWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultTotalWriter.cs
@@ -16,12 +16,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
 
         public override XElement GetElement(IResultEntry entry)
 		{
-			var fcWrtier = FuelConsumptionWriter;
+			var fcWriter = FuelConsumptionWriter;
 			return new XElement(TNS + XMLNames.Report_ResultEntry_Total,
 				VehiclePerformanceWriter.GetElement(entry),
-				fcWrtier != null
+				fcWriter != null
 					? entry.FuelData.Select(f =>
-						fcWrtier.GetElement(entry, entry.FuelConsumptionFinal(f.FuelType)))
+						fcWriter.GetElement(entry, entry.FuelConsumptionFinal(f.FuelType)))
 					: null,
 				ElectricEnergyConsumptionWriter?.GetElement(entry),
 				CO2Writer?.GetElements(entry),
@@ -92,7 +92,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
 
         protected override IResultGroupWriter VehiclePerformanceWriter => _factory.GetVehiclePerformancePEVLorry(_factory, TNS);
 
-        protected override IFuelConsumptionWriter FuelConsumptionWriter => null;
+		protected override IFuelConsumptionWriter FuelConsumptionWriter => null;
+	
 
         protected override IElectricEnergyConsumptionWriter ElectricEnergyConsumptionWriter => _factory.GetElectricEnergyConsumptionLorry(_factory, TNS);
 
@@ -180,7 +181,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
 
         #endregion
     }
-
+    
     public class BusHEVNonOVCTotalWriter : NonOVCTotalWriterBase
     {
         public BusHEVNonOVCTotalWriter(ICommonResultsWriterFactory factory, XNamespace ns) : base(factory, ns) { }
@@ -203,8 +204,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
         #region Overrides of NonOVCTotalWriterBase
 
         protected override IResultGroupWriter VehiclePerformanceWriter => _factory.GetVehiclePerformancePEVBus(_factory, TNS);
-        protected override IFuelConsumptionWriter FuelConsumptionWriter => null;
-
+		//protected override IFuelConsumptionWriter FuelConsumptionWriter => _factory.GetZEVFuelConsumptionBus(_factory, TNS);
+		protected override IFuelConsumptionWriter FuelConsumptionWriter => null;
         protected override IElectricEnergyConsumptionWriter ElectricEnergyConsumptionWriter => _factory.GetElectricEnergyConsumptionBus(_factory, TNS);
         protected override ICO2Writer CO2Writer => _factory.GetCO2ResultPEVBus(_factory, TNS);
         protected override IElectricRangeWriter ElectricRangeWriter => _factory.GetElectricRangeWriter(_factory, TNS);
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFResultsNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFResultsNinjectModule.cs
index da90cf8a5a25aa16511c1f0967abf06304d48ecd..125bafca30fc9bad442e6d28dd487d2420eca9c6 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFResultsNinjectModule.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFResultsNinjectModule.cs
@@ -1,4 +1,5 @@
-using System.Xml.Linq;
+using System.Diagnostics;
+using System.Xml.Linq;
 using Ninject.Activation;
 using Ninject.Extensions.Factory;
 using Ninject.Modules;
@@ -170,7 +171,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				.NamedLikeFactoryMethod((ICIFResultsWriterFactory c) => c.GetErrorDetailsWriter(null, XNamespace.None));
 
 		}
-
+		[DebuggerStepThrough]
 		private bool AccessedViaCIFResultsWriterFactory(IRequest request)
 		{
 			if (request.ParentRequest == null) {
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFResultsNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFResultsNinjectModule.cs
index 30038bd8c05dfd1310d5972cc8a5254e7d241986..17be243e6490278eeabd0acabebe9d1ff897876b 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFResultsNinjectModule.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFResultsNinjectModule.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics;
 using System.Xml.Linq;
 using Ninject.Activation;
 using Ninject.Extensions.Factory;
@@ -156,7 +157,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
             Bind<IFuelConsumptionWriter>().To<BusFuelConsumptionWriter>().When(AccessedViaMRFResultsWriterFactory)
                 .NamedLikeFactoryMethod((IMRFResultsWriterFactory c) => c.GetFuelConsumptionBus(null, XNamespace.None));
-            Bind<IElectricEnergyConsumptionWriter>().To<BusElectricEnergyConsumptionWriter>().When(AccessedViaMRFResultsWriterFactory)
+
+
+			Bind<IElectricEnergyConsumptionWriter>().To<BusElectricEnergyConsumptionWriter>().When(AccessedViaMRFResultsWriterFactory)
                 .NamedLikeFactoryMethod((IMRFResultsWriterFactory c) => c.GetElectricEnergyConsumptionBus(null, XNamespace.None));
             Bind<ICO2Writer>().To<BusCO2Writer>().When(AccessedViaMRFResultsWriterFactory)
                 .NamedLikeFactoryMethod((IMRFResultsWriterFactory c) => c.GetCO2ResultBus(null, XNamespace.None));
@@ -178,6 +181,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				.NamedLikeFactoryMethod((ICIFResultsWriterFactory c) => c.GetErrorDetailsWriter(null, XNamespace.None));
         }
 
+        [DebuggerStepThrough]
 		private bool AccessedViaMRFResultsWriterFactory(IRequest request)
 		{
 			if (request.ParentRequest == null) {
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs
index 0a157ae8070df483054f6935e5593f9021e6a21d..f8daf58789c4bd3198af3a5e8578654d8905ae49 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs
@@ -75,9 +75,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			public Meter ActualChargeDepletingRange { get; set; }
 			public Meter EquivalentAllElectricRange { get; set; }
 			public Meter ZeroCO2EmissionsRange { get; set; }
-			public IFuelProperties AuxHeaterFuel { get; }
+			public IFuelProperties AuxHeaterFuel { get; set; }
 			public Kilogram ZEV_FuelConsumption_AuxHtr { get; set; }
-			public Kilogram ZEV_CO2 { get; }
+			public Kilogram ZEV_CO2 { get; set; }
+
 			public void SetResultData(VectoRunData runData, IModalDataContainer data, double weightingFactor)
 			{
 				throw new NotImplementedException();
@@ -253,11 +254,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			//Fuels
 			result.FuelData = specificResult.FuelData;
 			var co2Sum = 0.SI<Kilogram>();
-			foreach (var fuel in specificResult.CorrectedFinalFuelConsumption.Keys) {
+			
+			foreach (var fuel in genericResult.CorrectedFinalFuelConsumption.Keys) {
 				
 				var fuelFactor = CalculateFactor(combinedResults, r => r.FuelConsumptionFinal(fuel).TotalFuelConsumptionCorrected);
 				var completedFuelConsumption =
-					fuelFactor * (primaryResult.EnergyConsumption[fuel] * specificResult.Distance );
+					fuelFactor * (primaryResult.EnergyConsumption[fuel] * specificResult.Distance);
                 var fuelConsumption = new CompletedBusFuelConsumption() {
 					Fuel = specificResult.FuelData.Single(f => f.FuelType == fuel),
 					EnergyDemand = completedFuelConsumption,
@@ -268,19 +270,30 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			result.CO2Total = co2Sum;
 
 
-			result.ElectricEnergyConsumption = null;
+            result.ElectricEnergyConsumption = null;
 			
 			if (!(primaryResult.ElectricEnergyConsumption?.IsEqual(0) ?? true)){
 				var electricEnergyFactor = CalculateFactor(combinedResults,
 					r => r.ElectricEnergyConsumption);
 				result.ElectricEnergyConsumption =
 					electricEnergyFactor * primaryResult.ElectricEnergyConsumption * specificResult.Distance;
+
             }
 
-			
 
 
-			result.ZEV_FuelConsumption_AuxHtr = -777.SI<Kilogram>();
+			if (specificResult.ZEV_FuelConsumption_AuxHtr?.IsGreaterOrEqual(0) ?? false) {
+				result.ZEV_FuelConsumption_AuxHtr = specificResult.ZEV_FuelConsumption_AuxHtr;
+				var auxHeaterFuel = specificResult.AuxHeaterFuel;
+
+				result.AuxHeaterFuel = auxHeaterFuel;
+				result.FuelData.Add(auxHeaterFuel);
+
+				result.ZEV_CO2 = result.ZEV_FuelConsumption_AuxHtr * auxHeaterFuel.CO2PerFuelWeight;
+			}
+
+
+
 
 			if (genericResult.VectoRunData.JobType.IsOneOf(VectoSimulationJobType.BatteryElectricVehicle,
 					VectoSimulationJobType.IEPC_E)) {
@@ -290,9 +303,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 				result.EquivalentAllElectricRange = elRanges.EquivalentAllElectricRange;
 				result.ActualChargeDepletingRange = elRanges.ActualChargeDepletingRange;
 				result.ZeroCO2EmissionsRange = elRanges.ZeroCO2EmissionsRange;
-			} 
-
+			}
 
+			
             _results.Add(result);
         }
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index d637e284fbdf65d722d64a435705724a899820d4..4b5fd91f5336b4c658faf616d0c4ef42427a5a4a 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -34,7 +34,6 @@ using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Data;
 using System.Linq;
-using System.Xml;
 using System.Xml.Linq;
 using System.Xml.XPath;
 using TUGraz.VectoCommon.BusAuxiliaries;
@@ -230,6 +229,13 @@ namespace TUGraz.VectoCore.OutputData.XML
 					EquivalentAllElectricRange = ranges.EquivalentAllElectricRange;
 					ZeroCO2EmissionsRange = ranges.ZeroCO2EmissionsRange;
 					ElectricEnergyConsumption = ranges.ElectricEnergyConsumption;
+			
+					var fc = data.CorrectedModalData.FuelCorrection.Values.FirstOrDefault();
+					if (fc != null) {
+						ZEV_FuelConsumption_AuxHtr = fc.FC_AUXHTR_KM * Distance;
+						AuxHeaterFuel = fc.Fuel;
+
+					}
 				}
 
 				if (data.HasGearbox && !runData.JobType.IsOneOf(VectoSimulationJobType.IEPC_E, VectoSimulationJobType.IEPC_S)) {
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs
index 7a112c1f7b778547d427ebd4ca5cdbea1e5ebfec..f41d165c300cd1c15f9e3c7e19bdf5da11fe02da 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs
@@ -38,7 +38,9 @@ public class PrimaryBusSimulation
 	private const string BASE_DIR = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\";
 
 	private const string BASE_DIR_COMPLETED = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus";
-	private const string BASE_DIR_VIF = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus\VIF";
+
+	private const string BASE_DIR_FACTOR_METHOD_MODEL_DATA = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus\FactorMethod";
+    private const string BASE_DIR_VIF = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus\VIF";
 	private ThreadLocal<StandardKernel> _kernel;
 
 	private StandardKernel Kernel => _kernel.Value;
@@ -178,6 +180,7 @@ public class PrimaryBusSimulation
 	TestCase(@"PrimaryBus/P-HEV/PrimaryCityBus_P1_HEV_Supercap.xml", @"HEV_completedBus_2.xml", @"PrimaryCityBus_P1_HEV_Supercap.RSLT_VIF.xml", CycleCO, LowL, 
 		TestName = "2nd Amendment FactorMethodRunData CityBus HEV P1 SuperCap"),
 
+
     ]
     public void TestFactorMethodRunData(string primary, string completed, string vifFile, MissionType mission, LoadingType loading)
 	{
@@ -230,6 +233,31 @@ public class PrimaryBusSimulation
 
 		SerializeRunData(runsFactoryFinal, outputPath);
     }
+	
+
+
+	[TestCase()]
+	public void TestFactorMethodRunDataFromDedicatedFolder(string subfolder, string primary, string completed, MissionType mission, LoadingType loading, string testName)
+	{
+
+		bool createVif = true;
+
+		string vif = "";
+		var testMissionFilter = GetTestMissionFilter();
+		testMissionFilter.SetMissions((mission, loading));
+
+
+		RunSimulationPrimary(primary, -1, out vif);
+
+
+		TestFactorMethodRunData(primary, completed, vif, mission, loading);
+	}
+
+	public TestMissionFilter GetTestMissionFilter()
+	{
+		Kernel.Rebind<IMissionFilter>().To<TestMissionFilter>();
+		return Kernel.Get<TestMissionFilter>();
+	}
 
     private static void SerializeRunData(ISimulatorFactory runsFactorySingle, string outputPath)
 	{
@@ -312,7 +340,7 @@ public class PrimaryBusSimulation
 		
 		var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
 		
-		//runsFactory.WriteModalResults = true;
+		runsFactory.WriteModalResults = true;
 		runsFactory.SerializeVectoRunData = true;
 		var jobContainer = new JobContainer(new SummaryDataContainer(fileWriter)) { };
         //var jobContainer = new JobContainer(new MockSumWriter()) { };
@@ -331,6 +359,10 @@ public class PrimaryBusSimulation
 	}
 
 	public void RunSimulationPrimary(string jobFile, int runIdx)
+	{
+		RunSimulationPrimary(jobFile, runIdx, out var _);
+	}
+	public void RunSimulationPrimary(string jobFile, int runIdx, out string vifFile)
 	{
 		var filePath = Path.Combine(BASE_DIR, jobFile);
 		var dataProvider = _xmlReader.CreateDeclaration(filePath);
@@ -370,7 +402,7 @@ public class PrimaryBusSimulation
 		jobContainer.WaitFinished();
 		Assert.IsTrue(jobContainer.AllCompleted);
 		Assert.IsTrue(jobContainer.Runs.TrueForAll(runEntry => runEntry.Success));
-
+		vifFile = fileWriter.XMLMultistageReportFileName;
 		PrintRuns(jobContainer, fileWriter);
 		PrintFiles(fileWriter);
 	}