diff --git a/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs b/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs
index e62c06a5ebf839b3b8b31c2cbd98f09f9e2c1887..5f2bc79206ae6517b0fede51ce06d44229bf42c1 100644
--- a/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs
@@ -37,7 +37,7 @@ namespace VECTO3GUI2020.Ninject
 			return _multiStageVmFactoryDefaultInstanceProvider.GetNewMultistageJobViewModel();
 		}
 
-		public IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData)
+		public IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData)
 		{
 			return _multiStageVmFactoryDefaultInstanceProvider.GetMultiStageJobViewModel(inputData);
 		}
diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
index 64af8453d7fa9575b0a459a00968c71a33635648..dc2588672303f90648884390115496406cbac799 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
@@ -284,7 +284,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 			var documentType = XMLHelper.GetDocumentType(xElement?.DocumentElement?.LocalName);
 			if (documentType == XmlDocumentType.MultistepOutputData)
 			{
-				var inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider;
+				var inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider;
 				return Task.FromResult(_multiStageViewModelFactory.GetMultiStageJobViewModel(inputDataProvider) as IDocumentViewModel);
 			}
 			else if (documentType == XmlDocumentType.DeclarationJobData)
@@ -495,7 +495,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 							} else if (XMLNames.VectoOutputMultistep.Equals(rootNode,
 								StringComparison.InvariantCultureIgnoreCase)) {
 								using (var reader = XmlReader.Create(fullFileName)) {
-									input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistageBusInputDataProvider, null);
+									input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistepBusInputDataProvider, null);
 									FileWriter = new FileOutputVIFWriter(fullFileName,
 										(jobEntry as MultiStageJobViewModel_v0_1).ManufacturingStages?.Count ?? 0);
 								}
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
index 0e4fa28a6e30b84d0ac70e629f8d739340545ad8..250aff162fa57b7b9c5786b0ea6c1b47a7306bb2 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
@@ -31,7 +31,7 @@ using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
 namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 {
 
-	public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistageBusInputDataProvider, IJobViewModel, IEditViewModel
+	public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistepBusInputDataProvider, IJobViewModel, IEditViewModel
 	{
 		IManufacturingStageViewModel ManufacturingStageViewModel { get; }
 		bool Exempted { get; }
@@ -66,7 +66,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			set => SetProperty(ref _manufacturingStageViewModel, value);
 		}
 
-		public MultiStageJobViewModel_v0_1(IMultistageBusInputDataProvider inputData, 
+		public MultiStageJobViewModel_v0_1(IMultistepBusInputDataProvider inputData, 
 			IMultiStageViewModelFactory vmFactory, 
 			IMultistageDependencies multistageDependencies,
 			IXMLInputDataReader inputDataReader, 
@@ -311,7 +311,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
         private readonly Lazy<IDialogHelper> _dialogHelper;
 		private readonly IMultistageDependencies _multistageDependencies;
 		private readonly DataSource _dataSource;
-		private readonly IMultistageBusInputDataProvider _inputData;
+		private readonly IMultistepBusInputDataProvider _inputData;
 		private bool _selected;
 		private readonly bool _exempted;
 		private readonly IJobListViewModel _jobListViewModel;
@@ -363,7 +363,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public IVehicleDeclarationInputData VehicleInputData => _manufacturingStageViewModel.Vehicle;
 
-		public IMultistageBusInputDataProvider MultistageJobInputData => this;
+		public IMultistepBusInputDataProvider MultistageJobInputData => this;
 
 
 		#endregion
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs
index b3bfb612b3134a43abc35ce54a3040a5330b73e0..6f7ae23bba1e830f892026f95f273a9a4117621c 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs
@@ -80,10 +80,10 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			{
 				return;
 			}
-			IMultistageBusInputDataProvider inputDataProvider = null;
+			IMultistepBusInputDataProvider inputDataProvider = null;
 			try
 			{
-				inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider;
+				inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider;
 			}
 			catch (Exception e)
 			{
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
index 33cad2ad89c2b53d96dc056a0e7dad2cd348717b..cc48e57667c98b9967de9e5c78e3e4843781fc5b 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
@@ -43,7 +43,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces
 		IDocumentViewModel GetStageInputViewModel(bool exemptedVehicle);
 		IViewModelBase GetNewMultistageJobViewModel();
 
-		IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData);
+		IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData);
 
 		IVehicleViewModel GetInterimStageVehicleViewModel();
 
diff --git a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
index 9cf11d8a5ce7b1c78f7bb2b29ce035c9733b078c..6eb5103bdf51a8728ac17f4c40f1ed8250a8cce6 100644
--- a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
@@ -146,7 +146,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			Assert.AreEqual(2, jobListVm.Jobs.Count);
 			Assert.AreEqual(result, jobListVm.Jobs[1].DataSource.SourceFile);
 
-			var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistepBusInputDataProvider;
 			Assert.NotNull(inputDataProvider);
 
 			//Check added Manufacturing Stage
diff --git a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
index b97727778b32ecf03505bd77a671827ecd9b4e65..abc1aff1bff0d2c00922031823c6e5201b15d235 100644
--- a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
+++ b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
@@ -45,9 +45,10 @@ namespace TUGraz.VectoCommon.Hashing
 		Airdrag,
 		Tyre,
 		Vehicle,
-		VectoOutput,
+		VectoManufacturerReport,
 		VectoCustomerInformation,
 		VectoPrimaryVehicleInformation,
+		VectoInterimVehicleInformation,
 		VectoManufacturingStep, 
 		BatterySystem,
 		CapacitorSystem,
@@ -81,7 +82,7 @@ namespace TUGraz.VectoCommon.Hashing
 					return XMLNames.AxleWheels_Axles_Axle_Tyre;
 				case VectoComponents.Vehicle:
 					return XMLNames.Component_Vehicle;
-				case VectoComponents.VectoOutput:
+				case VectoComponents.VectoManufacturerReport:
 					return "VectoOutput";
 				case VectoComponents.VectoCustomerInformation:
 					return "VectoCustomerInformation";
@@ -127,12 +128,14 @@ namespace TUGraz.VectoCommon.Hashing
 					return "AD-";
 				case VectoComponents.Tyre:
 					return "TYRE-";
-				case VectoComponents.VectoOutput:
-					return "RESULT-";
+				case VectoComponents.VectoManufacturerReport:
+					return "MRF-";
 				case VectoComponents.VectoCustomerInformation:
-					return "COC-";
+					return "CIF-";
 				case VectoComponents.VectoPrimaryVehicleInformation:
-					return "PIF-";
+					return "VIF_P-";
+				case VectoComponents.VectoInterimVehicleInformation:
+					return "VIF_I-";
 				case VectoComponents.Vehicle:
 					return "VEH-";
 				case VectoComponents.VectoManufacturingStep:
@@ -160,7 +163,7 @@ namespace TUGraz.VectoCommon.Hashing
 		{
 			switch (component) {
 				case VectoComponents.VectoCustomerInformation:
-				case VectoComponents.VectoOutput:
+				case VectoComponents.VectoManufacturerReport:
 				case VectoComponents.VectoPrimaryVehicleInformation:
 				case VectoComponents.VectoManufacturingStep:
 					return true;
diff --git a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs
index e22dcc4707a8abb1b4b75140946d9b213d832b25..96a6089f3b762cabfed412fcba165038f3cc98cc 100644
--- a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs
+++ b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs
@@ -89,7 +89,7 @@ namespace TUGraz.VectoCommon.InputData
 	
 
 
-	public interface IMultistageBusInputDataProvider : IDeclarationInputDataProvider
+	public interface IMultistepBusInputDataProvider : IDeclarationInputDataProvider
 	{
 		new IDeclarationMultistageJobInputData JobInputData { get; }
 	}
@@ -124,7 +124,7 @@ namespace TUGraz.VectoCommon.InputData
 	public interface IMultistageVIFInputData :  IInputDataProvider
 	{
 		IVehicleDeclarationInputData VehicleInputData { get; }
-		IMultistageBusInputDataProvider MultistageJobInputData { get; }
+		IMultistepBusInputDataProvider MultistageJobInputData { get; }
 	}
 }
 
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index 288709fde879e0f541b469a3a14257c52c7520b0..5bd99a03692d08fe4b511aec8593a07feeb8bce3 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -3957,6 +3957,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to ManufacturerRecordSignature.
+        /// </summary>
+        public static string Report_ManufacturerRecord_Signature {
+            get {
+                return ResourceManager.GetString("Report_ManufacturerRecord_Signature", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to EnergyConsumption.
         /// </summary>
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index 31ae3f17620dbb7e60ff0fb2c586210e6a528e81..ff407bcb2eded8fd0f5b522dbd028acbb08f1435 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1020,6 +1020,9 @@
   <data name="Report_ResultData_Signature" xml:space="preserve">
     <value>ResultDataSignature</value>
   </data>
+  <data name="Report_ManufacturerRecord_Signature" xml:space="preserve">
+    <value>ManufacturerRecordSignature</value>
+  </data>
   <data name="Report_Result_Payload" xml:space="preserve">
     <value>Payload</value>
   </data>
diff --git a/VectoCommon/VectoHashing/VectoHash.cs b/VectoCommon/VectoHashing/VectoHash.cs
index 9b0c9c6b1dc05bf9e4b6365afefb1d9c1c30c3a0..e389713ead82e7ce606c8408d317dce0eadf9f68 100644
--- a/VectoCommon/VectoHashing/VectoHash.cs
+++ b/VectoCommon/VectoHashing/VectoHash.cs
@@ -288,7 +288,7 @@ namespace TUGraz.VectoHashing
 				return components.First();
 			}
 			if (Document.DocumentElement.LocalName.Equals("VectoOutput")) {
-				return VectoComponents.VectoOutput;
+				return VectoComponents.VectoManufacturerReport;
 			}
 			if (Document.DocumentElement.LocalName.Equals("VectoCustomerInformation")) {
 				return VectoComponents.VectoCustomerInformation;
diff --git a/VectoCommon/VectoHashingTest/VectoHashTest.cs b/VectoCommon/VectoHashingTest/VectoHashTest.cs
index af3457ba5635fa09e1b1dc0874efb977a037c7ed..066dd767fe7b54c637f338699e8c86fe7efb892c 100644
--- a/VectoCommon/VectoHashingTest/VectoHashTest.cs
+++ b/VectoCommon/VectoHashingTest/VectoHashTest.cs
@@ -640,7 +640,7 @@ namespace VectoHashingTest
 
 			var reader = XmlReader.Create(file);
 
-			var vif = xmlInputReader.CreateDeclaration(reader) as IMultistageBusInputDataProvider;
+			var vif = xmlInputReader.CreateDeclaration(reader) as IMultistepBusInputDataProvider;
 			var inputDataProvider = new XMLDeclarationVIFInputData(vif, null);
 
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index d8c01262e7187315dd58a4573755b94eaa6e931a..cb1d9668c0c121abf7171690cccda88dea71c927 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -1030,7 +1030,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
             //PrimaryVehicle = CreateReader(primaryInputData);
 
             Vehicle = _xmlInputReader.CreateDeclaration(CompletedInputDataFile).JobInputData.Vehicle;
-            PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IMultistageBusInputDataProvider);
+            PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IMultistepBusInputDataProvider);
             //JobName = Vehicle.VIN;
         }
 
@@ -1053,7 +1053,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
         //#region Implementation of IDeclarationInputDataProvider
 
         //public IDeclarationJobInputData JobInputData => this;
-        public IMultistageBusInputDataProvider PrimaryVehicleData { get; }
+        public IMultistepBusInputDataProvider PrimaryVehicleData { get; }
         //public XElement XMLHash { get; }
 
         //#endregion
@@ -1070,7 +1070,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
         #region Implementation of IMultistageVIFInputData
 
 		public IVehicleDeclarationInputData VehicleInputData => Vehicle;
-		public IMultistageBusInputDataProvider MultistageJobInputData => PrimaryVehicleData;
+		public IMultistepBusInputDataProvider MultistageJobInputData => PrimaryVehicleData;
 
 		#endregion
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs
index be1422f965f3820779070d645da017d8783f2c31..8d45c71e4fbc6da601b81b3d401d7d8685dcdc80 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs
@@ -218,10 +218,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 	public class XMLDeclarationVIFInputData : IMultistageVIFInputData
 	{
-		private readonly IMultistageBusInputDataProvider _multistageJobInputData;
+		private readonly IMultistepBusInputDataProvider _multistageJobInputData;
 		private readonly IVehicleDeclarationInputData _vehicleInput;
 
-		public XMLDeclarationVIFInputData(IMultistageBusInputDataProvider multistageJobInputData,
+		public XMLDeclarationVIFInputData(IMultistepBusInputDataProvider multistageJobInputData,
 			IVehicleDeclarationInputData vehicleInput)
 		{
 			_multistageJobInputData = multistageJobInputData;
@@ -230,7 +230,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public IVehicleDeclarationInputData VehicleInputData => _vehicleInput;
 
-		public IMultistageBusInputDataProvider MultistageJobInputData => _multistageJobInputData;
+		public IMultistepBusInputDataProvider MultistageJobInputData => _multistageJobInputData;
 
 		public DataSource DataSource { get; }
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs
index 37de4917517342fc4abe7c4f7159064a273332af..eb247dd05d26dabb1f4bbd620e299af4527bddd0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs
@@ -48,7 +48,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces
 		XmlNode ApplicationInformationNode { get; }
 	}
 
-	public interface IXMLMultistageInputDataProvider : IMultistageBusInputDataProvider, IXMLResource
+	public interface IXMLMultistageInputDataProvider : IMultistepBusInputDataProvider, IXMLResource
 	{
 		IXMLDeclarationMultistageVehicleInputDataReader Reader { set; }
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
index 31163f17f984a89a0828caa419b6856163e548b9..0a144792ccb442b556c992178fb3ad4566311877 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
@@ -155,7 +155,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 			}
 		}
 
-		protected virtual IMultistageBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
+		protected virtual IMultistepBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
 		{
 			var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType);
 			try {
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
index a0ed7404c4a83a526265e5bdbf157884cd5fe310..7d9a3523e5079a18b21af8309ed0bfc1b1f022fd 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
@@ -18,7 +18,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 {
 	public class DeclarationModeCompletedMultistageBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory
 	{
-		protected readonly IMultistageBusInputDataProvider InputDataProvider;
+		protected readonly IMultistepBusInputDataProvider InputDataProvider;
 		protected IDeclarationReport Report;
 
 		protected Segment _segmentCompletedBus;
@@ -34,7 +34,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		protected DeclarationDataAdapterCompletedBusGeneric DataAdapterGeneric = new DeclarationDataAdapterCompletedBusGeneric();
 
 		public DeclarationModeCompletedMultistageBusVectoRunDataFactory(
-			IMultistageBusInputDataProvider dataProvider, IDeclarationReport report)
+			IMultistepBusInputDataProvider dataProvider, IDeclarationReport report)
 		{
 
 			InputDataProvider = dataProvider;
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index c0a75a48f35b8c5aadd113d9fef1e2e80316c14d..2b593d99bf07c3f629dfedea82157584a1933ad1 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -183,7 +183,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			//throw new VectoException("No CO2 Group found for vehicle");
 		}
 
-		public static WeightingGroup GetVehicleGroupCO2StandardsGroup(IMultistageBusInputDataProvider multiStageInputDataProvider)
+		public static WeightingGroup GetVehicleGroupCO2StandardsGroup(IMultistepBusInputDataProvider multiStageInputDataProvider)
 		{
 			return Declaration.WeightingGroup.Unknown;
 		}
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs
index e72870475d13162a59c22722514fd23592ea3db1..0187e3d88f5cba46819d752fa86be834d94581d1 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs
@@ -82,7 +82,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		{
 			//Prepare inputdata for next simulation step
 			var primaryInputData = _inputDataReader.CreateDeclaration(_currentStageOutputDataWriter
-				.GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()) as IMultistageBusInputDataProvider;
+				.GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()) as IMultistepBusInputDataProvider;
 			Debug.Assert(primaryInputData != null);
 			var stageInputData = _originalStageInputData.StageInputData;
 
@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		public override ISimulatorFactory GetNextFactory()
 		{
 			var output = _xmlInputDataReader.CreateDeclaration(
-				XmlReader.Create(CurrentStageOutputDataWriter.MultistageXmlReport.ToString().ToStream())) as IMultistageBusInputDataProvider;
+				XmlReader.Create(CurrentStageOutputDataWriter.MultistageXmlReport.ToString().ToStream())) as IMultistepBusInputDataProvider;
 			var nextStageInput = new XMLDeclarationVIFInputData(output, null);
 
 			return _simulatorFactoryFactory.Factory(ExecutionMode.Declaration, nextStageInput, CurrentStageOutputDataWriter, null, null,
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
index 922fc0ed2f46563c7d1c865519ea2b67c5b3f4ac..5f0400aa30f90e7cf7c2c4dd1495a53dd4d718ad 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
@@ -185,7 +185,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
                                     .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader());
 
                                 var vifInputData = new XMLDeclarationVIFInputData(
-                                    primaryInputData as IMultistageBusInputDataProvider,
+                                    primaryInputData as IMultistepBusInputDataProvider,
                                     multiStagePrimaryAndStageInputData.StageInputData);
 
                                 var manStagesCount =
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs
index a75fa638f245ea254ad6eb79820ad497dc4555d9..968edce4bf5a2a09853757644463b83c614f0958 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs
@@ -36,7 +36,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public abstract string OutputDataType { get; }
 
-		private bool _ovc = false;
+		protected bool _ovc = false;
 		protected AbstractCustomerReport(ICustomerInformationFileFactory cifFactory)
 		{
 			_cifFactory = cifFactory;
@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		#region Implementation of IXMLCustomerReport
 
-		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			InitializeVehicleData(modelData.InputData);
 			_ovc = modelData.VehicleData.Ocv;
@@ -73,19 +73,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public void GenerateReport(XElement resultSignature)
 		{
 			var retVal = new XDocument(new XElement(Cif + "VectoCustomerInformation",
-				new XAttribute(XNamespace.Xmlns + "xsi", xsi),
-				new XAttribute(XNamespace.Xmlns + "cif", Cif.NamespaceName),
-				new XAttribute(XNamespace.Xmlns + "cif0.9", Cif_0_9.NamespaceName),
-				new XAttribute("xmlns", Cif_0_9),
-				new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation", $"{Cif.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputCustomer.xsd"),
-				
-				new XElement(Cif + XMLNames.Report_DataWrap,
-					new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
-					Vehicle,
-					InputDataIntegrity,
-					new XElement(Cif_0_9 + XMLNames.Report_ResultData_Signature, resultSignature),
-					Results,
-					XMLHelper.GetApplicationInfo(Cif_0_9))
+					new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+					new XAttribute(XNamespace.Xmlns + "cif", Cif.NamespaceName),
+					new XAttribute(XNamespace.Xmlns + "cif0.9", Cif_0_9.NamespaceName),
+					new XAttribute("xmlns", Cif_0_9),
+					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation",
+						$"{Cif.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputCustomer.xsd"),
+
+					new XElement(Cif + XMLNames.Report_DataWrap,
+						new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
+						GetReportContents(resultSignature)
+					)
 				)
 			);
 
@@ -98,6 +96,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			Report = h.AddHash();
 		}
 
+		protected virtual IList<XElement> GetReportContents(XElement resultSignature)
+		{
+			return new[] {
+				Vehicle,
+				InputDataIntegrity,
+				new XElement(Cif_0_9 + XMLNames.Report_ManufacturerRecord_Signature, resultSignature),
+				Results,
+				XMLHelper.GetApplicationInfo(Cif_0_9)
+			};
+		}
+
 		#endregion
 
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs
index ee0118943bbd388fc946029622b9a643bb266d53..5f5ce5e906a320ad773578b46e929541cc7d6d15 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		protected virtual IVehicleDeclarationInputData GetVehicle(IDeclarationInputDataProvider inputData)
 		{
-			if (inputData is IMultistageBusInputDataProvider multistep) {
+			if (inputData is IMultistepBusInputDataProvider multistep) {
 				return multistep.JobInputData.PrimaryVehicle.Vehicle;
 			} else {
 				return inputData.JobInputData.Vehicle;
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
index 881144a618a513e933a25e4fe8d43c3f16f39f6f..83688fbcc3146cb7c0712eeee5165678252dd3a3 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
@@ -265,7 +265,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var multistage = inputData as IMultistageBusInputDataProvider;
+			var multistage = inputData as IMultistepBusInputDataProvider;
 			if (multistage == null) {
 				throw new VectoException("BusAuxGroupWriter requires MultistepInputData");
 			}
@@ -364,7 +364,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var multistage = inputData as IMultistageBusInputDataProvider;
+			var multistage = inputData as IMultistepBusInputDataProvider;
 			if (multistage == null) {
 				throw new VectoException("BusAuxGroupWriter requires MultistepInputData");
 			}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs
index faecbb6aba375bd69f762a9c22abef88ce57490a..1ef41b05e93d8d4873cd60c5f61b4dac220f9e89 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs
@@ -49,7 +49,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		#region Implementation of IReportCompletedBusOutputGroup
 
-		public IList<XElement> GetElements(IMultistageBusInputDataProvider multiStageInputDataProvider)
+		public IList<XElement> GetElements(IMultistepBusInputDataProvider multiStageInputDataProvider)
 		{
 			var consolidatedVehicleData = multiStageInputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle;
 			var primary = multiStageInputDataProvider.JobInputData.PrimaryVehicle.Vehicle;
@@ -126,7 +126,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var multistep = inputData as IMultistageBusInputDataProvider;
+			var multistep = inputData as IMultistepBusInputDataProvider;
 			if (multistep == null) {
 				throw new VectoException("Completed Bus CIF requires bus input data");
 			}
@@ -238,7 +238,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var multistep = inputData as IMultistageBusInputDataProvider;
+			var multistep = inputData as IMultistepBusInputDataProvider;
 			if (multistep == null) {
 				throw new VectoException("Completed Bus CIF requires bus input data");
 			}
@@ -267,7 +267,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var multistep = inputData as IMultistageBusInputDataProvider;
+			var multistep = inputData as IMultistepBusInputDataProvider;
 			if (multistep == null) {
 				throw new VectoException("Completed Bus CIF requires bus input data");
 			}
@@ -301,10 +301,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var completedBusData = inputData as IMultistageBusInputDataProvider;
+			var completedBusData = inputData as IMultistepBusInputDataProvider;
 			if (completedBusData == null) {
 				throw new ArgumentException(
-					$"{nameof(inputData)} must implement {nameof(IMultistageBusInputDataProvider)}");
+					$"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			var result = new List<XElement>();
 			result.AddRange(
@@ -332,7 +332,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			return result;
 		}
 
-		protected XElement GetManufacturers(IMultistageBusInputDataProvider completedBusData)
+		protected XElement GetManufacturers(IMultistepBusInputDataProvider completedBusData)
 		{
 			var manufacturers = new XElement(_cif + "Manufacturers",
 				GetManufacturerAndAddress(completedBusData.JobInputData.PrimaryVehicle.Vehicle.Manufacturer,
@@ -363,10 +363,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var completedBusData = inputData as IMultistageBusInputDataProvider;
+			var completedBusData = inputData as IMultistepBusInputDataProvider;
 			if (completedBusData == null) {
 				throw new ArgumentException(
-					$"{nameof(inputData)} must implement {nameof(IMultistageBusInputDataProvider)}");
+					$"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			var result = new List<XElement>();
 			result.AddRange(
@@ -392,7 +392,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			return result;
 		}
 
-		private XElement GetManufacturers(IMultistageBusInputDataProvider completedBusData)
+		private XElement GetManufacturers(IMultistepBusInputDataProvider completedBusData)
 		{
 			var manufacturers = new XElement(_cif + "Manufacturers",
 				GetManufacturerAndAddress(completedBusData.JobInputData.PrimaryVehicle.Vehicle.Manufacturer,
@@ -415,10 +415,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var completedBusData = inputData as IMultistageBusInputDataProvider;
+			var completedBusData = inputData as IMultistepBusInputDataProvider;
 			if (completedBusData == null) {
 				throw new ArgumentException(
-					$"{nameof(inputData)} must implement {nameof(IMultistageBusInputDataProvider)}");
+					$"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			var result = new List<XElement>();
 			result.AddRange(
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
index a297b770912fa284bae82c0a14fc71bcbc7e0e67..d7dcb8a851b872310612d211dcfba85420275982 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
@@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		protected XElement GetRetarder(IDeclarationInputDataProvider inputData)
 		{
 			IRetarderInputData retarder;
-			if (inputData is IMultistageBusInputDataProvider multistage) {
+			if (inputData is IMultistepBusInputDataProvider multistage) {
 				retarder = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.RetarderInputData;
 			} else {
 				retarder = inputData.JobInputData.Vehicle.Components.RetarderInputData;
@@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		protected XElement GetAxleRatio(IDeclarationInputDataProvider inputData, bool optional = false)
 		{
 			IAxleGearInputData axlegear;
-			if (inputData is IMultistageBusInputDataProvider multistage) {
+			if (inputData is IMultistepBusInputDataProvider multistage) {
 				axlegear = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.AxleGearInputData;
 			} else {
 				axlegear = inputData.JobInputData.Vehicle.Components.AxleGearInputData;
@@ -360,7 +360,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			return new XElement(_cif + XMLNames.Component_Vehicle,
 				new XAttribute(_xsi + XMLNames.XSIType, "Conventional_CompletedBusVehicleType"),
 				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
-				_cifFactory.GetConventionalADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetConventionalADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), 
 				_cifFactory.GetEngineGroup().GetElements(inputData),
@@ -388,7 +388,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "HEV_Px_IHPC_CompletedBusVehicleType"),
 				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetHEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), 
 				_cifFactory.GetEngineGroup().GetElements(inputData),
@@ -423,7 +423,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S2_CompletedBusVehicleType"),
 				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetHEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetEngineGroup().GetElements(inputData),
@@ -453,7 +453,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S3_CompletedBusVehicleType"),
 				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetHEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetEngineGroup().GetElements(inputData),
@@ -483,7 +483,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S4_CompletedBusVehicleType"),
 				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetHEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetEngineGroup().GetElements(inputData),
@@ -511,7 +511,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S4_CompletedBusVehicleType"),
 				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetHEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetEngineGroup().GetElements(inputData),
@@ -539,7 +539,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "PEV_E2_CompletedBusVehicleType"),
 				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetPEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
@@ -568,7 +568,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "PEV_E3_CompletedBusVehicleType"),
 				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetPEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
@@ -597,7 +597,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "PEV_E4_CompletedBusVehicleType"),
 				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetPEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
@@ -626,7 +626,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(_xsi + XMLNames.XSIType, "PEV_IEPC_CompletedBusVehicleType"),
 				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
 				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
-				_cifFactory.GetPEVADASType().GetXmlType(((IMultistageBusInputDataProvider)inputData)
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
 					.JobInputData
 					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
 				//_cifFactory.GetEngineGroup().GetElements(inputData),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs
index 60b33d5ebe8fa00fff4c70a550f8e1ddbf4ae134..e01d3d70a410e1defd8902b7f3ab6245fe5c09d4 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs
@@ -4,12 +4,14 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile
 {
@@ -194,7 +196,52 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 
 	#region CompletedBus
-	public class Conventional_CompletedBusCIF : CustomerInformationFile
+
+	public abstract class CustomerInformationFileCompletedBus : CustomerInformationFile
+	{
+		protected XElement InputDataIntegrityPrimaryVehicle { get; set; }
+
+		protected XElement ManufacturerReportIntegrityPrimaryVehicle { get; set; }
+
+		protected CustomerInformationFileCompletedBus(ICustomerInformationFileFactory cifFactory) :
+			base(cifFactory) { }
+
+		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			InitializeVehicleData(modelData.InputData);
+			_ovc = modelData.VehicleData.Ocv;
+
+			var inputData = modelData.InputData as IMultistepBusInputDataProvider;
+			if (inputData == null) {
+				throw new VectoException("CompletedBus CustomerInformationFile requires MultistepBusInputData");
+			}
+			Results = new XElement(Cif_0_9 + "Results");
+			InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature,
+				inputData.JobInputData.ConsolidateManufacturingStage.Signature == null
+					? XMLHelper.CreateDummySig(_di)
+					: inputData.JobInputData.ConsolidateManufacturingStage.Signature.ToXML(_di));
+					//new XElement());
+			InputDataIntegrityPrimaryVehicle = new XElement(Cif_0_9 + "InputDataSignaturePrimaryVehicle",
+				inputData.JobInputData.PrimaryVehicle.PrimaryVehicleInputDataHash.ToXML(_di));
+			ManufacturerReportIntegrityPrimaryVehicle =
+				new XElement(Cif_0_9 + "ManufacturerRecordSignaturePrimaryVehicle", inputData.JobInputData.PrimaryVehicle.ManufacturerRecordHash.ToXML(_di));
+		}
+
+		protected override IList<XElement> GetReportContents(XElement resultSignature)
+		{
+			return new[] {
+				Vehicle,
+				InputDataIntegrityPrimaryVehicle,
+				ManufacturerReportIntegrityPrimaryVehicle,
+				InputDataIntegrity,
+				new XElement(Cif_0_9 + XMLNames.Report_ManufacturerRecord_Signature, resultSignature),
+				Results,
+				XMLHelper.GetApplicationInfo(Cif_0_9)
+			};
+		}
+	}
+
+	public class Conventional_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "Conventional_CompletedBusOutputType";
 
@@ -208,7 +255,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
     }
 
-	public class HEV_Px_CompletedBusCIF : CustomerInformationFile
+	public class HEV_Px_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "HEV_CompletedBusOutputType";
 
@@ -222,8 +269,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-    public class HEV_IHPC_CompletedBusCIF : CustomerInformationFile
-    {
+    public class HEV_IHPC_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
         public override string OutputDataType => "HEV_CompletedBusOutputType";
 
         public HEV_IHPC_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
@@ -236,7 +283,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
         }
     }
 
-    public class HEV_S2_CompletedBusCIF : CustomerInformationFile
+    public class HEV_S2_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "HEV_CompletedBusOutputType";
 
@@ -250,7 +297,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class HEV_S3_CompletedBusCIF : CustomerInformationFile
+	public class HEV_S3_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "HEV_CompletedBusOutputType";
 
@@ -264,7 +311,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class HEV_S4_CompletedBusCIF : CustomerInformationFile
+	public class HEV_S4_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "HEV_CompletedBusOutputType";
 
@@ -278,7 +325,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class HEV_IEPC_S_CompletedBusCIF : CustomerInformationFile
+	public class HEV_IEPC_S_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "HEV_CompletedBusOutputType";
 
@@ -292,7 +339,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class PEV_E2_CompletedBusCIF : CustomerInformationFile
+	public class PEV_E2_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "PEV_CompletedBusOutputType";
 
@@ -306,7 +353,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class PEV_E3_CompletedBusCIF : CustomerInformationFile
+	public class PEV_E3_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "PEV_CompletedBusOutputType";
 
@@ -320,7 +367,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class PEV_E4_CompletedBusCIF : CustomerInformationFile
+	public class PEV_E4_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "PEV_CompletedBusOutputType";
 
@@ -334,7 +381,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		}
 	}
 
-	public class PEV_IEPC_CompletedBusCIF : CustomerInformationFile
+	public class PEV_IEPC_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public override string OutputDataType => "PEV_CompletedBusOutputType";
 
@@ -349,7 +396,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 	}
 
 
-	public class Exempted_CompletedBusCIF : CustomerInformationFile
+	public class Exempted_CompletedBusCIF : CustomerInformationFileCompletedBus
 	{
 		public Exempted_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs
index 7fd5921e25303dbaf606447687ee24226f08a559..d23eac2738f725808b09f54d7b3d2222ed2964db 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs
@@ -29,7 +29,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		protected readonly IManufacturerReportFactory _mRFReportFactory;
 
-		private bool _ovc = false;
+		protected bool _ovc = false;
 
 		protected XElement Results { get; set; }
 		protected XElement Vehicle { get; set; }
@@ -38,7 +38,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		protected XElement Signature { get; set; }
 
-		private VectoRunData _modelData;
 		public abstract string OutputDataType { get; } //also used as name for the mockup result element
 
 		protected AbstractManufacturerReport(IManufacturerReportFactory MRFReportFactory)
@@ -55,11 +54,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData);
 
-		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			InitializeVehicleData(modelData.InputData);
 			_ovc = modelData.VehicleData.Ocv;
-			_modelData = modelData;
+			
 			Results = new XElement(Mrf_0_9 + XMLNames.Report_Results);
 			InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature,
 				modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash));
@@ -83,15 +82,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 					new XAttribute(XNamespace.Xmlns + "mrf", Mrf),
 					new XAttribute(XNamespace.Xmlns + "mrf0.9", Mrf_0_9),
 					new XAttribute("xmlns", Mrf_0_9),
-					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation", $"{Mrf.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputManufacturer.xsd"),
+					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation",
+						$"{Mrf.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputManufacturer.xsd"),
 
 					new XElement(Mrf + XMLNames.Report_DataWrap,
 						new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
-						Vehicle,
-						InputDataIntegrity,
-						Results,
-						XMLHelper.GetApplicationInfo(Mrf_0_9))
+						GetContents()
 					)
+				)
 			);
 
 			var stream = new MemoryStream();
@@ -103,6 +101,15 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			Report = h.AddHash();
 		}
 
+		protected virtual IList<XElement> GetContents()
+		{
+			return new[] {
+				Vehicle,
+				InputDataIntegrity,
+				Results,
+				XMLHelper.GetApplicationInfo(Mrf_0_9)
+			};
+		}
 
 		#endregion
 
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 34e73aec05bfc2fb667be3e220cd015b28db720e..c447e1d1f899576d9f9114edbd753af2c4119df8 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
@@ -4,9 +4,13 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
 {
@@ -15,15 +19,21 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 		protected XNamespace _mrf = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
 		public CompletedBusManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
 
-		protected void GenerateReport(string outputDataType)
+		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
-			Report = new XDocument(new XElement(_mrf + "VectoOutput",
-				new XAttribute("xmlns", _mrf),
-				new XAttribute(XNamespace.Xmlns + "xsi", xsi),
-				new XAttribute(xsi + XMLNames.XSIType, $"{outputDataType}"),
-				Vehicle,
-				new XElement(_mrf + "Results")));
+			InitializeVehicleData(modelData.InputData);
+			_ovc = modelData.VehicleData.Ocv;
+			var inputData = modelData.InputData as IMultistepBusInputDataProvider;
+			if (inputData == null) {
+				throw new VectoException("CompletedBus ManrufacturersRecordFile requires MultistepBusInputData");
+			}
+			Results = new XElement(Mrf_0_9 + XMLNames.Report_Results);
+			InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature,
+				inputData.JobInputData.ConsolidateManufacturingStage.Signature == null
+					? XMLHelper.CreateDummySig(_di)
+					: inputData.JobInputData.ConsolidateManufacturingStage.Signature.ToXML(_di));
 		}
+
 	}
 
 	internal class Conventional_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase
@@ -34,6 +44,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override string OutputDataType => "ConventionalCompletedBusManufacturerOutputDataType";
 
+		
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
index c354b23e426a2ab65ed0d66aea62307a44e8af3d..671edb5a150228cf2d70ac6100415ac1852522a0 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
@@ -20,9 +20,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
 		{
-			var multiStageInputData = inputData as IMultistageBusInputDataProvider;
+			var multiStageInputData = inputData as IMultistepBusInputDataProvider;
 			if (multiStageInputData == null) {
-				throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			var consolidatedVehicleData = multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle;
 			var result = new List<XElement>();
@@ -35,13 +35,13 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			return result;
 		}
 
-		protected virtual XElement GetNGTankSystem(IMultistageBusInputDataProvider multiStageInputData)
+		protected virtual XElement GetNGTankSystem(IMultistepBusInputDataProvider multiStageInputData)
 		{
 			var consolidatedVehicleData = multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle;
 			return new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, consolidatedVehicleData.TankSystem);
 		}
 
-		protected virtual XElement GetManufacturers(IMultistageBusInputDataProvider multiStageInputData)
+		protected virtual XElement GetManufacturers(IMultistepBusInputDataProvider multiStageInputData)
 		{
 			var primaryVehicleData = multiStageInputData.JobInputData.PrimaryVehicle.Vehicle;
 			var manufacturers = new XElement(_mrf + "Manufacturers");
@@ -86,7 +86,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of ConventionalCompletedBusGeneralVehicleOutputGroup
 
-		protected override XElement GetNGTankSystem(IMultistageBusInputDataProvider multiStageInputData)
+		protected override XElement GetNGTankSystem(IMultistepBusInputDataProvider multiStageInputData)
 		{
 			return null;
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs
index e1da3ed0add39336367edfe0ef0e979500f6c785..ab0746d1b440ae342742feb37a4bfc1862727883 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs
@@ -20,6 +20,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 	public interface IReportCompletedBusOutputGroup
 	{
-		IList<XElement> GetElements(IMultistageBusInputDataProvider multiStageInputDataProvider);
+		IList<XElement> GetElements(IMultistepBusInputDataProvider multiStageInputDataProvider);
 	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs
index 4482bfa612bdf9ea91931565820e0b944da0e6ae..b2fdd96d16416a9c7a9c2535ece6ef7988452cec 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs
@@ -530,9 +530,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputData = inputData as IMultistageBusInputDataProvider;
+			var multistageInputData = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputData == null) {
-				throw new ArgumentException($"inputData must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			return new XElement(_mrf + XMLNames.Vehicle_Components,
 				multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null
@@ -552,9 +552,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputData = inputData as IMultistageBusInputDataProvider;
+			var multistageInputData = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputData == null) {
-				throw new ArgumentException($"inputData must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			return new XElement(_mrf + XMLNames.Vehicle_Components,
 				multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null
@@ -574,9 +574,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputData = inputData as IMultistageBusInputDataProvider;
+			var multistageInputData = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputData == null) {
-				throw new ArgumentException($"inputData must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			return new XElement(_mrf + XMLNames.Vehicle_Components,
 				multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs
index 9acaae31c7a71b35810b720a86dd5962dc5c7b51..82747fa1aad6737994fcb197a2e1d4e091472b29 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs
@@ -25,7 +25,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 				new XElement(_mrf + XMLNames.Component_Model, iepcData.Model),
 				new XElement(_mrf + XMLNames.Component_CertificationNumber, iepcData.CertificationNumber),
 				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, iepcData.DigestValue?.DigestValue ?? ""),
-				new XElement(_mrf + XMLNames.Engine_RatedPower, iepcData.R85RatedPower.ToXMLFormat()));
+				new XElement(_mrf + XMLNames.Engine_RatedPower, iepcData.R85RatedPower.ConvertToKiloWatt().ToXMLFormat(0)));
 				//new XElement(_mrf + "MaxContinuousPower",(iepcData.ContinuousTorque*iepcData.ContinuousTorqueSpeed).ToXMLFormat()),
 
 			var voltageLevels = new XElement(_mrf + "VoltageLevels");
@@ -47,6 +47,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 				new XElement(_mrf + "LowestTotalTransmissionRatio", (iepcData.Gears.OrderByDescending(g => g.GearNumber).First().Ratio
 																	* inputData.JobInputData.Vehicle.Components.AxleGearInputData.Ratio).ToXMLFormat(3)),
 				new XElement(_mrf + XMLNames.IEPC_DifferentialIncluded, iepcData.DifferentialIncluded),
+				new XElement(_mrf + XMLNames.IEPC_DesignTypeWheelMotor, iepcData.DesignTypeWheelMotor),
 				new XElement(_mrf + XMLNames.Component_CertificationMethod, iepcData.CertificationMethod)
 			);
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
index 0652d0f6e4d3bab3ba26d7179cb55d7316be738f..7836bc5d9fba5dafc66022092e2b4e012d64d023 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
@@ -411,9 +411,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputdata = inputData as IMultistageBusInputDataProvider;
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputdata == null) {
-				throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			return new XElement(_mrf + XMLNames.Component_Vehicle, 
 				_mrfFactory.GetConventionalCompletedBusGeneralVehicleOutputGroup().GetElements(inputData),
@@ -434,9 +434,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputdata = inputData as IMultistageBusInputDataProvider;
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputdata == null) {
-				throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			return new XElement(_mrf + XMLNames.Component_Vehicle,
 				_mrfFactory.GetHEVCompletedBusGeneralVehicleOutputGroup().GetElements(inputData),
@@ -456,9 +456,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputdata = inputData as IMultistageBusInputDataProvider;
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputdata == null) {
-				throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			return new XElement(_mrf + XMLNames.Component_Vehicle,
 				_mrfFactory.GetPEVCompletedBusGeneralVehicleOutputGroup().GetElements(inputData),
@@ -478,10 +478,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			var multistageInputdata = inputData as IMultistageBusInputDataProvider;
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
 			if (multistageInputdata == null)
 			{
-				throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}");
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
 			}
 			var primaryVehicleData = multistageInputdata.JobInputData.PrimaryVehicle.Vehicle;
 			var consolidatedVehicleData = multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle;
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
index 1cf9e7085ed6caeb229af1664f69efb5d67c3c5e..b5bbe10ee0b220c73e09967aa6425c226331ba8b 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
@@ -98,7 +98,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 			var results = new XElement(Results);
 			results.AddFirst(new XElement(VIF + XMLNames.Report_Result_Status, allSuccess ? "success" : "error"));
-			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{XMLHelper.GetGUID()}";
+			var vehicleId = $"{VectoComponents.VectoPrimaryVehicleInformation.HashIdPrefix()}{XMLHelper.GetGUID()}";
 
 			var primaryVehicle = new XElement(VIF + XMLNames.Bus_PrimaryVehicle,
 				new XElement(VIF + XMLNames.Report_DataWrap,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
index e4c4bbc0d83f1904150422ba6c21fa9f96acf6b9..8014f54f467732810739382b03926e1f6967addc 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
@@ -218,7 +218,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		private XElement GenerateInputManufacturingStage()
 		{
 			var multistageId = $"{VectoComponents.VectoManufacturingStep.HashIdPrefix()}{GetGUID()}";
-			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
+			var vehicleId = $"{VectoComponents.VectoInterimVehicleInformation.HashIdPrefix()}{GetGUID()}";
 
 			var stage = new XElement(tns + XMLNames.ManufacturingStep,
 				new XAttribute(XMLNames.ManufacturingStep_StepCount, GetStageNumber()),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
index 95703822929cfe417ef0149477a62b4cf555992a..4f07df1870f816006c89b9af2d5d1bd18b8683fe 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		{
 			var results = new XElement(Results);
 			results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error"));
-			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
+			var vehicleId = $"{VectoComponents.VectoPrimaryVehicleInformation.HashIdPrefix()}{GetGUID()}";
 
 			var primaryVehicle = new XElement(tns + XMLNames.Bus_PrimaryVehicle,
 				new XElement(tns + XMLNames.Report_DataWrap,
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
index caae902c87bca83dbdb98ea14a8e354d6f342aad..5a8a22ed9f09560c9752f5d7e6326216b9535b57 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
@@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 		public IDeclarationReport CreateReport(IInputDataProvider input, IOutputDataWriter outputWriter)
 		{
 			switch (input) {
-				case IMultistageBusInputDataProvider multistageBusInputDataProvider:
+				case IMultistepBusInputDataProvider multistageBusInputDataProvider:
 					break;
 				case ISingleBusInputDataProvider singleBusInputDataProvider:
 					return new XMLDeclarationReport(outputWriter);
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
index 6d65cd994afd7f5d546e82de4762ac76925e9bde..6ed442ddd8568e9d2bfa9743123d3ce1b51da9e5 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
@@ -14,7 +14,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Conventional_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -47,7 +47,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_Px_IHPC_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -80,7 +80,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_S2_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -113,7 +113,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_S3_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -146,7 +146,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_S4_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -179,7 +179,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_IEPC_S_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -212,7 +212,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_E2_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -245,7 +245,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_E3_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -278,7 +278,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_E4_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -311,7 +311,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_IEPC_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -343,8 +343,14 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Abstract_Conventional_CompltededBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -376,8 +382,14 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Abstract_HEV_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -409,8 +421,14 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Abstract_PEV_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -443,7 +461,7 @@
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Exempted_LorryVehicleType"/>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
@@ -475,8 +493,14 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Exempted_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
 					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
-					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
 						</xs:annotation>
diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
index aaa6487642b1882edb703303361ac612823c33e2..89d4ec1ba88ee917619b4da93016e88f5f48ba8b 100644
--- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
@@ -1195,7 +1195,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			//var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified);
 			//var inputData = new MockCompletedBusInputData(modified);
 
-			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer, validate: false);
+			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistepBusInputDataProvider, null), writer, validate: false);
 			factory.WriteModalResults = true;
 			//var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer) {
 			//	WriteModalResults = true,
diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs
index 94680546595ba7afb050b49556765f26cdff55e3..23ae50dff9a49887968ceecd4551e61bd024ebf4 100644
--- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs
+++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs
@@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
             //}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group ");
         }
 
-        private IMultistageBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts)
+        private IMultistepBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts)
 		{
 			var vifDataProvider = _xmlInputReader.Create(XmlReader.Create(vifPrimary));
 			//var completeDataProvider = _xmlInputReader.CreateDeclaration(comple);
@@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 
 			var completeDataProvider = _xmlInputReader.CreateDeclaration(modified);
 
-			var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
+			var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistepBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
 
 			var filename = Guid.NewGuid().ToString().Substring(0, 20);
 			var writer = new FileOutputVIFWriter(filename, 0);
@@ -157,13 +157,13 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var completedVif = _xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(completedVifXML.OuterXml)));
 			File.Delete(writer.XMLMultistageReportFileName);
 
-			return completedVif as IMultistageBusInputDataProvider;
+			return completedVif as IMultistepBusInputDataProvider;
 		}
 	}
 
-	public class MockCompletedBusInputData : IInputDataProvider, IMultistageBusInputDataProvider
+	public class MockCompletedBusInputData : IInputDataProvider, IMultistepBusInputDataProvider
 	{
-		private IMultistageBusInputDataProvider input;
+		private IMultistepBusInputDataProvider input;
 	
 		public MockCompletedBusInputData(XmlReader vif)
 		{
@@ -171,7 +171,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var _xmlInputReader = kernel.Get<IXMLInputDataReader>();
 
 
-			input = _xmlInputReader.CreateDeclaration(vif) as IMultistageBusInputDataProvider;
+			input = _xmlInputReader.CreateDeclaration(vif) as IMultistepBusInputDataProvider;
 			
 			//JobName = Vehicle.VIN;
 		}
diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
index 806d4b908d934c02978aba9d324669b007963a4e..b838571b733cce9626a5221b24c602d32b8c7833 100644
--- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
@@ -82,7 +82,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			var vehicle = inputDataProvider.JobInputData.Vehicle;
 
 			var vifReader = XmlReader.Create(vifFilename);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0;
 			var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages);
@@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			var vehicle = inputDataProvider.JobInputData.Vehicle;
 
 			var vifReader = XmlReader.Create(vifFilename);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0;
 			var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages);
@@ -158,7 +158,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		private void TestNewVifData(string filePath)
 		{
 			var vifReader = XmlReader.Create(filePath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			Assert.AreEqual(3, vifDataProvider.JobInputData.ManufacturingStages.Count());
 			TestVifStage2Data(vifDataProvider.JobInputData.ManufacturingStages[0]);
@@ -326,7 +326,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			TestSimulationMultistageVehicle(VIFInputFileGroup41, InputFilePathGroup41, 1);
 			
 			var vifReader = XmlReader.Create(_generatedVIFFilepath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null);
 			var writer = new MockDeclarationWriter("vif_vehicle-sample_test.xml");
@@ -352,7 +352,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			TestSimulationMultistageVehicle(VIFExemptedPrimaryBus, ExepmtedCompletedBusInput, 1);
 
 			var vifReader = XmlReader.Create(_generatedVIFFilepath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null);
 			var writer = new FileOutputWriter("vif_vehicle-sample_test.xml");
@@ -451,7 +451,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		private void ValidateVIFData(string vifFilePath)
 		{
 			var vifReader = XmlReader.Create(vifFilePath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var res = vifDataProvider.JobInputData.PrimaryVehicle;
 			TestVehicleData(res.Vehicle);
diff --git a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs
index cad4740bce7fa4013c6d113f12092b17a5cd1271..091e324a1e09109e93265558ebe4281de85a5613 100644
--- a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs
+++ b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs
@@ -22,7 +22,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			var vifDataProvider = xmlInputReader.Create(completedJson.PrimaryInputDataFile);
 			var completeDataProvider = xmlInputReader.CreateDeclaration(completedJson.CompletedInputDataFile);
 			var inputDataAsm = new XMLDeclarationVIFInputData(
-				vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
+				vifDataProvider as IMultistepBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
 
 			var filename = Guid.NewGuid().ToString().Substring(0, 20);
 			var writerAsm = new FileOutputVIFWriter(filename, 0);
@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			var completedVif =
 				xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(CreateCompletedVifXML(completedJson, xmlInputReader))));
 			
-			return new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null);
+			return new XMLDeclarationVIFInputData(completedVif as IMultistepBusInputDataProvider, null);
 			}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs
index 838196ad0902ac01d8d2c60002c8bef43f23ec3c..b0f4fb20ad0b2c6b832339cb4ee7d739b8eb719e 100644
--- a/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs
+++ b/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs
@@ -42,11 +42,11 @@ namespace TUGraz.VectoCore.Tests.XML.Reports
 		}
 
 		private IXMLCustomerReport GetCompletedBusCustomerReport(string fileName,
-	out IMultistageBusInputDataProvider dataProvider)
+	out IMultistepBusInputDataProvider dataProvider)
 		{
 			Assert.IsFalse(string.IsNullOrEmpty(fileName));
 			var tmp = _xmlReader.CreateDeclaration(fileName);
-			dataProvider = tmp as IMultistageBusInputDataProvider;
+			dataProvider = tmp as IMultistepBusInputDataProvider;
 
 			var arch = dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID;
 
diff --git a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
index 210a6e203d97ff7af5d621cd86a18fc0201c53a6..ffa9c7cd011b51c1342a6854f21d8d224f829061 100644
--- a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
+++ b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
@@ -212,10 +212,10 @@ namespace TUGraz.VectoCore.Tests.XML.Reports
 		}
 
 		private IXMLManufacturerReport GetCompletedBusReport(string fileName,
-			out IMultistageBusInputDataProvider dataProvider)
+			out IMultistepBusInputDataProvider dataProvider)
 		{
 			Assert.IsFalse(string.IsNullOrEmpty(fileName));
-			dataProvider = _xmlReader.CreateDeclaration(fileName) as IMultistageBusInputDataProvider;
+			dataProvider = _xmlReader.CreateDeclaration(fileName) as IMultistepBusInputDataProvider;
 			Assert.NotNull(dataProvider);
 			var arch = dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID;
 
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
index e0c0068ab735dfe618f1eb956f8fb43a9f20696d..65d45abfca0c2c90dfdd174cdf5aa0dc8e15cba9 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageVehicle()
 		{
 			var reader = XmlReader.Create(_consolidatedInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
 			TestConsolidateManufacturingStage(inputDataProvider.JobInputData.ConsolidateManufacturingStage);
 		}
@@ -110,7 +110,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestPrimaryOnlyConsolidateMultistageVehicle()
 		{ 
 			var reader = XmlReader.Create(_primaryOnlyInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			Assert.AreEqual(null, inputDataProvider.JobInputData.ManufacturingStages);
 			//The consolidated ManufacturingStage is now always created, and can hold some values from the primary vehicle (i.e. TPMLM)
@@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestOneStageConsolidateMultistageVehicle()
 		{
 			var reader = XmlReader.Create(_oneStageInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
 
 			
@@ -161,7 +161,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestTwoStagesConsolidateMultistageVehicle()
 		{
 			var reader = XmlReader.Create(_twoStagesInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
 			
 			var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle;
@@ -202,7 +202,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageAirdrag()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataAirdrag);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
@@ -221,7 +221,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageHeatPump()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatPump);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
@@ -238,7 +238,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageHeatHev()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatHev);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
@@ -255,7 +255,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageHeatNgTankSystem()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatNgTank);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
index 87c735b7e18c2f5059938ac97c3b15ebf84ec25a..1207efe1f950bf47a86536db865420232bdd454d 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
@@ -42,7 +42,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestVehicleMultistageBusInput01()
 		{
 			var reader = XmlReader.Create(VIF01);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle);
 			TestManufacturingStages(inputDataProvider.JobInputData.ManufacturingStages);
 		}
@@ -670,7 +670,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestVehicleMultistageBusInput02()
 		{
 			var reader = XmlReader.Create(VIF02);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle);
 			TestManufacturingStageVIF02(inputDataProvider.JobInputData.ManufacturingStages);
 		}
diff --git a/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs b/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs
index 4bdf5e347b7d4173574d17e4df07d54a74275460..4313770419fe3e795f334b74d8a3fc2a2181d004 100644
--- a/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs
+++ b/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs
@@ -23,7 +23,7 @@ namespace TUGraz.VectoMockup
 		#region Overrides of XMLInputDataFactory
 
 
-		protected override IMultistageBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
+		protected override IMultistepBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
 		{
 			var ret =  base.ReadMultistageDeclarationJob(xmlDoc, source);
 
diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
index bf5cbda31393b6e40afec20d5e4a538095952f78..7d35d9451f2a52e0e790076380920d5526e2f7fd 100644
--- a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
+++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
@@ -38,7 +38,7 @@ namespace TUGraz.VectoMockup.Reports
 		{
             switch (input)
             {
-                case IMultistageBusInputDataProvider multistageBusInputDataProvider:
+                case IMultistepBusInputDataProvider multistageBusInputDataProvider:
                     break;
                 case ISingleBusInputDataProvider singleBusInputDataProvider:
                     return new XMLDeclarationReport(outputWriter);
diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
index 3a6a27877dbe0a4684449c23f5e549e636f523a9..1e7169b8ad82b4cc41fa7dee3ea1431088c1a1f0 100644
--- a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
+++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
@@ -113,7 +113,7 @@ namespace TUGraz.VectoMockup.Reports
 
 		protected override void WriteResult(ResultEntry result)
 		{
-			if (_modelData.InputData is IMultistageBusInputDataProvider multistageInput) {
+			if (_modelData.InputData is IMultistepBusInputDataProvider multistageInput) {
 				var primaryResult = multistageInput.JobInputData.PrimaryVehicle.ResultsInputData.Results.FirstOrDefault();
 				var tankSystem = multistageInput.JobInputData.ConsolidateManufacturingStage.Vehicle.TankSystem;
 				result.FuelData = primaryResult.EnergyConsumption.Keys
diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
index 970e75fc97cf1c088f932ac832afd7ef83763365..7161fc9579b3d10c2cb120312dec81554615c79d 100644
--- a/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
+++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
@@ -17,7 +17,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 {
     internal class MockupMultistageCompletedBusRunDataFactory : DeclarationModeCompletedMultistageBusVectoRunDataFactory
     {
-		public MockupMultistageCompletedBusRunDataFactory(IMultistageBusInputDataProvider dataProvider,
+		public MockupMultistageCompletedBusRunDataFactory(IMultistepBusInputDataProvider dataProvider,
 			IDeclarationReport report) : base(dataProvider, report)
 		{
 
diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
index b002f9702c0282498243c68eb494f572089801d2..cd417f67f78f1c95728e1cfe8b4dba978c25bd04 100644
--- a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
+++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
@@ -347,7 +347,7 @@ namespace VectoMockupTest
 		{
 			CopyInputFile(vifInput);
 			//SimulatorFactory.MockUpRun = mockup;
-			var multistageBusInput = _inputDataReader.Create(vifInput) as IMultistageBusInputDataProvider;
+			var multistageBusInput = _inputDataReader.Create(vifInput) as IMultistepBusInputDataProvider;
 			Assert.NotNull(multistageBusInput);
 
 			var stageInput = _inputDataReader.CreateDeclaration(stageInputFile);
@@ -378,7 +378,7 @@ namespace VectoMockupTest
 			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
 			using (var reader = XmlReader.Create(fileName))
 			{
-				input = new XMLDeclarationVIFInputData(_inputDataReader.Create(fileName) as IMultistageBusInputDataProvider, null);
+				input = new XMLDeclarationVIFInputData(_inputDataReader.Create(fileName) as IMultistepBusInputDataProvider, null);
 				fileWriter = new FileOutputVIFWriter(fileName, input.MultistageJobInputData.JobInputData.ManufacturingStages.Count);
 			}
 			var sumWriter = new SummaryDataContainer(null);
@@ -605,6 +605,7 @@ namespace VectoMockupTest
 		public void CompletedTest(string primaryBusInput, string completeBusInput, params string[] expectedType)
 		{
 			CopyInputFile(completeBusInput);
+			CopyInputFile(primaryBusInput);
 			// completed: VIF + complete input (full) =>  VIF , MRF Completed, CIF Completed
 			// (approach: first simulate primary on its own to have an up-to-date VIF
 			// (no need to maintain this in the testfiles)
@@ -625,7 +626,7 @@ namespace VectoMockupTest
 			jobContainer.WaitFinished();
 
 			CheckFileExists(fileWriter, checkCif: false, checkPrimaryReport: true, checkMrf: true);
-			File.Delete(fileWriter.XMLFullReportName);
+			//File.Delete(fileWriter.XMLFullReportName);
 			CopyInputFile(fileWriter.XMLPrimaryVehicleReportName);
 			// done preparing testcase...
 
@@ -646,7 +647,7 @@ namespace VectoMockupTest
 			completedJobContainer.WaitFinished();
 
 			// assertions
-			File.Delete(fileWriter.XMLPrimaryVehicleReportName);
+			//File.Delete(fileWriter.XMLPrimaryVehicleReportName);
 
 			CheckFileExists(completedFileWriter, checkCif: true, checkMrf: true, checkVif:true);