diff --git a/VectoCore/VectoCore/Mockup/MockupModalDataContainer.cs b/VectoCore/VectoCore/Mockup/MockupModalDataContainer.cs
index fd77022c4054a97aa94f3f084c02529f30809347..4c0760dfd8d2c314f88103e450d76a01956fcb12 100644
--- a/VectoCore/VectoCore/Mockup/MockupModalDataContainer.cs
+++ b/VectoCore/VectoCore/Mockup/MockupModalDataContainer.cs
@@ -170,6 +170,11 @@ namespace TUGraz.VectoMockup
 			return _modalDataContainerImplementation.GetColumnName(fuelData, mrf);
 		}
 
+		public void Reset(bool clearColumns = false)
+		{
+			
+		}
+
 		public string GetColumnName(PowertrainPosition pos, ModalResultField mrf)
 		{
 			return _modalDataContainerImplementation.GetColumnName(pos, mrf);
@@ -209,6 +214,8 @@ namespace TUGraz.VectoMockup
 		}
 
 		public bool HasCombustionEngine => _modalDataContainerImplementation.HasCombustionEngine;
+		public bool HasGearbox { get; }
+		public bool HasAxlegear { get; }
 
 		public WattSecond TotalElectricMotorWorkDrive(PowertrainPosition emPos)
 		{
diff --git a/VectoCore/VectoCore/Mockup/MockupResultReader.cs b/VectoCore/VectoCore/Mockup/MockupResultReader.cs
index a627fca60f03d15b3e30078e41fc9bd615a0fd9c..a4c72883122bba3d20084b0014691cb6c9da1d0f 100644
--- a/VectoCore/VectoCore/Mockup/MockupResultReader.cs
+++ b/VectoCore/VectoCore/Mockup/MockupResultReader.cs
@@ -14,6 +14,7 @@ using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.XML;
 using TUGraz.VectoCore.Utils;
 
@@ -77,7 +78,7 @@ namespace TUGraz.VectoMockup
 
 			};
 
-			public static string GetResourceName(string xmlName, XMLDeclarationReport.ResultEntry result, ResultType type, VectoRunData runData)
+			public static string GetResourceName(string xmlName, IResultEntry result, ResultType type, VectoRunData runData)
 			{
 				
 				var resNames = Assembly.GetAssembly(typeof(MockupResultReader)).GetManifestResourceNames();
@@ -136,7 +137,7 @@ namespace TUGraz.VectoMockup
 
 		}
         
-		public static XElement GetMRFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData)
+		public static XElement GetMRFMockupResult(string xmlName, IResultEntry result, XName resultElementName, VectoRunData runData)
 		{
 			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF, runData));
 			ReplaceMission(result, resultElement);
@@ -151,7 +152,7 @@ namespace TUGraz.VectoMockup
 
 
 
-		public static XElement GetCIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData)
+		public static XElement GetCIFMockupResult(string xmlName, IResultEntry result, XName resultElementName, VectoRunData runData)
 		{
 			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF, runData));
 			resultElement.DescendantNodes().OfType<XComment>().Remove();
@@ -161,7 +162,7 @@ namespace TUGraz.VectoMockup
 			return resultElement;
 		}
 
-		public static XElement GetVIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData)
+		public static XElement GetVIFMockupResult(string xmlName, IResultEntry result, XName resultElementName, VectoRunData runData)
 		{
 			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.VIF, runData));
 			resultElement.DescendantNodes().OfType<XComment>().Remove();
@@ -176,7 +177,7 @@ namespace TUGraz.VectoMockup
 
 
 
