diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
index dd63bc33223878fc8cbc1b7146987e01c090727f..aca0d0a9e7f3ca929114984d2e52b9c9455e3bf2 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
@@ -681,7 +681,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			var checkAirdragModified = false;
 			var validAirdragEntries = true;
 
-			var stages = _manufacturingStages.Reverse();
+			var t = _manufacturingStages.ToList(); 
+
+			var stages = _manufacturingStages.Reverse().ToList();
 			foreach (var manufacturingStage in stages) {
 				if (manufacturingStage.Vehicle?.Components?.AirdragInputData != null && !checkAirdragModified ) {
 					checkAirdragModified = true;
@@ -1299,10 +1301,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		private IList<Tuple<HeatPumpType, HeatPumpMode>> GetHeatPumpPassengerCompartments()
 		{
 			if (_manufacturingStages?.Any() != true)
-				return null;
+				return null; 
 
-			return _manufacturingStages?.First()?.Vehicle?.Components?.BusAuxiliaries?.HVACAux
-				?.HeatPumpPassengerCompartments;
+			foreach (var entry in _manufacturingStages) {
+				if (entry.Vehicle?.Components?.BusAuxiliaries?.HVACAux?.HeatPumpPassengerCompartments != null)
+					return entry.Vehicle.Components.BusAuxiliaries.HVACAux.HeatPumpPassengerCompartments;
+			}
+
+			return null;
 		}
 
 
@@ -1342,6 +1348,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		public override bool IsInputDataComplete(VectoSimulationJobType jobType)
 		{
 			return MethodComplete(IsCorrectSystemConfiguration(), nameof(IsCorrectSystemConfiguration))
+					&& InputComplete(HeatPumpTypeDriverCompartment, nameof(HeatPumpTypeDriverCompartment))
+					&& InputComplete(HeatPumpModeDriverCompartment, nameof(HeatPumpModeDriverCompartment))
+					&& InputComplete(HeatPumpPassengerCompartments, nameof(HeatPumpPassengerCompartments))
 					&& InputComplete(AuxHeaterPower, nameof(AuxHeaterPower))
 					&& InputComplete(DoubleGlazing, nameof(DoubleGlazing))
 					&& InputComplete(AdjustableAuxiliaryHeater, nameof(AdjustableAuxiliaryHeater))
diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
index 4f8544b7a45c25d5b2db87648c68f0ffc58ebe25..ec837b65c65e031d025390bdbb22639938e6ed4e 100644
--- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
@@ -103,9 +103,221 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 				var validator = new XMLValidator(xmlReader);
 				Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError);
 			}
+		}
+
+		#region VIF result file test
+
+		[TestCase(VIFInputFile, InputFilePath, 1)]
+		public void TestVifGeneration(string vifFilename, string inputFilename, int numRuns)
+		{
+			//Input files
+			var inputReader = XmlReader.Create(inputFilename);
+			var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader);
+			var vehicle = inputDataProvider.JobInputData.Vehicle;
+
+			var vifReader = XmlReader.Create(vifFilename);
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+
+			var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0;
+			var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages);
+			
+			var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle);
+			var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer);
+			var jobContainer = new JobContainer(new MockSumWriter());
 
+			var runs = factory.SimulationRuns().ToList();
+			Assert.AreEqual(numRuns, runs.Count);
+			foreach (var run in runs)
+			{
+				jobContainer.AddRun(run);
+			}
+
+			jobContainer.Execute();
+			jobContainer.WaitFinished();
+			var progress = jobContainer.GetProgress();
+			Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error)));
+
+			using (var xmlReader = XmlReader.Create(writer.XMLMultistageReportFileName))
+			{
+				var validator = new XMLValidator(xmlReader);
+				Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError);
+			}
+
+			TestNewVifData(writer.XMLMultistageReportFileName);
 		}
 		
