diff --git a/VectoCommon/VectoCommon/Models/FuelType.cs b/VectoCommon/VectoCommon/Models/FuelType.cs
index 63ac267e44b6795a5666a16d02bd64ea36c3c781..8b13eab40ea137227113fe157f6f82b8a5d96bed 100644
--- a/VectoCommon/VectoCommon/Models/FuelType.cs
+++ b/VectoCommon/VectoCommon/Models/FuelType.cs
@@ -74,5 +74,16 @@ namespace TUGraz.VectoCommon.Models
 		{
 			return ftype.GetLabel();
 		}
+
+		public static bool IsGaseous(this FuelType ftype)
+		{
+			switch (ftype) {
+				case (FuelType.NGPI):
+				case (FuelType.NGCI):
+					return true;
+				default:
+					return false;
+			}
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index df5e7ba1f40c0ee9676e350dadcc76d464021ba0..67d02bebf3fc5ed97b9657f73359d720a4805daa 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -19,7 +19,7 @@ namespace TUGraz.VectoCommon.Resources {
     // class via a tool like ResGen or Visual Studio.
     // To add or remove a member, edit your .ResX file then rerun ResGen
     // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     public class XMLNames {
@@ -1473,6 +1473,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to ConventionalLorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_ConventionalLorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_ConventionalLorryOutputType", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to ADC.
         /// </summary>
@@ -3363,6 +3372,24 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to ConventionalLorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ConventionalPrimaryBusManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to PowerMap.
         /// </summary>
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index fd22bdae3924c9030298629d0a4e65ae1ae01cc1..7a4170fa62f51051c411135ca4f8c30a2b2afbd6 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1911,4 +1911,13 @@
   <data name="REESS" xml:space="preserve">
     <value>ElectricEnergyStorage</value>
   </data>
+<data name="MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType" xml:space="preserve">
+	<value>ConventionalLorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType" xml:space="preserve">
+	<value>ConventionalPrimaryBusManufacturerOutputDataType</value>
+</data>
+<data name="CIF_OutputDataType_ConventionalLorryOutputType" xml:space="preserve">
+	<value>ConventionalLorryOutputType</value>
+</data>
 </root>
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
index 8939c26cbafce65569e4c0da2ed283847b6f6e6e..dbf110ae2245df035c2951433021b0d21131f1dd 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
@@ -139,7 +139,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
 				fuels = vehicle.Components.EngineInputData.EngineModes.Select(x => x.Fuels.Select(f => DeclarationData.FuelData.Lookup(f.FuelType, vehicle.TankSystem)).ToList())
 								.ToList();
 			}
-			Report.InitializeReport(powertrainConfig, fuels, InputDataProvider);
+			Report.InitializeReport(powertrainConfig, fuels);
 		}
 
 		protected virtual PTOData CreateDefaultPTOData()
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
index 7d3b407d78b71369bcbd04a44c8af99b5fb3a642..f303a538b11f90c4927934c31117b337b5fd2406 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
@@ -180,6 +180,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				InputDataHash = InputDataProvider.XMLHash,
 				SimulationType = SimulationType.DistanceCycle,
 				GearshiftParameters = _gearshiftData,
+				InputData = InputDataProvider
 			};
 			simulationRunData.EngineData.FuelMode = modeIdx;
 			simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs
index 6d61217a48f786a018aa2814177743752e0bd3fc..ad832920b76964dfba55291717a924dc7fbb7824 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs
@@ -13,6 +13,7 @@ using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
 
 namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
@@ -22,7 +23,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
 		public DeclarationModeMockupTruckVectoRunDataFactory(IDeclarationInputDataProvider dataProvider,
 			IDeclarationReport report) : base(dataProvider, report, false)
 		{
-			
+			if (report is IMockupReport mockupReport) {
+				mockupReport.Mockup = true;
+			}
 		}
 
 		#region Overrides of AbstractDeclarationVectoRunDataFactory
@@ -40,9 +43,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
 		protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission,
 			KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
 		{
+			VectoRunData runData;
 			if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle)
 			{
-				return new VectoRunData
+				runData = new VectoRunData
 				{
 					Exempted = true,
 					Report = Report,
@@ -50,22 +54,28 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
 					VehicleData = CreateMockupVehicleData(vehicle),
 					InputDataHash = InputDataProvider.XMLHash
 				};
+			} else {
+				var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
+				runData = new VectoRunData()
+				{
+					Loading = loading.Key,
+					Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
+					ExecutionMode = ExecutionMode.Declaration,
+					Report = Report,
+					Mission = mission,
+					SimulationType = SimulationType.DistanceCycle,
+					VehicleData = CreateMockupVehicleData(vehicle),
+					EngineData = CreateMockupEngineData(vehicle, modeIdx),
+
+				};
 			}
 
-			var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
+			runData.InputData = InputDataProvider;
+
+			return runData;
+
 
 
-			return new VectoRunData() {
-				Loading = loading.Key,
-				Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
-				ExecutionMode = ExecutionMode.Declaration,
-				Report = Report,
-				Mission = mission,
-				SimulationType = SimulationType.DistanceCycle, 
-				VehicleData = CreateMockupVehicleData(vehicle),
-				EngineData = CreateMockupEngineData(vehicle, modeIdx),
-				
-			};
 		}
 
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
index 14e0216082301ea06f305e2be208d0d3813f34c9..fa57a3e5f78949c943349866d08c342594988d13 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -157,6 +157,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 		[JsonIgnore]
 		public IMultistageVIFInputData MultistageVIFInputData { get; internal set; }
 