-		private static void ReplacePayload(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		private static void ReplacePayload(IResultEntry result, XElement resultElement)
 		{
 			if (result.Payload == null) {
 				return;
@@ -188,7 +189,7 @@ namespace TUGraz.VectoMockup
 			payload.ForEach(x => x.Value = result.Payload.ToXMLFormat());
 		}
 
-		private static void ReplaceGroup(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		private static void ReplaceGroup(IResultEntry result, XElement resultElement)
 		{
 			var groupElement = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results_PrimaryVehicleSubgroup}']").ToList();
 			if (!groupElement.Any()) {
@@ -197,7 +198,7 @@ namespace TUGraz.VectoMockup
 			groupElement.ForEach(x => x.Value = result.VehicleClass.GetClassNumber());
 		}
 
-		private static void ReplaceFuelMode(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		private static void ReplaceFuelMode(IResultEntry result, XElement resultElement)
 		{
 			var fuelMode = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Result_FuelMode}']");
 			var fuelModeElement = fuelMode.FirstOrDefault();
@@ -230,7 +231,7 @@ namespace TUGraz.VectoMockup
 		}
 
 
-		private static void ReplaceMission(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		private static void ReplaceMission(IResultEntry result, XElement resultElement)
 		{
 			var mission = resultElement.Elements()
 				.FirstOrDefault(x => x.Name.LocalName == XMLNames.Report_Result_Mission);
@@ -240,7 +241,7 @@ namespace TUGraz.VectoMockup
 				
 		}
 
-		private static void SetFuels(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		private static void SetFuels(IResultEntry result, XElement resultElement)
 		{
 			//var tmpResultElement = new XElement(resultElement);
 			var fuelElements = resultElement.XPathSelectElements("//*[local-name()='Fuel']").ToList();
@@ -262,7 +263,7 @@ namespace TUGraz.VectoMockup
 			}
 		}
 
-		private static void ClearGearboxAndAxleGearEntries(XMLDeclarationReport.ResultEntry result,
+		private static void ClearGearboxAndAxleGearEntries(IResultEntry result,
 			XElement resultElement, VectoRunData runData)
 		{
 			var elementsToRemove = new List<XElement>();
diff --git a/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs b/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs
index f5d43b36739186c405bb1df3108dae11455f7ec4..9d68af06df57da4706341b7b301e83839bd52e67 100644
--- a/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs
@@ -1,11 +1,12 @@
-using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
 
 namespace TUGraz.VectoMockup.Reports
 {
 	internal interface IXMLMockupReport
 	{
-		void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue);
-		void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue);
+		void WriteMockupResult(IResultEntry resultValue);
+		void WriteMockupSummary(IResultEntry resultValue);
 		void WriteExemptedResults();
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupCustomerReport.cs b/VectoCore/VectoCore/Mockup/Reports/MockupCustomerReport.cs
index 9b12db161fa94d4adecc01ec2e4bbc56c79ae162..35ef05e800942f96f57a91a18388d8d5e1b47d37 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupCustomerReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupCustomerReport.cs
@@ -63,12 +63,12 @@ namespace TUGraz.VectoMockup.Reports
 
         #region Implementation of IXMLMockupReport
 
-        public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+        public void WriteMockupResult(IResultEntry resultValue)
         {
             Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Result", _modelData));
         }
 
-        public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+        public void WriteMockupSummary(IResultEntry resultValue)
         {
             Results.AddFirst(new XElement(Cif + "Status", "success"));
             Results.AddFirst(new XComment("Always prints success at the moment"));
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs b/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs
index 5bd1b7db6f8263c6d09fdcd54cdcf4cd2fb8d383..6a9efa0917f2265854373b5e44f0ff515f0b734d 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs
@@ -37,7 +37,7 @@ namespace TUGraz.VectoMockup.Reports
 
 		}
 
-		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupSummary(IResultEntry resultValue)
 		{
 			Results.AddFirst(new XElement(Mrf + "Status", "success"));
 			Results.AddFirst(new XComment("Always prints success at the moment"));
@@ -54,10 +54,10 @@ namespace TUGraz.VectoMockup.Reports
 		#region Implementation of IXMLManufacturerReport
 
 
-		public void InitializeVehicleData(IDeclarationInputDataProvider inputData)
-		{
-			_ixmlManufacturerReportImplementation.InitializeVehicleData(inputData);
-		}
+		//public void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		//{
+		//	_ixmlManufacturerReportImplementation.InitializeVehicleData(inputData);
+		//}
 
 		public void Initialize(VectoRunData modelData)
 		{
@@ -76,11 +76,12 @@ namespace TUGraz.VectoMockup.Reports
 			}
 		}
 
-		public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteResult(IResultEntry resultValue)
 		{
 			_ixmlManufacturerReportImplementation.WriteResult(resultValue);
 		}
 
+
 		public void GenerateReport()
 		{
 			_ixmlManufacturerReportImplementation.GenerateReport();
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs b/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs
index 2a2a4e27e3b07c60ed7f3ff2da4cda369ede7c29..ce773080a2ac0203584b3a08cf2dbd2ebda60d06 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs
@@ -4,6 +4,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Xml.Linq;
 using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.XML;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
 
@@ -81,12 +82,12 @@ namespace TUGraz.VectoMockup.Reports
 
 		#region Implementation of IXMLMockupReport
 
-		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupResult(IResultEntry resultValue)
 		{
 			
 		}
 
-		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupSummary(IResultEntry resultValue)
 		{
 		}
 
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs b/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs
index 1c5140fafd3597892895a58485c6cb2b39b80f67..e00244edd09ca376e5038b52cecddddfe522902c 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs
@@ -7,6 +7,7 @@ using System.Xml.XPath;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.XML;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
@@ -40,12 +41,12 @@ namespace TUGraz.VectoMockup.Reports
 
 		#region Implementation of IXMLMockupReport
 
-		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupResult(IResultEntry resultValue)
 		{
 			
 		}
 
-		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupSummary(IResultEntry resultValue)
 		{
 			
 		}
@@ -92,13 +93,13 @@ namespace TUGraz.VectoMockup.Reports
 
 		#region Implementation of IXMLMockupReport
 
-		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupResult(IResultEntry resultValue)
 		{
 			var xElement = MockupResultReader.GetVIFMockupResult(Tns.NamespaceName, resultValue, Tns + "Result", _modelData);
 			Results.Add(xElement);
 		}
 
-		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		public void WriteMockupSummary(IResultEntry resultValue)
 		{
 			Results.AddFirst(new XElement(Tns + "Status", "success"));
 			Results.AddFirst(new XComment("Always prints success at the moment"));
diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
index 546c647b59f5d4e0ba1626c3339f6994d959762b..e48b0d75a9e90e10fbc47839ea4b39cabee206dd 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
@@ -7,7 +7,9 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRunDataFactory;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -15,12 +17,14 @@ using TUGraz.VectoCore.OutputData;
 
 namespace TUGraz.VectoMockup.Simulation.RundataFactories
 {
-	internal class MockupMultistageCompletedBusRunDataFactory
-	{
-        DeclarationModeCompletedMultistageBusVectoRunDataFactory
-		  {
-		public MockupMultistageCompletedBusRunDataFactory(IMultistepBusInputDataProvider dataProvider,
-            IDeclarationReport report) : base(dataProvider, report)
+	internal class MockupMultistageCompletedBusRunDataFactory : DeclarationModeCompletedBusRunDataFactory.CompletedBusBase
+    {
+        //DeclarationModeCompletedMultistageBusVectoRunDataFactory
+		  
+		public MockupMultistageCompletedBusRunDataFactory(IMultistageVIFInputData dataProvider,
+            IDeclarationReport report,
+			ISpecificCompletedBusDeclarationDataAdapter dataAdapterSpecific,
+			IGenericCompletedBusDeclarationDataAdapter dataAdapterGeneric) : base(dataProvider, report, dataAdapterSpecific, dataAdapterGeneric)
         {
 
         }
@@ -28,6 +32,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 
         #region Overrides of DeclarationModeCompletedMultistageBusVectoRunDataFactory
 
+		#endregion
         protected override void Initialize()
         {
 
@@ -36,11 +41,11 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
             //base.Initialize();
         }
 
-        protected override IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted()
-        {
+        //protected override IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted()
+        //{
 
-            return base.VectoRunDataHeavyBusCompleted();
-        }
+        //    return base.VectoRunDataHeavyBusCompleted();
+        //}
 
         protected override VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx)
         {
@@ -60,10 +65,10 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
                 Mission = mission,
                 GearboxData = PrimaryBusMockupRunDataFactory.CreateMockupGearboxData(PrimaryVehicle),
-                InputData = InputDataProvider,
+                InputData = DataProvider.MultistageJobInputData,
                 SimulationType = SimulationType.DistanceCycle,
                 ExecutionMode = ExecutionMode.Declaration,
-                JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
+                JobName = DataProvider.MultistageJobInputData.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
                 Report = Report,
                 //Aux = PrimaryBusMockupRunDataFactory.CreateMockupBusAux(CompletedVehicle),
 
@@ -114,7 +119,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 
                 },
                 EngineData = PrimaryBusMockupRunDataFactory.CreateMockupEngineData(PrimaryVehicle, modeIdx, CompletedVehicle.TankSystem),
-                JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
+                JobName = DataProvider.MultistageJobInputData.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
                 ExecutionMode = ExecutionMode.Declaration,
                 SimulationType = SimulationType.DistanceCycle,
                 Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
@@ -127,4 +132,4 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
         //#endregion
     }
 }
-}
+
diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
index 31c8d5f97e5ade96d7e57e463604811be32cb278..2e5ee9ccd7429a7da2c9a7d5e2899f47aeecd3e7 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
@@ -8,6 +8,7 @@ using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDataFactory;
 using TUGraz.VectoCore.Models.BusAuxiliaries;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
@@ -17,17 +18,18 @@ using TUGraz.VectoCore.OutputData.XML;
 
 namespace TUGraz.VectoMockup.Simulation.RundataFactories
 {
-    public class MockupLorryVectoRunDataFactory : DeclarationModeTruckVectoRunDataFactory
+    public class MockupLorryVectoRunDataFactory : DeclarationModeHeavyLorryRunDataFactory.Conventional
     {
         public MockupLorryVectoRunDataFactory(IDeclarationInputDataProvider dataProvider,
-            IDeclarationReport report) : base(dataProvider, report, false)
+            IDeclarationReport report,
+			ILorryDeclarationDataAdapter declarationDataAdapter) : base(dataProvider, report, declarationDataAdapter)
         {
 
         }
 
         #region Overrides of AbstractDeclarationVectoRunDataFactory
 
-        protected override IDeclarationDataAdapter DataAdapter { get; }
+        //protected override IDeclarationDataAdapter DataAdapter { get; }
         protected override IEnumerable<VectoRunData> GetNextRun()
         {
             var nextRun = base.GetNextRun();
@@ -44,12 +46,10 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 return;
             }
             VectoRunData powertrainConfig;
-            List<List<FuelData.Entry>> fuels;
             var vehicle = InputDataProvider.JobInputData.Vehicle;
             if (vehicle.ExemptedVehicle)
             {
                 powertrainConfig = CreateVectoRunData(vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>());
-                fuels = new List<List<FuelData.Entry>>();
             }
             else
             {
@@ -57,12 +57,11 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                         mission => CreateVectoRunData(
                             vehicle, 0, mission, mission.Loadings.First()))
                     .FirstOrDefault(x => x != null);
-                fuels = null;
             }
-            Report.InitializeReport(powertrainConfig, fuels);
+            Report.InitializeReport(powertrainConfig);
         }
 
-        protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission,
+        protected virtual VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission,
             KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
         {
             VectoRunData runData;
@@ -116,11 +115,11 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 
 
 
-        protected override void Initialize()
-        {
-            _segment = GetSegment(InputDataProvider.JobInputData.Vehicle);
+        //protected override void Initialize()
+        //{
+        //    _segment = GetSegment(InputDataProvider.JobInputData.Vehicle);
 
-        }
+        //}
 
         #endregion
 
diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs
index fdf246c5717362478849619c0b6046b321fb9257..e92d7347c742b08c03ac34792131b75ea3618279 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs
@@ -10,6 +10,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDataFactory;
 using TUGraz.VectoCore.Models.BusAuxiliaries;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
@@ -19,11 +20,12 @@ using TUGraz.VectoCore.OutputData;
 
 namespace TUGraz.VectoMockup.Simulation.RundataFactories
 {
-    public class PrimaryBusMockupRunDataFactory : DeclarationModePrimaryBusVectoRunDataFactory
+    public class PrimaryBusMockupRunDataFactory :  DeclarationModePrimaryBusRunDataFactory.Conventional
     {
         public PrimaryBusMockupRunDataFactory(IDeclarationInputDataProvider dataProvider,
-            IDeclarationReport report) :
-            base(dataProvider, report, false)
+            IDeclarationReport report,
+			IPrimaryBusDeclarationDataAdapter declarationDataAdapter) :
+            base(dataProvider, report, declarationDataAdapter)
         { }
 
         #region Overrides of AbstractDeclarationVectoRunDataFactory
@@ -42,13 +44,11 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
             }
 
             VectoRunData powertrainConfig;
-            List<List<FuelData.Entry>> fuels;
             var vehicle = InputDataProvider.JobInputData.Vehicle;
             if (vehicle.ExemptedVehicle)
             {
                 powertrainConfig = CreateVectoRunData(vehicle, 0, null,
                     new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>());
-                fuels = new List<List<FuelData.Entry>>();
             }
             else
             {
@@ -56,15 +56,14 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                         mission => CreateVectoRunData(
                             vehicle, 0, mission, mission.Loadings.First()))
                     .FirstOrDefault(x => x != null);
-                fuels = null;
             }
 
-            Report.InitializeReport(powertrainConfig, fuels);
+            Report.InitializeReport(powertrainConfig);
         }
 
         #region Overrides of DeclarationModePrimaryBusVectoRunDataFactory
 
-        protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx,
+        protected virtual VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx,
             Mission mission,
             KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
         {
diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs
index 571f038ca5101d9842df4735df59858ec5b79ae1..3d7ce134fc93f61dda12a87d228c05948e0f9b9d 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs
@@ -7,6 +7,10 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Generic;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Specific;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus;
 using TUGraz.VectoCore.InputData.Reader.Impl;
 using TUGraz.VectoCore.OutputData;
 
@@ -46,8 +50,9 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 			if (multistageVifInputData.VehicleInputData == null)
 			{
 				return new MockupMultistageCompletedBusRunDataFactory(
-					multistageVifInputData.MultistageJobInputData,
-					report);
+					multistageVifInputData,
+					report, new DeclarationDataAdapterSpecificCompletedBus.Conventional(),
+					new DeclarationDeclarationDataAdapterGenericCompletedBusDeclaration.Conventional());
 			}
 			else {
 				return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report);
@@ -59,7 +64,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
             var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory;
             if (vehicleCategory.IsLorry())
             {
-                return new MockupLorryVectoRunDataFactory(declDataProvider, report);
+                return new MockupLorryVectoRunDataFactory(declDataProvider, report, new DeclarationDataAdapterHeavyLorry.Conventional());
             }
 
             if (vehicleCategory.IsBus())
@@ -68,9 +73,9 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 {
                     case VehicleCategory.HeavyBusCompletedVehicle:
                         throw new NotImplementedException();
-                        return new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, report);
+                        //return new DeclarationModeMultistageBusVectoRunDataFactory(declDataProvider, report);
                     case VehicleCategory.HeavyBusPrimaryVehicle:
-                        return new PrimaryBusMockupRunDataFactory(declDataProvider, report);
+                        return new PrimaryBusMockupRunDataFactory(declDataProvider, report, new DeclarationDataAdapterPrimaryBus.Conventional());
                     default:
                         break;
                 }
diff --git a/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs b/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs
index e391adfd712cf147a8bc4496d6f8e08eb9842637..463c531d35cecd14f8b3020d6108ae6ed9147019 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs
@@ -4,6 +4,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
 using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
@@ -17,15 +18,15 @@ namespace TUGraz.VectoMockup.Simulation.SimulatorFactory
 			IMultistagePrimaryAndStageInputDataProvider originalStageInputData, IOutputDataWriter originalReportWriter,
 			IDeclarationReport originalDeclarationReport, 
 			ISimulatorFactoryFactory simFactoryFactory,
-			IManufacturerReportFactory mrfFactory, 
-			ICustomerInformationFileFactory cifFactory,
-			IVIFReportFactory vifFactory,
+			//IManufacturerReportFactory mrfFactory, 
+			//ICustomerInformationFileFactory cifFactory,
+			IXMLDeclarationReportFactory xmlDeclarationReportFactory,
 			IXMLInputDataReader inputDataReader, bool validate) :
 			base(originalStageInputData, originalReportWriter, originalDeclarationReport, simFactoryFactory,
-				inputDataReader, validate)
+				xmlDeclarationReportFactory, inputDataReader, validate)
 		{
-			_currentStageDeclarationReport =
-				new XMLDeclarationMockupPrimaryReport(_currentStageOutputDataWriter, mrfFactory, cifFactory, vifFactory, originalStageInputData.StageInputData.ExemptedVehicle);
+			//_currentStageDeclarationReport =
+				//new XMLDeclarationMockupPrimaryReport(_currentStageOutputDataWriter, mrfFactory, cifFactory, vifFactory, originalStageInputData.StageInputData.ExemptedVehicle);
 		}
 
 		#region Overrides of InterimAfterPrimaryFactoryCreator
diff --git a/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs b/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs
index 48ff2b4d60b2d4fcb4fc36efcb4acdf2545bbc75..1abfd96088b793ee20962cb18d65d4c58791ef67 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs
@@ -77,7 +77,7 @@ namespace TUGraz.VectoMockup.Simulation.SimulatorFactory
 			});
 		}
 