+
+		
+
+		private void TestNewVifData(string filePath)
+		{
+			var vifReader = XmlReader.Create(filePath);
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+
+			Assert.AreEqual(3, vifDataProvider.JobInputData.ManufacturingStages.Count());
+			TestVifStage2Data(vifDataProvider.JobInputData.ManufacturingStages[0]);
+			TestVifStage3Data(vifDataProvider.JobInputData.ManufacturingStages[1]);
+			TestVifStage4Data(vifDataProvider.JobInputData.ManufacturingStages[2]);
+		}
+		
+		private void TestVifStage2Data(IManufacturingStageInputData data)
+		{
+			Assert.AreEqual(2, data.StageCount);
+			TestSignatureData(data.HashPreviousStage, "nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=",
+				"#PIF-d10aff76c5d149948046");
+
+			Assert.AreEqual("Intermediate Manufacturer 1", data.Vehicle.Manufacturer);
+			Assert.AreEqual("Intermediate Manufacturer Address 1", data.Vehicle.ManufacturerAddress);
+			Assert.AreEqual("VEH-1234567890", data.Vehicle.VIN);
+			Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), data.Vehicle.Date);
+			Assert.AreEqual(VehicleDeclarationType.interim, data.Vehicle.VehicleDeclarationType);
+			Assert.AreEqual(null, data.Vehicle.ADAS);
+			Assert.AreEqual(null, data.Vehicle.Components);
+
+			TestApplicationInformation(data.ApplicationInformation, "!!NOT FOR CERTIFICATION!!",
+				"2021-01-12T07:20:08.0187663Z");
+
+			TestSignatureData(data.Signature, "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=",
+				"#RESULT-6f30c7fe665a47938f6b");
+		}
+
+		private void TestVifStage3Data(IManufacturingStageInputData data)
+		{
+			Assert.AreEqual(3, data.StageCount);
+			TestSignatureData(data.HashPreviousStage, "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=",
+				"#RESULT-6f30c7fe665a47938f6b");
+
+			Assert.AreEqual("Intermediate Manufacturer 2", data.Vehicle.Manufacturer);
+			Assert.AreEqual("Intermediate Manufacturer Address 2", data.Vehicle.ManufacturerAddress);
+			Assert.AreEqual("VEH-2234567890", data.Vehicle.VIN);
+			Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), data.Vehicle.Date);
+			Assert.AreEqual(VehicleDeclarationType.final, data.Vehicle.VehicleDeclarationType);
+
+			Assert.AreEqual(true, data.Vehicle.ADAS.EngineStopStart);
+			Assert.AreEqual(EcoRollType.WithEngineStop, data.Vehicle.ADAS.EcoRoll);
+			Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, data.Vehicle.ADAS.PredictiveCruiseControl);
+			Assert.AreEqual(null, data.Vehicle.ADAS.ATEcoRollReleaseLockupClutch);
+
+			var aux = data.Vehicle.Components.BusAuxiliaries;
+			Assert.AreEqual(true, aux.ElectricConsumers.InteriorLightsLED);
+			Assert.AreEqual(true, aux.ElectricConsumers.DayrunninglightsLED);
+			Assert.AreEqual(false, aux.ElectricConsumers.PositionlightsLED);
+			Assert.AreEqual(false, aux.ElectricConsumers.BrakelightsLED);
+			Assert.AreEqual(true, aux.ElectricConsumers.HeadlightsLED);
+
+			var hvac = data.Vehicle.Components.BusAuxiliaries.HVACAux;
+			Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, hvac.SystemConfiguration);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpTypeDriverCompartment);
+			Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpModeDriverCompartment);
+			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvac.HeatPumpPassengerCompartments[0].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[0].Item2);
+			Assert.AreEqual(50.SI<Watt>(), hvac.AuxHeaterPower);
+			Assert.AreEqual(false, hvac.DoubleGlazing);
+			Assert.AreEqual(true, hvac.AdjustableAuxiliaryHeater);
+			Assert.AreEqual(false, hvac.SeparateAirDistributionDucts);
+			Assert.AreEqual(false, hvac.WaterElectricHeater);
+			Assert.AreEqual(false, hvac.AirElectricHeater);
+			Assert.AreEqual(true, hvac.OtherHeatingTechnology);
+
+			TestApplicationInformation(data.ApplicationInformation, "!!NOT FOR CERTIFICATION!!!",
+				"2021-03-13T07:20:08.0187663Z");
+
+			TestSignatureData(data.Signature, "GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=",
+				"#RESULT-8f30c7fe665a47938f6b");
+		}
+
+		private void TestVifStage4Data(IManufacturingStageInputData data)
+		{
+			Assert.AreEqual(4, data.StageCount);
+			TestSignatureData(data.HashPreviousStage, "GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=",
+				"#RESULT-8f30c7fe665a47938f6b");
+			
+			Assert.AreEqual("Some Manufacturer", data.Vehicle.Manufacturer);
+			Assert.AreEqual("Some Manufacturer Address", data.Vehicle.ManufacturerAddress);
+			Assert.AreEqual("VEH-1234567890", data.Vehicle.VIN);
+			Assert.AreEqual(DateTime.Parse("2020-01-09T11:00:00Z").ToUniversalTime(), data.Vehicle.Date);
+			Assert.AreEqual("Sample Bus Model", data.Vehicle.Model);
+			Assert.AreEqual(LegislativeClass.M3, data.Vehicle.LegislativeClass);
+			Assert.AreEqual(500, data.Vehicle.CurbMassChassis.Value());
+			Assert.AreEqual(3500, data.Vehicle.GrossVehicleMassRating.Value());
+			Assert.AreEqual(null, data.Vehicle.AirdragModifiedMultistage);
+			Assert.AreEqual(TankSystem.Compressed, data.Vehicle.TankSystem);
+			Assert.AreEqual(RegistrationClass.II_III, data.Vehicle.RegisteredClass);
+			Assert.AreEqual(1, data.Vehicle.NumberPassengerSeatsLowerDeck);
+			Assert.AreEqual(10, data.Vehicle.NumberPassengersStandingLowerDeck);
+			Assert.AreEqual(11, data.Vehicle.NumberPassengerSeatsUpperDeck);
+			Assert.AreEqual(2, data.Vehicle.NumberPassengersStandingUpperDeck);
+			Assert.AreEqual(VehicleCode.CB, data.Vehicle.VehicleCode);
+			Assert.AreEqual(false, data.Vehicle.LowEntry);
+			Assert.AreEqual(2.5.SI<Meter>(), data.Vehicle.Height);//HeightIntegratedBody
+			Assert.AreEqual(9.5.SI<Meter>(), data.Vehicle.Length);
+			Assert.AreEqual(2.5.SI<Meter>(), data.Vehicle.Width);
+			Assert.AreEqual(2.SI<Meter>(), data.Vehicle.EntranceHeight);
+			Assert.AreEqual(VehicleDeclarationType.interim, data.Vehicle.VehicleDeclarationType);
+			
+			Assert.AreEqual(true, data.Vehicle.ADAS.EngineStopStart);
+			Assert.AreEqual(EcoRollType.None, data.Vehicle.ADAS.EcoRoll);
+			Assert.AreEqual(PredictiveCruiseControlType.None, data.Vehicle.ADAS.PredictiveCruiseControl);
+			Assert.AreEqual(true, data.Vehicle.ADAS.ATEcoRollReleaseLockupClutch);
+			
+			var airdrag = data.Vehicle.Components.AirdragInputData as AbstractCommonComponentType;
+			Assert.NotNull(airdrag);
+			Assert.AreEqual("Generic Manufacturer", airdrag.Manufacturer);
+			Assert.AreEqual("Generic Model", airdrag.Model);
+			Assert.AreEqual("e12*0815/8051*2017/05E0000*00", airdrag.CertificationNumber);
+			Assert.AreEqual(DateTime.Parse("2017-03-24T15:00:00Z").ToUniversalTime(), airdrag.Date);
+			Assert.AreEqual("Vecto AirDrag x.y", airdrag.AppVersion);
+			Assert.AreEqual(6.34.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.AirDragArea);
+			Assert.AreEqual(6.31.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.AirDragArea_0);
+			Assert.AreEqual(6.32.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.TransferredAirDragArea);
+			TestSignatureData(airdrag.DigestValue, "b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=", "#CabinX23h");
+			
+			var aux = data.Vehicle.Components.BusAuxiliaries;
+			Assert.AreEqual(false, aux.ElectricConsumers.InteriorLightsLED);
+			Assert.AreEqual(true, aux.ElectricConsumers.DayrunninglightsLED);
+			Assert.AreEqual(true, aux.ElectricConsumers.PositionlightsLED);
+			Assert.AreEqual(true, aux.ElectricConsumers.BrakelightsLED);
+			Assert.AreEqual(false, aux.ElectricConsumers.HeadlightsLED);
+			
+			var hvac = data.Vehicle.Components.BusAuxiliaries.HVACAux;
+			Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvac.SystemConfiguration);
+			Assert.AreEqual(HeatPumpType.none, hvac.HeatPumpTypeDriverCompartment);
+			Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpModeDriverCompartment);
+			Assert.AreEqual(3, hvac.HeatPumpPassengerCompartments.Count);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpPassengerCompartments[0].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[0].Item2);
+			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvac.HeatPumpPassengerCompartments[1].Item1);
+			Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpPassengerCompartments[1].Item2);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpPassengerCompartments[2].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[2].Item2);
+			Assert.AreEqual(50.SI<Watt>(), hvac.AuxHeaterPower);
+			Assert.AreEqual(false, hvac.DoubleGlazing);
+			Assert.AreEqual(true, hvac.AdjustableAuxiliaryHeater);
+			Assert.AreEqual(false, hvac.SeparateAirDistributionDucts);
+			Assert.AreEqual(true, hvac.WaterElectricHeater);
+			Assert.AreEqual(false, hvac.AirElectricHeater);
+			Assert.AreEqual(false, hvac.OtherHeatingTechnology);
+		}
+		
+		private void TestSignatureData(DigestData digestData, string digestValue, string reference)
+		{
+			Assert.AreEqual(reference, digestData.Reference);
+			Assert.AreEqual("urn:vecto:xml:2017:canonicalization", digestData.CanonicalizationMethods[0]);
+			Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", digestData.CanonicalizationMethods[1]);
+			Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", digestData.DigestMethod);
+			Assert.AreEqual(digestValue, digestData.DigestValue);
+		}
+
+		private void TestApplicationInformation(IApplicationInformation appInfo, string version, string date)
+		{
+			Assert.AreEqual(version, appInfo.SimulationToolVersion);
+			Assert.AreEqual(DateTime.Parse(date).ToUniversalTime(), appInfo.Date);
+		}
+
+		#endregion
+
+		
+
 		[TestCase()]
 		public void TestMultistageSimulationRun()
 		{
@@ -562,5 +774,12 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 
 		#endregion
 
+
+		
+
+
+
+
+
 	}
 }
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml
index aa01f826f3343f45922fe4717646f37d704188f6..c417f3e1822ca5785ab51ec4db0b9a5ac6a00365 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml
@@ -79,6 +79,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCor
 						<HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment>
 						<HeatPumpTypePassengerCompartment>non R-744 3-stage</HeatPumpTypePassengerCompartment>
 						<HeatPumpModePassengerCompartment>heating</HeatPumpModePassengerCompartment>