+		[JsonIgnore]
+		public IDeclarationInputDataProvider InputData { get; internal set; }
+
 		public class AuxData
 		{
 			// ReSharper disable once InconsistentNaming
diff --git a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs
index 9682c1e447a6b34c08319f2e6c91bd9c512b3b3b..216be6c25d0a0c5efdc444b8ace49d7c6da4e8c8 100644
--- a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs
@@ -52,7 +52,6 @@ namespace TUGraz.VectoCore.Models.Simulation
 		bool CreateFollowUpSimulatorFactory { get; set; }
 
 
-		bool MockUpRun { get; set; }
 
 		/// <summary>
 		/// Creates powertrain and initializes it with the component's data.
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
index 625e02bdd95531cc9fb95c7f32231ac271a081a3..2dcc3433a66f52a0e8f0e5b40a48be413e3f26c4 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		protected bool _simulate = true;
 
 		//TODO: set with preprocessor directive remove from interface
-		public bool MockUpRun { get; set; } = true;
+		public static bool MockUpRun { get; set; } = false;
 
 
 		public ISimulatorFactory FollowUpSimulatorFactory
diff --git a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
index df0140a393c1552c6d180ce2a4dde0b55aacd768..20cce3d9efe1c6cc84bd5e73e4c854950c63ff2d 100644
--- a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
+++ b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
@@ -68,8 +68,7 @@ namespace TUGraz.VectoCore.Models.Simulation
 	{
 		#region Implementation of IDeclarationReport
 
-		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 
 		}
@@ -93,8 +92,7 @@ namespace TUGraz.VectoCore.Models.Simulation
 	{
 		#region Implementation of IDeclarationReport
 
-		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 
 		}
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index ec58eca4b01803b90bdb16e8f0409133b87e21b3..3aeb1536c52b7d2a9368df914bd1bbc29d44af6f 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -51,8 +51,7 @@ namespace TUGraz.VectoCore.OutputData
 		 * This methodd is called once befor creating the simulation runs with a temporary 
 		 * VectoRunData instance
 		 */
-		void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null);
+		void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
 
 		/**
 		 * called when creating the simulation run (before starting the simulations)
@@ -210,7 +209,6 @@ namespace TUGraz.VectoCore.OutputData
 
 		protected abstract void WriteResult(T result);
 
-		public abstract void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null);
+		public abstract void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
 	}
 }
diff --git a/VectoCore/VectoCore/OutputData/Mockup/MockupModalDataContainer.cs b/VectoCore/VectoCore/OutputData/Mockup/MockupModalDataContainer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..67861f93fd87ea7f74b9e0527e9cad285d555117
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/Mockup/MockupModalDataContainer.cs
@@ -0,0 +1,279 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+
+namespace TUGraz.VectoCore.OutputData.Mockup
+{
+
+	//public void Run()
+	//{
+	//	if (!FoundPreviousResults)
+	//	{
+	//		(GetContainer().ModalData as ModalDataContainer).ModalDataContainerFinished += DummyRun_ModalDataContainerFinished;
+	//		_run.Run();
+	//	}
+	//	else
+	//	{
+	//		//TODO HM 
+	//		Log.Warn($"[DEV ONLY!] Using mod data: {_dummyFilePath}");
+
+	//		var modDataContainer = GetContainer().ModalData as ModalDataContainer;
+	//		modDataContainer.ReadDataFromXml(_dummyFilePath);
+	//		modDataContainer.Finish(VectoRun.Status.Success);
+	//	}
+
+
+	//}
+
+	//private void DummyRun_ModalDataContainerFinished(object sender, ModalDataContainer.ModalDataContainerFinishedEventArgs e)
+	//{
+	//	if (FinishedWithoutErrors)
+	//	{
+	//		e.DataOnFinish.WriteXml(_dummyFilePath, false);
+	//		Log.Warn($"[DEV ONLY!] Data written to {_dummyFilePath}:");
+	//	}
+	//}
+	internal class MockupModalDataContainer : IModalDataContainer
+    {
+		private IModalDataContainer _modalDataContainerImplementation;
+
+		public MockupModalDataContainer(IModalDataContainer modalDataContainer)
+		{
+			_modalDataContainerImplementation = modalDataContainer;
+			
+		}
+
+		#region MockupImplementation
+
+		public Second Duration => Second.Create(60*60*1);
+		public Meter Distance => Meter.Create(100 * 1000);
+
+
+		#endregion
+
+
+		#region Implementation of IModalDataContainer
+
+		public object this[ModalResultField key]
+		{
+			get => _modalDataContainerImplementation[key];
+			set => _modalDataContainerImplementation[key] = value;
+		}
+
+		public object this[ModalResultField key, IFuelProperties fuel]
+		{
+			get => _modalDataContainerImplementation[key, fuel];
+			set => _modalDataContainerImplementation[key, fuel] = value;
+		}
+
+		public object this[ModalResultField key, PowertrainPosition pos]
+		{
+			get => _modalDataContainerImplementation[key, pos];
+			set => _modalDataContainerImplementation[key, pos] = value;
+		}
+
+		public object this[ModalResultField key, int? pos]
+		{
+			get => _modalDataContainerImplementation[key, pos];
+			set => _modalDataContainerImplementation[key, pos] = value;
+		}
+
+		public object this[string auxId]
+		{
+			get => _modalDataContainerImplementation[auxId];
+			set => _modalDataContainerImplementation[auxId] = value;
+		}
+
+		public void CommitSimulationStep()
+		{
+			_modalDataContainerImplementation.CommitSimulationStep();
+		}
+
+		public IList<IFuelProperties> FuelData => _modalDataContainerImplementation.FuelData;
+
+		public VectoRun.Status RunStatus => _modalDataContainerImplementation.RunStatus;
+
+		public string Error => _modalDataContainerImplementation.Error;
+
+		public string StackTrace => _modalDataContainerImplementation.StackTrace;
+
+		public IEnumerable<T> GetValues<T>(ModalResultField key)
+		{
+			return _modalDataContainerImplementation.GetValues<T>(key);
+		}
+
+		public IEnumerable<T> GetValues<T>(DataColumn col)
+		{
+			return _modalDataContainerImplementation.GetValues<T>(col);
+		}
+
+		public IEnumerable<T> GetValues<T>(Func<DataRow, T> selectorFunc)
+		{
+			return _modalDataContainerImplementation.GetValues(selectorFunc);
+		}
+
+		public Dictionary<string, DataColumn> Auxiliaries => _modalDataContainerImplementation.Auxiliaries;
+
+		public T TimeIntegral<T>(ModalResultField field, Func<SI, bool> filter = null) where T : SIBase<T>
+		{
+			return _modalDataContainerImplementation.TimeIntegral<T>(field, filter);
+		}
+
+		public T TimeIntegral<T>(string field, Func<SI, bool> filter = null) where T : SIBase<T>
+		{
+			return _modalDataContainerImplementation.TimeIntegral<T>(field, filter);
+		}
+
+		public void SetDataValue(string fieldName, object value)
+		{
+			_modalDataContainerImplementation.SetDataValue(fieldName, value);
+		}
+
+		public void AddAuxiliary(string id, string columnName = null)
+		{
+			_modalDataContainerImplementation.AddAuxiliary(id, columnName);
+		}
+
+		public void Finish(VectoRun.Status runStatus, Exception exception = null)
+		{
+			_modalDataContainerImplementation.Finish(runStatus, exception);
+		}
+
+		public void FinishSimulation()
+		{
+			_modalDataContainerImplementation.FinishSimulation();
+		}
+
+		public string GetColumnName(IFuelProperties fuelData, ModalResultField mrf)
+		{
+			return _modalDataContainerImplementation.GetColumnName(fuelData, mrf);
+		}
+
+		public void Reset()
+		{
+			_modalDataContainerImplementation.Reset();
+		}
+
+		
+
+		public Func<Second, Joule, Joule> AuxHeaterDemandCalc
+		{
+			get => _modalDataContainerImplementation.AuxHeaterDemandCalc;
+			set => _modalDataContainerImplementation.AuxHeaterDemandCalc = value;
+		}
+
+		public KilogramPerWattSecond EngineLineCorrectionFactor(IFuelProperties fuel)
+		{
+			return _modalDataContainerImplementation.EngineLineCorrectionFactor(fuel);
+		}
+
+		public void CalculateAggregateValues()
+		{
+			_modalDataContainerImplementation.CalculateAggregateValues();
+		}
+
+		public void AddElectricMotor(PowertrainPosition pos)
+		{
+			_modalDataContainerImplementation.AddElectricMotor(pos);
+		}
+
+		public KilogramPerWattSecond VehicleLineSlope(IFuelProperties fuel)
+		{
+			return _modalDataContainerImplementation.VehicleLineSlope(fuel);
+		}
+
+		public bool HasCombustionEngine => _modalDataContainerImplementation.HasCombustionEngine;
+
+		public WattSecond TotalElectricMotorWorkDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorWorkDrive(emPos);
+		}
+
+		public WattSecond TotalElectricMotorWorkRecuperate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorWorkRecuperate(emPos);
+		}
+
+		public WattSecond TotalElectricMotorMotWorkDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorMotWorkDrive(emPos);
+		}
+
+		public WattSecond TotalElectricMotorMotWorkRecuperate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorMotWorkRecuperate(emPos);
+		}
+
+		public PerSecond ElectricMotorAverageSpeed(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorAverageSpeed(emPos);
+		}
+
+		public double ElectricMotorEfficiencyDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorEfficiencyDrive(emPos);
+		}
+
+		public double ElectricMotorEfficiencyGenerate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorEfficiencyGenerate(emPos);
+		}
+
+		public double ElectricMotorMotEfficiencyDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorMotEfficiencyDrive(emPos);
+		}
+
+		public double ElectricMotorMotEfficiencyGenerate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorMotEfficiencyGenerate(emPos);
+		}
+
+		public WattSecond ElectricMotorOffLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorOffLosses(emPos);
+		}
+
+		public WattSecond ElectricMotorLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorLosses(emPos);
+		}
+
+		public WattSecond ElectricMotorMotLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorMotLosses(emPos);
+		}
+
+		public WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorTransmissionLosses(emPos);
+		}
+
+		public double REESSStartSoC()
+		{
+			return _modalDataContainerImplementation.REESSStartSoC();
+		}
+
+		public double REESSEndSoC()
+		{
+			return _modalDataContainerImplementation.REESSEndSoC();
+		}
+
+		public WattSecond REESSLoss()
+		{
+			return _modalDataContainerImplementation.REESSLoss();
+		}
+
+		public ICorrectedModalData CorrectedModalData => _modalDataContainerImplementation.CorrectedModalData;
+
+		#endregion
+	}
+}
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 8a890e00c50fc8c27eb8f16e29944092b7df82cb..c8989250e9e0e89669ee7529eb023c305ac75002 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
@@ -8,14 +8,21 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9
 {
-	public abstract class AbstractCustomerReport : IXMLCustomerReport
+	public abstract class AbstractCustomerReport : IXMLCustomerReport, IXMLMockupReport
     {
 		protected readonly ICustomerInformationFileFactory _cifFactory;
 		protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+		public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9");
 		protected XElement Vehicle { get; set; }
+		protected XElement Results { get; set; }
+
+		protected abstract string OutputDataType { get; }
 
 		protected AbstractCustomerReport(ICustomerInformationFileFactory cifFactory)
 		{
@@ -29,18 +36,37 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
-			throw new NotImplementedException();
+			InitializeVehicleData(modelData.InputData);
+			Results = new XElement(Cif + "Results");
 		}
 
 		public XDocument Report { get; protected set; }
+
+		private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
 		public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
 		{
-			throw new NotImplementedException();
+			results.Add(resultValue);
+
 		}
 
 		public void GenerateReport(XElement resultSignature)
 		{
-			throw new NotImplementedException();
+			Report = new XDocument(new XElement(Cif + "VectoOutput",
+				new XAttribute("xmlns", Cif),
+				new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+				new XAttribute(XNamespace.Xmlns + "mrf", LorryManufacturerReportBase.Mrf),
+				new XAttribute(xsi + "type", $"{OutputDataType}"),
+				Vehicle,
+				Results));
+		}
+
+		#endregion
+
+		#region Implementation of IXMLMockupReport
+
+		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			Results.Add(MockupResultReader.GetCIFMockupResult(OutputDataType, resultValue, Cif + "Result"));
 		}
 
 		#endregion
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 5595d6b315bee91f9674a88f987299c08507f1cc..8aa2511c5908b262f8f1f6a81787de7ee091aa95 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
@@ -5,6 +5,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Xml.Linq;
 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;
@@ -32,6 +33,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
     #region LorryCIF
     public class ConventionalLorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => XMLNames.CIF_OutputDataType_ConventionalLorryOutputType;
 		public ConventionalLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -39,7 +41,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetConventionalLorryVehicleType().GetElement(inputData);
-			GenerateReport("ConventionalLorryOutputType");
 		}
 
 		#endregion
@@ -47,6 +48,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class HEV_PxLorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "HEV_Px_LorryOutputType";
 		public HEV_PxLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -55,13 +57,13 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		{
 			var vehicle = _cifFactory.GetHEV_PxLorryVehicleType();
 			Vehicle = _cifFactory.GetHEV_PxLorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV_Px_LorryOutputType");
 		}
 		#endregion
 	}
 
 	public class HEV_S2_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "HEV_S2_LorryOutputType";
 		public HEV_S2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -69,7 +71,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV_S2_LorryOutputType");
 		}
 
 		#endregion
@@ -77,6 +78,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class HEV_S3_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "HEV_S3_LorryOutputType";
 		public HEV_S3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -84,7 +86,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV_S3_LorryOutputType");
 		}
 
 		#endregion
@@ -92,6 +93,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class HEV_S4_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "HEV_S4_LorryOutputType";
 		public HEV_S4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -99,7 +101,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV_S4_LorryOutputType");
 		}
 
 		#endregion
@@ -107,6 +108,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class HEV_IEPC_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "HEV_IEPC_S_LorryOutputType";
 		public HEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -114,7 +116,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetHEV_IEPC_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV_IEPC_S_LorryOutputType");
 		}
 
 		#endregion
@@ -122,6 +123,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class PEV_E2_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "PEV_E2_LorryOutputType";
 		public PEV_E2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -129,7 +131,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV_E2_LorryOutputType");
 		}
 
 		#endregion
@@ -137,6 +138,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class PEV_E3_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "PEV_E3_LorryOutputType";
 		public PEV_E3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -144,7 +146,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV_E3_LorryOutputType");
 		}
 
 		#endregion
@@ -152,6 +153,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class PEV_E4_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "PEV_E4_LorryOutputType";
 		public PEV_E4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -159,7 +161,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV_E4_LorryOutputType");
+
 		}
 
 		#endregion
@@ -167,6 +169,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 	public class PEV_IEPC_Lorry_CIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "PEV_IEPC_LorryOutputType";
 		public PEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
 
 		#region Overrides of AbstractCustomerReport
@@ -174,7 +177,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV_IEPC_LorryOutputType");
 		}
 
 		#endregion
@@ -192,21 +194,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
     #region CompletedBus
     public class Conventional_CompletedBusCIF : CustomerInformationFile
-    {
-        public Conventional_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+	{
+		protected override string OutputDataType => "Conventional_CompletedBusOutputType";
+
+		public Conventional_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
         {
         }
 
         public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
         {
 			Vehicle = _cifFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
-			GenerateReport("Conventional_CompletedBusOutputType");
-        }
+		}
     }
 
 
 	public class HEV_CompletedBusCIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "HEV_CompletedBusOutputType";
 		public HEV_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
 		{
 		}
@@ -214,12 +218,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetHEV_CompletedBusVehicleType().GetElement(inputData);
-			GenerateReport("HEV_CompletedBusOutputType");
 		}
 	}
 
 	public class PEV_CompletedBusCIF : CustomerInformationFile
 	{
+		protected override string OutputDataType => "PEV_CompletedBusOutputType";
 		public PEV_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
 		{
 		}
@@ -227,7 +231,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _cifFactory.GetPEV_CompletedBusVehicleType().GetElement(inputData);
-			GenerateReport("PEV_CompltedBusOutputType");
 		}
 	}
 
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 35425cabf90c4a97ceef62e55cc64d5fd7776519..fb4804f5fc2db688db42945bd4dfee24d195c479 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
@@ -6,22 +6,31 @@ using System.Threading.Tasks;
 using System.Xml;
 using System.Xml.Linq;
 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
 {
-    internal abstract class AbstractManufacturerReport : IXMLManufacturerReport
+
+	internal interface IXMLMockupReport
+	{
+		void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue);
+	}
+	internal abstract class AbstractManufacturerReport : IXMLManufacturerReport, IXMLMockupReport
     {
         protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
-		
-		
-		protected readonly IManufacturerReportFactory _mRFReportFactory;
+		public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
+
 
+		protected readonly IManufacturerReportFactory _mRFReportFactory;
 
+		protected XElement Results { get; set; }
 		protected XElement Vehicle { get; set; }
 
+		public abstract string OutputDataType { get; } //also used as name for the mockup result element
 
 		protected AbstractManufacturerReport(IManufacturerReportFactory MRFReportFactory)
 		{
@@ -34,20 +43,43 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
-			
+			InitializeVehicleData(modelData.InputData);
+			Results = new XElement(Mrf + XMLNames.Report_Results);
 		}
 
 		public XDocument Report { get; protected set; }
+
+		private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
 		public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
 		{
-			throw new NotImplementedException();
+			
+
 		}
 
+
+		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+
+			Results.Add(MockupResultReader.GetMRFMockupResult(OutputDataType, resultValue, Mrf + "Result"));
+
+
+
+		}
+
+		
+
 		public void GenerateReport()
 		{
-			throw new NotImplementedException();
+			Report = new XDocument(new XElement(Mrf + "VectoOutput",
+					new XAttribute("xmlns", Mrf),
+					new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+					new XAttribute(xsi + "type", $"{OutputDataType}"),
+					Vehicle,
+					Results));
+			
 		}
 
 		#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 e638f39c7672403f47d7dd110e81aed2e9e191b1..034bfe8a5f00034c1a6b6906aa0f1c58f80723c8 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
@@ -31,6 +31,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
@@ -47,6 +49,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
@@ -62,6 +66,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs
index 6daf73c0d33c52d2376cad2227f924c49cd5fbef..af9f14df1d0e79873a68a950b5eeb583e8bf5059 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs
@@ -1,13 +1,19 @@
 using System.Xml.Linq;
 using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
 {
 	internal abstract class LorryManufacturerReportBase : AbstractManufacturerReport
 	{
-		public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
-		public LorryManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+		
+
+
+		public LorryManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
+		{
+
+		}
 
 		protected void GenerateReport(string outputDataType)
 		{
@@ -22,6 +28,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 	internal class ConventionalLorryManufacturerReport : LorryManufacturerReportBase
 	{
+		
 
 		public ConventionalLorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
 		{
@@ -30,11 +37,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+
+		public override string OutputDataType =>
+			XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType;
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetConventionalLorryVehicleType().GetElement(inputData);
-
-			GenerateReport("ConventionalLorryManufacturerOutputDataType");
+			
 		}
 
 		
@@ -44,16 +54,18 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 	internal class HEV_Px_IHPC_LorryManufacturerReport : LorryManufacturerReportBase
 	{
+		
 		public HEV_Px_IHPC_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "HEV-Px_IHPCLorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_Px_IHCP_LorryVehicleType().GetElement(inputData);
 
-			//TODO: REMOVE
-			GenerateReport("HEV-Px_IHPCLorryManufacturerOutputDataType");
+			GenerateReport(OutputDataType);
 		}
 
 
@@ -67,10 +79,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "HEV-S2_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV-S2_LorryManufacturerOutputDataType");
+			GenerateReport(OutputDataType);
 		}
 
 		#endregion
@@ -78,6 +92,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 	internal class HEV_S3_LorryManufacturerReport : LorryManufacturerReportBase
 	{
+		public override string OutputDataType => "HEV-S3_LorryManufacturerOutputDataType";
+
 		public HEV_S3_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
 		{
 
@@ -88,7 +104,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV-S3_LorryManufacturerOutputDataType");
+			GenerateReport(OutputDataType);
 		}
 
 		#endregion
@@ -100,10 +116,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "HEV-S4_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV-S4_LorryManufacturerOutputDataType");
 		}
 
 		#endregion
@@ -115,10 +132,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "HEV-IEPC-S_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_IEPC_S_LorryVehicleType().GetElement(inputData);
-			GenerateReport("HEV-IEPC-S_LorryManufacturerOutputDataType");
+			
 		}
 
 		#endregion
@@ -130,10 +149,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "PEV-E2_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV-E2_LorryManufacturerOutputDataType");
+			
 		}
 
 		#endregion
@@ -145,10 +166,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "PEV-E3_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV-E3_LorryManufacturerOutputDataType");
 		}
 
 		#endregion
@@ -160,10 +182,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "PEV-E4_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV-E4_LorryManufacturerOutputDataType");
 		}
 
 		#endregion
@@ -175,10 +198,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => "PEV-IEPC_LorryManufacturerOutputDataType";
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData);
-			GenerateReport("PEV-IEPC_LorryManufacturerOutputDataType");
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs
index d4e6dc19f8ede78845bbbfcc3e638314e839cc18..ca988f79c06cf9d8bff697276d6032b4c3b8a8cf 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Xml.Linq;
 using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
@@ -27,11 +28,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType;
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetConventional_PrimaryBusVehicleType().GetElement(inputData);
-
-			GenerateReport("ConventionalPrimaryBusManufacturerOutputDataType");
+			
 		}
 
 		#endregion
@@ -43,6 +45,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_Px_IHPC_PrimaryBusVehicleType().GetElement(inputData);
@@ -61,6 +65,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_S2_PrimaryBusVehicleType().GetElement(inputData);
@@ -77,6 +83,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_S3_PrimaryBusVehicleType().GetElement(inputData);
@@ -92,6 +100,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_S4_PrimaryBusVehicleType().GetElement(inputData);
@@ -108,6 +118,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetHEV_IEPC_S_PrimaryBusVehicleType().GetElement(inputData);
@@ -123,6 +135,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_E2_PrimaryBusVehicleType().GetElement(inputData);
@@ -139,6 +153,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_E3_PrimaryBusVehicleType().GetElement(inputData);
@@ -159,6 +175,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_E4_PrimaryBusVehicleType().GetElement(inputData);
@@ -175,6 +193,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Overrides of AbstractManufacturerReport
 
+		public override string OutputDataType { get; }
+
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
 			Vehicle = _mRFReportFactory.GetPEV_IEPC_PrimaryBusVehicleType().GetElement(inputData);
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
index 2d45d072dd52d9dd7134b3d7e92ecd26f79388c3..c3e2338ebdb8c16e13072ea4fd625dfae4811249 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
@@ -345,8 +345,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 			return retVal;
 		}
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehicleClass = modelData.VehicleData.VehicleClass;
 			if (VehicleClass.IsBus()) {
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index 58b1724e041c91719c5841282473bf117a9cd9c7..94eb0b24302e3cb824756009de2f173d96aff83d 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -226,8 +226,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 		}
 
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			if (modelData.Exempted) {
 				WeightingGroup = WeightingGroup.Unknown;
@@ -248,11 +247,6 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 			InstantiateReports(modelData);
 
-			InitializeReports(modelData, fuelModes, inputData);
-		}
-
-		protected virtual void InitializeReports(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes, IDeclarationInputDataProvider inputData)
-		{
 			ManufacturerRpt.Initialize(modelData, fuelModes);
 			CustomerRpt.Initialize(modelData, fuelModes);
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
index 820f4038a6b5827b9f79f1b0dbb3347fdbe45850..18d8a1e85ecdd895948090b3846024ae1743645a 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
@@ -37,8 +37,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 				};
 		}
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			_weightingFactors = EqualWeighting;
 
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
index 850afd8c3b5bf4293aeaa615bf112268768c2769..c2ba05703732a8c25a4d0f5e6a8123828388ab17 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
@@ -20,8 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 			//_multistageBusReport = new XMLMultistageBusReport();
 		}
 		
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			_multistageBusReport =
 				modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport();
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
index 8d6d135ebc7a40cac5544baa0761c08e0a22bb84..36bdb48f59d0c32501569a67a651132268576c30 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
@@ -1,7 +1,6 @@
 using System;
 using System.Collections.Generic;
 using System.Xml.Linq;
-using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
@@ -41,8 +40,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 
 		}
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
-			IDeclarationInputDataProvider inputData = null)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			base.InitializeReport(modelData, fuelModes);
 			PrimaryReport.Initialize(modelData,fuelModes);
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
index 7f2294e174e2b148dc44d9add39e802a18d4ccff..70d68bdf863af4c831049e876d57d9298f9b3722 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
@@ -1,7 +1,8 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Runtime.CompilerServices;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
@@ -13,7 +14,11 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.Manu
 
 namespace TUGraz.VectoCore.OutputData.XML
 {
-	public class XMLDeclarationReport09 : XMLDeclarationReport
+	public interface IMockupReport
+	{ 
+		bool Mockup { set; }
+	}
+	public class XMLDeclarationReport09 : XMLDeclarationReport, IMockupReport
 	{
 		private readonly IReportWriter _writer;
 		private readonly IManufacturerReportFactory _mrfFactory;
@@ -50,18 +55,45 @@ namespace TUGraz.VectoCore.OutputData.XML
 				ihpc);
 		}
 
+
 		#region Overrides of XMLDeclarationReport
 
-		protected override void InitializeReports(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes, IDeclarationInputDataProvider inputData)
+		protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
+		{
+			if (!Mockup) {
+				base.DoStoreResult(entry, runData, modData);
+				return;
+			}
+		}
+
+		protected override void WriteResult(ResultEntry result)
 		{
-			var customerReport = CustomerRpt as AbstractCustomerReport;
-			var manufacturerReport = ManufacturerRpt as AbstractManufacturerReport;
-			customerReport.InitializeVehicleData(inputData);
-			manufacturerReport.InitializeVehicleData(inputData);
+			var sumWeightinFactors = _weightingFactors.Values.Sum(x => x);
+			if (!sumWeightinFactors.IsEqual(0) && !sumWeightinFactors.IsEqual(1))
+			{
+				throw new VectoException("Mission Profile Weighting factors do not sum up to 1!");
+			}
+
+			if (Mockup) {
+				(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
+				(CustomerRpt as IXMLMockupReport).WriteMockupResult(result);
+			} else {
+				ManufacturerRpt.WriteResult(result);
+				CustomerRpt.WriteResult(result);
+			}
+	
 		}
 
 		#endregion
 
 		#endregion
+
+
+		#region Implementation of IMockupReport
+
+		public bool Mockup { private get; set; }
+
+		#endregion
 	}
+
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Resources/MockupResults.xml b/VectoCore/VectoCore/Resources/MockupResults.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a0e45b0d91b225a6ea36ce640db7d5e3a7a54c2
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/MockupResults.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<MockupResults>
+	<ConventionalLorryManufacturerOutputDataType>
+		<Mission>Long Haul</Mission>
+		<Load></Load>
+		<TotalVehicleMassInSimulation></TotalVehicleMassInSimulation>
+		<Simulation>
+			<AverageSpeed></AverageSpeed>
+		</Simulation>
+		<FuelAndEnergyConsumption>
+
+		</FuelAndEnergyConsumption>
+	</ConventionalLorryManufacturerOutputDataType>
+
+	<ConventionalLorryOutputType>
+		
+	</ConventionalLorryOutputType>
+</MockupResults>
diff --git a/VectoCore/VectoCore/Utils/MockupResultReader.cs b/VectoCore/VectoCore/Utils/MockupResultReader.cs
new file mode 100644
index 0000000000000000000000000000000000000000..35d40f0aad7502cf77aba58c75978048f03b14d6
--- /dev/null
+++ b/VectoCore/VectoCore/Utils/MockupResultReader.cs
@@ -0,0 +1,150 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.InputData.Impl;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
+using RuntimeArgumentHandle = System.RuntimeArgumentHandle;
+
+namespace TUGraz.VectoCore.Utils
+{
+
+
+    internal static class MockupResultReader
+    {
+		private enum ResultType
+		{
+			CIF,
+			MRF
+		}
+		private static class MockupResultHelper
+		{
+			private static string _convArch = "Conv";
+			private const string mockupResourcePrefix = "TUGraz.VectoCore.Resources.Declaration.Report";
+
+			
+			private static HashSet<string> conventional = new HashSet<string>() {
+				//MRF
+				XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType,
+
+				//CIF
+				XMLNames.CIF_OutputDataType_ConventionalLorryOutputType,
+			};
+
+			private static HashSet<string> hev = new HashSet<string>() { };
+			private static HashSet<string> pev = new HashSet<string>() { };
+			public static string GetResourceName(string xmlName, XMLDeclarationReport.ResultEntry result, ResultType type)
+			{
+				var arch = GetArch(xmlName, false);
+				var reportType = type == ResultType.MRF ? "MRF" : "CIF";
+				var vehicleType = result.VehicleClass.IsBus() ? "Bus" : "Lorry";
+				return $"{mockupResourcePrefix}.{reportType}_MockupResults_{arch}_{vehicleType}.xml";
+			}
+
+			private static string GetArch(string xmlName, bool ocv)
+			{
+				if (conventional.Contains(xmlName)) {
+					return "Conv";
+				}
+
+				if (hev.Contains(xmlName)) {
+					if (ocv) {
+						return "OCV-HEV";
+					} else {
+						return "non-OCV-HEV";
+					}
+					
+				}
+
+				if (pev.Contains(xmlName)) {
+					return "PEV";
+				}
+
+				throw new VectoException($"{xmlName} not mapped to Architecture (Conv/HEV/PEV)");
+			}
+
+
+		}
+        
+		public static XElement GetMRFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName)
+		{
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF));
+			ReplaceMission(result, resultElement);
+			SetFuels(result, resultElement);
+			
+
+			return resultElement;
+		}
+
+
+		public static XElement GetCIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName)
+		{
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF));
+			ReplaceMission(result, resultElement);
+			SetFuels(result, resultElement);
+
+			return resultElement;
+		}
+
+		private static XElement GetResultElement(XName resultElementName, string resourceName)
+		{
+			var xDoc = XDocument.Load(RessourceHelper.ReadStream(resourceName));
+			var results = xDoc.XPathSelectElements($"//*[name()='Result']");
+			
+			return results.First();
+		}
+
+		
+		private static void ReplaceMission(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			resultElement.Elements().Single(x => x.Name.LocalName == XMLNames.Report_Result_Mission).Value =
+				result.Mission.ToXMLFormat();
+		}
+
+		private static void SetFuels(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			var fuelElement = resultElement.XPathSelectElements("//*[name()='Fuel']").First();
+			var insertAfter = fuelElement.PreviousNode;         //FuelElements added after this element
+			fuelElement.Remove();
+			
+			foreach (var fuelProperties in result.FuelData) {
+				
+				var fuelElementToAdd = new XElement(fuelElement); //deep copy of fuel element;
+				fuelElementToAdd.SetAttributeValue(XMLNames.Report_Results_Fuel_Type_Attr, fuelProperties.FuelType.ToXMLFormat());
+				ClearFuelConsumptionEntries(fuelProperties.FuelType, fuelElementToAdd, result.VehicleClass);
+
+				insertAfter.AddAfterSelf(fuelElementToAdd);
+				insertAfter = fuelElementToAdd;
+			}
+		}
+
+		/// <summary>
+		/// Clears fuel consumption entries that are not used for a specified fueltype and vehicle class
+		/// </summary>
+		private static void ClearFuelConsumptionEntries(FuelType fuelType, XElement fuelElement,
+			VehicleClass vehicleClass)
+		{
+			if(!(vehicleClass.IsHeavyLorry() || vehicleClass.IsMediumLorry()))
+			{
+				fuelElement.XPathSelectElements("//*[@unit='l/m³-km']").FirstOrDefault()?.Remove();
+			}
+
+			if (fuelType.IsGaseous()) {
+				//var test = fuelElement.XPathSelectElements("//*[@unit='l/m³-km']");
+				fuelElement.XPathSelectElements("//*[@unit='l/m³-km']").FirstOrDefault()?.Remove();
+				fuelElement.XPathSelectElements("//*[@unit='l/t-km']").FirstOrDefault()?.Remove();
+				fuelElement.XPathSelectElements("//*[@unit='l/100km']").FirstOrDefault()?.Remove();
+			}
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 8c44bf43592b60358c4e3956743098a62757d6a1..273c5ea14b35449a15b25d5b57d4a47b7ad03552 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -11,6 +11,7 @@
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_1-Stage_650ccm.acmp" />
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_2-Stage_398ccm.acmp" />
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_3-Cylinder_2-Stage_598ccm.acmp" />
+    <None Remove="Resources\MockupResults.xml" />
     <None Remove="Resources\XSD\VectoDeclarationDefinitions.2.2.1.xsd" />
     <None Remove="Resources\XSD\VectoOutputPrimaryBus.xsd" />
   </ItemGroup>
@@ -72,6 +73,10 @@
     </EmbeddedResource>
   </ItemGroup>
 
+  <ItemGroup>
+    <EmbeddedResource Include="Resources\MockupResults.xml" />
+  </ItemGroup>
+
   <ItemGroup>
     <Compile Update="JSONKeys.Designer.cs">
       <DesignTime>True</DesignTime>
diff --git a/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
index 2b9d05d85664a09b4f122ea23b1a198befc51a55..b1dabe86a0adab5902a2e2af1142a1ee0b907858 100644
--- a/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using System.Text;
 using System.Threading.Tasks;
 using Microsoft.VisualStudio.TestPlatform.Utilities;
@@ -14,6 +15,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
 using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.FileIO;
 
@@ -93,56 +95,83 @@ namespace TUGraz.VectoCore.Tests.Integration
 			Assert.NotNull(_inputDataReader);
 		}
 
+		[SetUp]
 		public void Setup()
 		{
-			
+			SimulatorFactory.MockUpRun = true;
 
 		}
 
 		public FileOutputWriter GetOutputFileWriter(string subDirectory, string originalFilePath)
 		{
+			Directory.CreateDirectory(Path.GetFullPath(subDirectory));
 			var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), Path.GetFileName(originalFilePath));
 			return new FileOutputWriter(path);
 		}
 
-		
 
+	
 		
 
-		[TestCase(ConventionalHeavyLorry)]
-		public void ConventionalHeavyLorryMockupTest(string fileName)
+		[TestCase(ConventionalHeavyLorry, TestName="ConventionalHeavyLorry")]
+		[TestCase(ConventionalHeavyLorry, false, TestName = "ConventionalHeavyLorryNoMockup")]
+		[TestCase(HEV_S2_HeavyLorry, TestName = "HEV_S2_HeavyLorry")]
+		[TestCase(HEV_S3_HeavyLorry, TestName = "HEV_S3_HeavyLorry")]
+		[TestCase(HEV_S4_HeavyLorry, TestName = "HEV_S4_HeavyLorry")]
+		[TestCase(HEV_Px_HeavyLorry, TestName = "HEV_Px_HeavyLorry")]
+		[TestCase(PEV_E2_HeavyLorry, TestName = "PEV_E2_HeavyLorry")]
+		[TestCase(PEV_E2_HeavyLorry, false, TestName = "PEV_E2_HeavyLorryNoMockup")]
+		[TestCase(PEV_E3_HeavyLorry, TestName = "PEV_E3_HeavyLorry")]
+		[TestCase(PEV_E4_HeavyLorry, TestName = "PEV_E4_HeavyLorry")]
+		[TestCase(PEV_IEPC_HeavyLorry, TestName = "PEV_IEPC_HeavyLorry")]
+		[TestCase(HEV_IEPC_S_HeavyLorry, TestName = "HEV_IEPC_S_HeavyLorry")]
+		[NonParallelizable]
+		public void HeavyLorryMockupTest(string fileName, bool mockup = true)
 		{
+			SimulatorFactory.MockUpRun = mockup;
 			var inputProvider = _inputDataReader.Create(fileName);
-			var fileWriter = GetOutputFileWriter(nameof(ConventionalHeavyLorryMockupTest), fileName);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
 			var sumWriter = new SummaryDataContainer(fileWriter);
 			var jobContainer = new JobContainer(sumWriter);
 
 			_simulatorFactory =
 				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
-			_simulatorFactory.MockUpRun = true;
 
 			jobContainer.AddRuns(_simulatorFactory);
 			jobContainer.Execute(false);
 			jobContainer.WaitFinished();
-			if(!File.Exists(fileWriter.XMLCustomerReportName))
-			{
-				TestContext.WriteLine(fileWriter.XMLCustomerReportName);
-				Assert.Fail();
-			}
-
-
-
-
+			CheckFileExists(fileWriter);
 		}
 
+		[TestCase(Conventional_PrimaryBus, TestName = "ConventionalPrimaryBus")]
+		public void PrimaryBusMockupTest(string fileName)
+		{
+			var inputProvider = _inputDataReader.Create(fileName);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
 
+			_simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
 
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+			CheckFileExists(fileWriter);
+		}
 
 
-
-
-
-
-
+		private static void CheckFileExists(FileOutputWriter fileWriter)
+		{
+			if (!File.Exists(fileWriter.XMLCustomerReportName)) {
+				TestContext.WriteLine(fileWriter.XMLCustomerReportName);
+				Assert.Fail();
+			}
+			if (!File.Exists(fileWriter.XMLFullReportName))
+			{
+				TestContext.WriteLine(fileWriter.XMLFullReportName);
+				Assert.Fail();
+			}
+		}
 	}
 }