-		protected override IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz, ref bool firstRun)
+		protected override IVectoRun GetNonExemptedRun(VectoRunData data, int current, ref bool warning1Hz, ref bool firstRun)
 		{
 			var addReportResult = PrepareReport(data);
 			return new MockupRun(new VehicleContainer(ExecutionMode.Declaration,
@@ -119,9 +119,10 @@ namespace TUGraz.VectoMockup.Simulation.SimulatorFactory
 						ReportWriter,
 						currentStageDeclarationReport,
 						_simFactoryFactory, 
-						((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).MrfFactory,
-						((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).CifFactory, 
-						((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).VifFactory,
+						//((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).MrfFactory,
+						//((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).CifFactory, 
+						//((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).VifFactory,
+						_xmlDeclarationReportFactory,
 						_xmlInputDataReader, 
 						Validate);
 				case IMultistageVIFInputData multistageVifInputData:
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs
index 7de33a3fac3f196c114fdcd0f9516a95d7d31df4..918783aea4fc0d43a8f6a61e7184a6b9927a4c55 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs
@@ -2,6 +2,8 @@
 using System.Xml.Linq;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
@@ -24,8 +26,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			foreach (DataRow row in boostingLimitations.Rows)
 			{
 				boostingLimitationsXElement.Add(new XElement(_v24 + XMLNames.BoostingLimitation_Entry,
-					new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]),
-					new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque])
+					new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[MaxBoostingTorqueReader.Fields.MotorSpeed]),
+					new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[MaxBoostingTorqueReader.Fields.DrivingTorque])
 				));
 			}
 			
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs
index 70d5658a7355777e8957d4aebb9fff987b547b35..4bdf3cfc1f1df343f5be67a540c77d491f291653 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs
@@ -7,6 +7,7 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
@@ -128,8 +129,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			var entries = new List<XElement>();
 
 			foreach (DataRow row in voltageCurve.Rows) {
-				var soc = row[XMLNames.REESS_OCV_SoC];
-				var ocv = row[XMLNames.REESS_OCV_OCV].ToString().ToDouble();
+				var soc = row[BatterySOCReader.Fields.StateOfCharge];
+				var ocv = row[BatterySOCReader.Fields.BatteryVoltage].ToString().ToDouble();
 
 				entries.Add(new XElement(_vif + XMLNames.REESS_MapEntry,
 					new XAttribute(XMLNames.REESS_OCV_SoC, soc),
@@ -144,9 +145,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 			foreach (DataRow row in batteryMaxCurrentMap.Rows)
 			{
-				var soc = row[XMLNames.REESS_CurrentLimits_SoC];
-				var maxChargingCurrent = row[XMLNames.REESS_CurrentLimits_MaxChargingCurrent].ToString().ToDouble();
-				var maxDischargingCurrent = row[XMLNames.REESS_CurrentLimits_MaxDischargingCurrent].ToString().ToDouble();
+				var soc = row[BatteryMaxCurrentReader.Fields.StateOfCharge];
+				var maxChargingCurrent = row[BatteryMaxCurrentReader.Fields.MaxChargeCurrent].ToString().ToDouble();
+				var maxDischargingCurrent = row[BatteryMaxCurrentReader.Fields.MaxDischargeCurrent].ToString().ToDouble();
 
 				entries.Add(new XElement(_vif + XMLNames.REESS_MapEntry,
 					new XAttribute(XMLNames.REESS_OCV_SoC, soc),
diff --git a/VectoMockup/VectoMockupTest/VectoMockupTest.csproj b/VectoMockup/VectoMockupTest/VectoMockupTest.csproj
index 5a089db20b7e61c84936b8360fb61da7e877240c..ff86b7373fbc797c499b39a78a68a40402a536cf 100644
--- a/VectoMockup/VectoMockupTest/VectoMockupTest.csproj
+++ b/VectoMockup/VectoMockupTest/VectoMockupTest.csproj
@@ -2,7 +2,7 @@
 
 
   <PropertyGroup>
-    <TargetFrameworks>net6.0</TargetFrameworks>
+    <TargetFrameworks>net6.0-windows</TargetFrameworks>
 	<Nullable>enable</Nullable>
 
     <IsPackable>false</IsPackable>