+						<HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment>
+						<HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment>
 						<AuxiliaryHeaterPower>50</AuxiliaryHeaterPower>
 						<DoubleGlazing>false</DoubleGlazing>
 						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml
index bb432ee094e9f93de43e1040463e910c6766cf9c..0ad9eb1fd6408dfc14358161bfd69f0884139892 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml
@@ -691,6 +691,22 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							</di:Reference>
 						</v2.0:Signature>
 					</v2.8:AirDrag>
+					<v2.8:Auxiliaries>
+						<v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType">
+							<v2.8:HVAC>
+								<v2.8:SystemConfiguration>1</v2.8:SystemConfiguration>
+								<v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment>
+								<v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment>
+								<v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment>
+								<v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment>
+								<v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower>
+								<v2.8:DoubleGlazing>false</v2.8:DoubleGlazing>
+								<v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater>
+								<v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts>
+							</v2.8:HVAC>
+						</v2.8:Data>
+					</v2.8:Auxiliaries>
+
 				</v2.8:Components>
 			</Vehicle>
 			<ApplicationInformation>
@@ -752,6 +768,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 								<v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment>
 								<v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment>
 								<v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment>
+								<v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment>
+								<v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment>
 								<v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower>
 								<v2.8:DoubleGlazing>false</v2.8:DoubleGlazing>
 								<v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml
index 690f75c117ec8f692aaac5eff3caaa49f7cd8d87..b164a8f8f048591b8bd24c8888bc574184d3b4e6 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml
@@ -688,7 +688,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</HashPreviousStage>
 			<Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle">
 				<v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer>
-				<v2.8:ManufacturerAddress></v2.8:ManufacturerAddress>
+				<v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress>
 				<v2.8:VIN>VEH-2234567890</v2.8:VIN>
 				<v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date>			
 				<v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType>
@@ -729,8 +729,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				</v2.8:Components>		
 			</Vehicle>
 			<ApplicationInformation>
-				<SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion>
-				<Date>2021-02-13T07:20:08.0187663Z</Date>
+				<SimulationToolVersion>!!NOT FOR CERTIFICATION!!!</SimulationToolVersion>
+				<Date>2021-03-13T07:20:08.0187663Z</Date>
 			</ApplicationInformation>
 		</Data>		
 		<Signature>
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
index d03f757ed1c2c6a8df4062a92b8f54a48063ef54..50fba39851d0b4653563b5ea849c5b4cc42ab59a 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
@@ -110,7 +110,8 @@ namespace TUGraz.VectoCore.Tests.XML
 		{ 
 			var reader = XmlReader.Create(_primaryOnlyInputData);
 			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
-			
+
+			Assert.AreEqual(null, inputDataProvider.JobInputData.ManufacturingStages);
 			Assert.AreEqual(null, inputDataProvider.JobInputData.ConsolidateManufacturingStage);
 			Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
 		}
@@ -151,6 +152,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(null, vehicle.ADAS);
 
 			Assert.AreEqual(null, vehicle.Components);
+
 		}
 
 		[TestCase]
@@ -199,6 +201,17 @@ namespace TUGraz.VectoCore.Tests.XML
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataAirdrag);
 			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+
+			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
+			Assert.NotNull(hvaux);
+			Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment);
+			Assert.AreEqual(2, hvaux.HeatPumpPassengerCompartments.Count);
+			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpPassengerCompartments[1].Item1);
+			Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpPassengerCompartments[1].Item2);
+
 			Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
 		}
 
@@ -207,6 +220,15 @@ namespace TUGraz.VectoCore.Tests.XML
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatPump);
 			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+
+			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
+			Assert.NotNull(hvaux);
+			Assert.AreEqual(HeatPumpMode.N_A, hvaux.HeatPumpModeDriverCompartment);
+			Assert.AreEqual(HeatPumpType.none, hvaux.HeatPumpTypeDriverCompartment);
+			Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count);
+			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2);
+
 			Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
 		}
 		
@@ -215,6 +237,15 @@ namespace TUGraz.VectoCore.Tests.XML
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatHev);
 			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+
+			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
+			Assert.NotNull(hvaux);
+			Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment);
+			Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count);
+			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2);
+
 			Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
 		}
 
@@ -223,6 +254,16 @@ namespace TUGraz.VectoCore.Tests.XML
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatNgTank);
 			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+
+			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
+			Assert.NotNull(hvaux);
+			Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment);
+			Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count);
+			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2);
+
+
 			Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
 		}
 	}
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
index 9924e014fe1c3a4f21b39cafcad7027b2ed88313..6a337e3dace079efaf26bb6f597f22ec8429f4db 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
@@ -611,7 +611,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		{
 			Assert.AreEqual("MSTG-2-Vehicle", vehicleData.Identifier);
 			Assert.AreEqual("Intermediate Manufacturer 2", vehicleData.Manufacturer);
-			Assert.AreEqual("", vehicleData.ManufacturerAddress);
+			Assert.AreEqual("Intermediate Manufacturer Address 2", vehicleData.ManufacturerAddress);
 			Assert.AreEqual("VEH-2234567890", vehicleData.VIN);
 			Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicleData.Date);
 			Assert.AreEqual(null, vehicleData.AirdragModifiedMultistage);
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
index 3837313f74ac108d6f61295178ce298bc91f5f41..fa4c8b678a3b34567e2ea0e8a8120219f0b36004 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
@@ -112,11 +112,13 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration);
 			Assert.AreEqual(HeatPumpType.none, hvacAux.HeatPumpTypeDriverCompartment);
 			Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment);
-			Assert.AreEqual(2, hvacAux.HeatPumpPassengerCompartments.Count);
+			Assert.AreEqual(3, hvacAux.HeatPumpPassengerCompartments.Count);
 			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1);
 			Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[0].Item2);
 			Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpPassengerCompartments[1].Item1);
 			Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpPassengerCompartments[1].Item2);
+			Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[2].Item1);
+			Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[2].Item2);
 			Assert.AreEqual(50, hvacAux.AuxHeaterPower.Value());
 			Assert.AreEqual(false, hvacAux.DoubleGlazing);
 			Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater);