diff --git a/VectoCore/VectoCore/Mockup/MockupResultReader.cs b/VectoCore/VectoCore/Mockup/MockupResultReader.cs
index acdf5cb9d53d94bf4b62bab206e348297713eb00..5454ef27b0f461ca2097ad3ec9856b3a6e36ff16 100644
--- a/VectoCore/VectoCore/Mockup/MockupResultReader.cs
+++ b/VectoCore/VectoCore/Mockup/MockupResultReader.cs
@@ -24,7 +24,7 @@ namespace TUGraz.VectoMockup
 
     internal static class MockupResultReader
     {
-		private enum ResultType
+		public enum ResultType
 		{
 			CIF,
 			MRF,
@@ -78,14 +78,14 @@ namespace TUGraz.VectoMockup
 
 			};
 
-			public static string GetResourceName(string xmlName, IResultEntry result, ResultType type, VectoRunData runData)
+			public static string GetResourceName(ResultType type, VectoRunData runData)
 			{
 				
 				var resNames = Assembly.GetAssembly(typeof(MockupResultReader)).GetManifestResourceNames();
 				//if (result.Status == VectoRun.Status.Success) {
-					var arch = GetArch(xmlName, runData);
+					var arch = GetArch(runData);
 					var reportType = GetReportType(type);
-					var vehicleType = result.VehicleClass.IsBus() ? "Bus" : "Lorry";
+					var vehicleType = runData.VehicleData.VehicleClass.IsBus() ? "Bus" : "Lorry";
 					return $"{mockupResourcePrefix}.{reportType}_MockupResults_{arch}_{vehicleType}.xml";
 				//}
 
@@ -106,7 +106,7 @@ namespace TUGraz.VectoMockup
 				}
 			}
 
-			private static string GetArch(string xmlName, VectoRunData runData)
+			private static string GetArch(VectoRunData runData)
 			{
 				bool ovc = false;
 				var jobType = VectoSimulationJobType.ConventionalVehicle;
@@ -131,30 +131,27 @@ namespace TUGraz.VectoMockup
 					return "PEV";
 				}
 
-				throw new VectoException($"{xmlName} not mapped to Architecture (Conv/HEV/PEV)");
+				throw new VectoException($"{runData.JobType} not mapped to Architecture (Conv/HEV/PEV)");
 			}
 
-
 		}
-        
-		public static XElement GetMRFMockupResult(string xmlName, IResultEntry result, XName resultElementName, VectoRunData runData)
+		
+		public static XElement GetMRFMockupResult(IResultEntry result, XName resultElementName, VectoRunData runData)
 		{
-			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF, runData));
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(ResultType.MRF, runData));
 			ReplaceMission(result, resultElement);
 			ReplaceGroup(result, resultElement);
 			ReplacePayload(result, resultElement);
 			ReplaceFuelMode(result, resultElement);
 			SetFuels(result, resultElement);
 			ClearGearboxAndAxleGearEntries(result, resultElement, runData);
-			
+
 			return resultElement;
 		}
 
-
-
-		public static XElement GetCIFMockupResult(string xmlName, IResultEntry result, XName resultElementName, VectoRunData runData)
+		public static XElement GetCIFMockupResult(IResultEntry result, XName resultElementName, VectoRunData runData)
 		{
-			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF, runData));
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(ResultType.CIF, runData));
 			resultElement.DescendantNodes().OfType<XComment>().Remove();
 			ReplaceMission(result, resultElement);
 			SetFuels(result, resultElement);
@@ -162,21 +159,19 @@ namespace TUGraz.VectoMockup
 			return resultElement;
 		}
 
-		public static XElement GetVIFMockupResult(string xmlName, IResultEntry result, XName resultElementName, VectoRunData runData)
+		public static XElement GetVIFMockupResult(IResultEntry result, XName resultElementName, VectoRunData runData)
 		{
-			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.VIF, runData));
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(ResultType.VIF, runData));
 			resultElement.DescendantNodes().OfType<XComment>().Remove();
 			ReplaceMission(result, resultElement);
 			ReplaceGroup(result, resultElement);
 			ReplacePayload(result, resultElement);
-			ReplaceFuelMode(result,resultElement);
-            SetFuels(result, resultElement);
+			ReplaceFuelMode(result, resultElement);
+			SetFuels(result, resultElement);
 
-            return resultElement;
+			return resultElement;
 		}
 
-
-
 		private static void ReplacePayload(IResultEntry result, XElement resultElement)
 		{
 			if (result.Payload == null) {
diff --git a/VectoCore/VectoCore/Mockup/Ninject/CIFMockupModule.cs b/VectoCore/VectoCore/Mockup/Ninject/CIFMockupModule.cs
index 3e1076da0e757208389513c788ac317f2f3d66c7..390a29b80e63d86bbd0ea95de7624ada573f68f8 100644
--- a/VectoCore/VectoCore/Mockup/Ninject/CIFMockupModule.cs
+++ b/VectoCore/VectoCore/Mockup/Ninject/CIFMockupModule.cs
@@ -40,7 +40,7 @@ namespace TUGraz.VectoMockup.Ninject
         public IXMLCustomerReport GetCustomerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId,
             bool exempted, bool iepc, bool ihpc)
         {
-            return new MockupCustomerReport(_cifFactory.GetCustomerReport(vehicleType, jobType, archId, exempted, iepc, ihpc), exempted);
+            return new MockupCustomerReport(_cifFactory.GetCustomerReport(vehicleType, jobType, archId, exempted, iepc, ihpc));
         }
 
         public IXmlTypeWriter GetConventionalLorryVehicleType()
diff --git a/VectoCore/VectoCore/Mockup/Ninject/MRFMockupModule.cs b/VectoCore/VectoCore/Mockup/Ninject/MRFMockupModule.cs
index 6b51536cf11d869d421e0a2113249bbfac07b1ca..3dfe66f0e2cfea7ef79803f033bbebf473274976 100644
--- a/VectoCore/VectoCore/Mockup/Ninject/MRFMockupModule.cs
+++ b/VectoCore/VectoCore/Mockup/Ninject/MRFMockupModule.cs
@@ -44,7 +44,7 @@ namespace TUGraz.VectoMockup.Ninject
         public IXMLManufacturerReport GetManufacturerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType,
             ArchitectureID archId, bool exempted, bool iepc, bool ihpc)
         {
-            return new MockupManufacturerReport(_manufacturerReportFactoryImplementation.GetManufacturerReport(vehicleType, jobType, archId, exempted, iepc, ihpc), exempted);
+            return new MockupManufacturerReport(_manufacturerReportFactoryImplementation.GetManufacturerReport(vehicleType, jobType, archId, exempted, iepc, ihpc));
         }
 
         public IXmlTypeWriter GetConventionalLorryVehicleType()
diff --git a/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs b/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs
deleted file mode 100644
index 9d68af06df57da4706341b7b301e83839bd52e67..0000000000000000000000000000000000000000
--- a/VectoCore/VectoCore/Mockup/Reports/IXMLMockupReport.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using TUGraz.VectoCore.OutputData;
-using TUGraz.VectoCore.OutputData.XML;
-
-namespace TUGraz.VectoMockup.Reports
-{
-	internal interface IXMLMockupReport
-	{
-		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 35ef05e800942f96f57a91a18388d8d5e1b47d37..667a033dce64695523a8cfea1c6995ef55c92ca1 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupCustomerReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupCustomerReport.cs
@@ -11,28 +11,19 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.Manu
 
 namespace TUGraz.VectoMockup.Reports
 {
-    public class MockupCustomerReport : IXMLCustomerReport, IXMLMockupReport
+    public class MockupCustomerReport : IXMLCustomerReport
     {
-		private readonly bool _exempted;
 		private readonly AbstractCustomerReport _originalCustomerReport;
-        private XNamespace Cif = AbstractCustomerReport.Cif_0_9;
-        public MockupCustomerReport(IXMLCustomerReport originalReport, bool exempted)
+
+		public MockupCustomerReport(IXMLCustomerReport originalReport)
         {
-			_exempted = exempted;
 			_originalCustomerReport = originalReport as AbstractCustomerReport;
-            _outputDataType = _originalCustomerReport.OutputDataType;
-            Results = new XElement(Cif + XMLNames.Report_Results);
         }
 
-        private XElement Results;
-        private readonly string _outputDataType;
-        private VectoRunData _modelData;
-        
         #region Implementation of IXMLCustomerReport
 
         public void Initialize(VectoRunData modelData)
         {
-            _modelData = modelData;
             _originalCustomerReport.Initialize(modelData);
         }
 
@@ -41,12 +32,8 @@ namespace TUGraz.VectoMockup.Reports
             get
             {
                 var report = _originalCustomerReport.Report;
-                report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']").Single().ReplaceWith(Results);
-
                 return report;
-
-
-            }
+			}
         }
 
         public void WriteResult(IResultEntry resultValue)
@@ -61,28 +48,6 @@ namespace TUGraz.VectoMockup.Reports
 
         #endregion
 
-        #region Implementation of IXMLMockupReport
-
-        public void WriteMockupResult(IResultEntry resultValue)
-        {
-            Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Result", _modelData));
-        }
-
-        public void WriteMockupSummary(IResultEntry resultValue)
-        {
-            Results.AddFirst(new XElement(Cif + "Status", "success"));
-            Results.AddFirst(new XComment("Always prints success at the moment"));
-			if (!_modelData.VehicleData.InputData.VocationalVehicle) {
-				Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Summary", _modelData));
-            }
-		}
-
-		public void WriteExemptedResults()
-		{
-			Results.Add(new XElement(Cif + "Status", "success"));
-			Results.Add(new XElement(Cif + "ExemptedVehicle"));
-        }
 
-		#endregion
     }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs b/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs
index 6a9efa0917f2265854373b5e44f0ff515f0b734d..e90024ca680285a51ec6f0fe2aab7a4c07b787d7 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupManufacturerReport.cs
@@ -12,56 +12,22 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.Manu
 
 namespace TUGraz.VectoMockup.Reports
 {
-	public class MockupManufacturerReport : IXMLManufacturerReport, IXMLMockupReport
+	public class MockupManufacturerReport : IXMLManufacturerReport
 	{
-		private readonly bool _exempted;
 		private AbstractManufacturerReport _ixmlManufacturerReportImplementation;
-		private VectoRunData _modelData;
 
-		private XNamespace Mrf = AbstractManufacturerReport.Mrf_0_9;
-		private readonly string _outputData;
-		private XElement Results { get; set; }
-		public MockupManufacturerReport(IXMLManufacturerReport originalManufacturerReport, bool exempted)
+		
+		public MockupManufacturerReport(IXMLManufacturerReport originalManufacturerReport)
 		{
-			_exempted = exempted;
 			_ixmlManufacturerReportImplementation = originalManufacturerReport as AbstractManufacturerReport;
-			_outputData = _ixmlManufacturerReportImplementation.OutputDataType;
-
-			Results = new XElement(Mrf + XMLNames.Report_Results);
-		}
-
-		public void WriteMockupResult(IResultEntry resultValue)
-		{
-
-			Results.Add(MockupResultReader.GetMRFMockupResult(_outputData, resultValue, Mrf + "Result", _modelData));
-
-		}
-
-		public void WriteMockupSummary(IResultEntry resultValue)
-		{
-			Results.AddFirst(new XElement(Mrf + "Status", "success"));
-			Results.AddFirst(new XComment("Always prints success at the moment"));
-			//Results.Add(MockupResultReader.GetMRFMockupResult(OutputDataType, resultValue, Mrf + "Summary", _ovc));
-		}
-
-		public void WriteExemptedResults()
-		{
-			Results.Add(new XElement(Mrf + "Status", "success"));
-			Results.Add(new XElement(Mrf + "ExemptedVehicle"));
 		}
 
 
 		#region Implementation of IXMLManufacturerReport
 
 
-		//public void InitializeVehicleData(IDeclarationInputDataProvider inputData)
-		//{
-		//	_ixmlManufacturerReportImplementation.InitializeVehicleData(inputData);
-		//}
-
 		public void Initialize(VectoRunData modelData)
 		{
-			_modelData = modelData;
 			_ixmlManufacturerReportImplementation.Initialize(modelData);
 		}
 
@@ -70,8 +36,6 @@ namespace TUGraz.VectoMockup.Reports
 			get
 			{
 				var report = _ixmlManufacturerReportImplementation.Report;
-				report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']").Single().ReplaceWith(Results);
-
 				return report;
 			}
 		}
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs b/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs
index 0f1786e2324984aed93f7856a55bd539f6aed6c0..027cf37b75c9cde99dd84f3c7d3437d4c0a13630 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupReportResultsFactory.cs
@@ -1,7 +1,10 @@
 using System.Collections.Generic;
+using System.Linq;
 using System.Xml;
 using System.Xml.Linq;
 using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common;
 
@@ -9,21 +12,55 @@ namespace TUGraz.VectoMockup.Reports
 {
 	class MockupReportResultsFactory : IResultsWriterFactory
 	{
+		protected XNamespace CIF = XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9");
+		protected XNamespace MRF = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
+		protected XNamespace VIF = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1");
+
 		#region Implementation of IResultsWriterFactory
 
 		public IResultsWriter GetCIFResultsWriter(string vehicleCategory, VectoSimulationJobType jobType, bool ovc, bool exempted)
 		{
-			return new MockupDummyResultsWriter(XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"));
+			if (exempted)
+				return new MockupExemptedResultsWriter(CIF, MockupResultReader.ResultType.CIF);
+			return new MockupDummyResultsWriter(CIF, MockupResultReader.ResultType.CIF);
 		}
 
 		public IResultsWriter GetMRFResultsWriter(string vehicleCategory, VectoSimulationJobType jobType, bool ovc, bool exempted)
 		{
-			return new MockupDummyResultsWriter(XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"));
+			if (exempted)
+				return new MockupExemptedResultsWriter(MRF, MockupResultReader.ResultType.CIF);
+			return new MockupDummyResultsWriter(MRF, MockupResultReader.ResultType.MRF);
 		}
 
 		public IResultsWriter GetVIFResultsWriter(string vehicleCategory, VectoSimulationJobType jobType, bool ovc, bool exempted)
 		{
-			return new MockupDummyResultsWriter(XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"));
+			if (exempted)
+				return new MockupExemptedResultsWriter(VIF, MockupResultReader.ResultType.CIF);
+			return new MockupDummyResultsWriter(VIF, MockupResultReader.ResultType.VIF);
+		}
+
+		#endregion
+	}
+
+	internal class MockupExemptedResultsWriter : IResultsWriter
+	{
+		private readonly XNamespace TNS;
+		public MockupResultReader.ResultType ResultType;
+
+		public MockupExemptedResultsWriter(XNamespace ns, MockupResultReader.ResultType resultType)
+		{
+			TNS = ns;
+			ResultType = resultType;
+		}
+
+		#region Implementation of IResultsWriter
+
+		public XElement GenerateResults(List<IResultEntry> results)
+		{
+			var retVal = new XElement(TNS + XMLNames.Report_Results);
+			retVal.Add(new XElement(TNS + "Status", "success"));
+			retVal.Add(new XElement(TNS + "ExemptedVehicle"));
+			return retVal;
 		}
 
 		#endregion
@@ -33,17 +70,46 @@ namespace TUGraz.VectoMockup.Reports
 	{
 		private readonly XNamespace TNS;
 
-		public MockupDummyResultsWriter(XNamespace ns)
+		public MockupDummyResultsWriter(XNamespace ns, MockupResultReader.ResultType resultType)
 		{
 			TNS = ns;
+			ResultType = resultType;
 		}
 
+		public MockupResultReader.ResultType ResultType;
+
 		#region Implementation of IResultsWriter
 
 		public XElement GenerateResults(List<IResultEntry> results)
 		{
-			// only return a single 'Results' element - will be replaced in Mockup Report
-			return new XElement(TNS + "Results");
+			var retVal = new XElement(TNS + XMLNames.Report_Results);
+			retVal.AddFirst(new XElement(TNS + "Status", "success"));
+			retVal.AddFirst(new XComment("Always prints success at the moment"));
+
+			foreach (var result in results) {
+				switch (ResultType) {
+					case MockupResultReader.ResultType.CIF:
+						retVal.Add(MockupResultReader.GetCIFMockupResult(result, "Result", result.VectoRunData));
+						break;
+					case MockupResultReader.ResultType.MRF:
+						retVal.Add(MockupResultReader.GetMRFMockupResult(result, "Result", result.VectoRunData));
+						break;
+					case MockupResultReader.ResultType.VIF:
+						retVal.Add(MockupResultReader.GetVIFMockupResult(result, "Result", result.VectoRunData));
+						break;
+				}
+				
+			}
+
+			if (ResultType == MockupResultReader.ResultType.CIF) {
+				var result = results.First();
+				if (!result.VectoRunData.VehicleData.VocationalVehicle) {
+					retVal.Add(MockupResultReader.GetCIFMockupResult(result, TNS + "Summary",
+						result.VectoRunData));
+				}
+			}
+
+			return retVal;
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs b/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs
deleted file mode 100644
index ce773080a2ac0203584b3a08cf2dbd2ebda60d06..0000000000000000000000000000000000000000
--- a/VectoCore/VectoCore/Mockup/Reports/MockupVIFReport.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-using System.Linq;
-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;
-
-namespace TUGraz.VectoMockup.Reports
-{
-    public class MockupVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport
-    {
-		private XDocument _report;
-		private XNamespace _tns;
-
-
-		public MockupVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFile)
-		{
-
-		}
-
-
-
-		//private XDocument _report;
-		//private VectoRunData _modelData;
-
-
-		//#region Implementation of IXMLMockupReport
-
-		//public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
-		//{
-		//	throw new NotImplementedException();
-		//}
-
-		//public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
-		//{
-		//	throw new NotImplementedException();
-		//}
-
-		//#endregion
-
-		//#region Implementation of IXMLMultistageReport
-
-		//public void Initialize(VectoRunData modelData)
-		//{
-		//	_modelData = modelData;
-		//}
-
-		//public XDocument Report => _report;
-
-		//public void GenerateReport()
-		//{
-		//	throw new NotImplementedException();
-		//}
-
-		//#endregion
-
-		#region Implementation of IXMLPrimaryVehicleReport
-
-		public void Initialize(VectoRunData modelData)
-		{
-			throw new NotImplementedException();
-		}
-
-		public void WriteResult(XMLDeclarationReport.ResultEntry result)
-		{
-			throw new NotImplementedException();
-		}
-
-		public void GenerateReport(XElement fullReportHash)
-		{
-			throw new NotImplementedException();
-		}
-
-		public XDocument Report => _report;
-
-		public XNamespace Tns => _tns;
-
-		#endregion
-
-		#region Implementation of IXMLMockupReport
-
-		public void WriteMockupResult(IResultEntry resultValue)
-		{
-			
-		}
-
-		public void WriteMockupSummary(IResultEntry resultValue)
-		{
-		}
-
-		public void WriteExemptedResults()
-		{
-			throw new NotImplementedException();
-		}
-
-		#endregion
-	}
-}
diff --git a/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs b/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs
index e00244edd09ca376e5038b52cecddddfe522902c..1b1403beee23c36e84863772c63e66afbc216981 100644
--- a/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/MockupVehicleInformationFile.cs
@@ -14,7 +14,7 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
 
 namespace TUGraz.VectoMockup.Reports
 {
-	internal class MockupInterimVehicleInformationFile : IXMLMultistepIntermediateReport, IXMLMockupReport
+	internal class MockupInterimVehicleInformationFile : IXMLMultistepIntermediateReport
 	{
 		private readonly IXMLMultistepIntermediateReport _intermediateVifImplementation;
 
@@ -39,38 +39,18 @@ namespace TUGraz.VectoMockup.Reports
 
 		#endregion
 
-		#region Implementation of IXMLMockupReport
-
-		public void WriteMockupResult(IResultEntry resultValue)
-		{
-			
-		}
-
-		public void WriteMockupSummary(IResultEntry resultValue)
-		{
-			
-		}
-
-		public void WriteExemptedResults()
-		{
-			
-		}
-
-		#endregion
 	}
 
 
-	internal class MockupPrimaryVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport
+	internal class MockupPrimaryVehicleInformationFile : IXMLVehicleInformationFile
     {
 		
 		private readonly IXMLVehicleInformationFile _vehicleInformationFileImplementation;
 		private VectoRunData _modelData;
 
-		private XElement Results;
 		public MockupPrimaryVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFileImplementation)
 		{
 			_vehicleInformationFileImplementation = vehicleInformationFileImplementation;
-			Results = new XElement(_vehicleInformationFileImplementation.Tns + XMLNames.Report_Results);
 		}
 
 
@@ -82,7 +62,7 @@ namespace TUGraz.VectoMockup.Reports
 			_modelData = modelData;
 		}
 
-		public void WriteResult(XMLDeclarationReport.ResultEntry result)
+		public void WriteResult(IResultEntry result)
 		{
 			_vehicleInformationFileImplementation.WriteResult(result);
 		}
@@ -93,25 +73,6 @@ namespace TUGraz.VectoMockup.Reports
 
 		#region Implementation of IXMLMockupReport
 
-		public void WriteMockupResult(IResultEntry resultValue)
-		{
-			var xElement = MockupResultReader.GetVIFMockupResult(Tns.NamespaceName, resultValue, Tns + "Result", _modelData);
-			Results.Add(xElement);
-		}
-
-		public void WriteMockupSummary(IResultEntry resultValue)
-		{
-			Results.AddFirst(new XElement(Tns + "Status", "success"));
-			Results.AddFirst(new XComment("Always prints success at the moment"));
-		}
-
-		public void WriteExemptedResults()
-		{
-			Results.Add(new XElement(Tns + "Status", "success"));
-			Results.Add(new XElement(Tns + "ExemptedVehicle"));
-		}
-		
-
 		public void GenerateReport(XElement fullReportHash)
 		{ 
 			_vehicleInformationFileImplementation.GenerateReport(fullReportHash);
@@ -122,8 +83,6 @@ namespace TUGraz.VectoMockup.Reports
 			get
 			{
 				var report = _vehicleInformationFileImplementation.Report;
-				var resultsElement = report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']");
-				resultsElement.First().ReplaceWith(Results);
 				return report;
 			}
 		}
diff --git a/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupPrimaryReport.cs b/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupPrimaryReport.cs
index 774218a674bf7fd6e349d2a0e193ccb7afe56642..a9503283965e0b54ac5567a3fd19e412f04ebba8 100644
--- a/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupPrimaryReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupPrimaryReport.cs
@@ -39,8 +39,8 @@ namespace TUGraz.VectoMockup.Reports
 
 		protected override void WriteResult(ResultEntry result)
 		{
-			(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
-			(VehicleInformationFile as IXMLMockupReport).WriteMockupResult(result);
+			ManufacturerRpt.WriteResult(result);
+			VehicleInformationFile.WriteResult(result);
 		}
 
 		#endregion
@@ -48,14 +48,6 @@ namespace TUGraz.VectoMockup.Reports
 		
 		protected override void GenerateReports()
 		{
-			if (!_exempted) {
-				(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
-				(VehicleInformationFile as IXMLMockupReport).WriteMockupSummary(Results.First());
-			} else {
-				(ManufacturerRpt as IXMLMockupReport).WriteExemptedResults();
-				(VehicleInformationFile as IXMLMockupReport).WriteExemptedResults();
-			}
-
 			ManufacturerRpt.GenerateReport();
 			var fullReportHash = GetSignature(ManufacturerRpt.Report);
 			VehicleInformationFile.GenerateReport(fullReportHash);
diff --git a/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReport.cs b/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReport.cs
index 6b73c358e49cbe6bdb626493d4330be13ce80e7d..4b8b05c61286b9a376ff92d3face11b257ee116c 100644
--- a/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReport.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReport.cs
@@ -35,24 +35,10 @@ namespace TUGraz.VectoMockup.Reports
 
 		protected override void WriteResult(ResultEntry result)
 		{
-			(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
-			(CustomerRpt as IXMLMockupReport).WriteMockupResult(result);
+			ManufacturerRpt.WriteResult(result);
+			CustomerRpt.WriteResult(result);
 		}
 
-		protected override void GenerateReports()
-		{
-			if (!_exempted) {
-				(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
-				(CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
-			} else {
-				(ManufacturerRpt as IXMLMockupReport).WriteExemptedResults();
-				(CustomerRpt as IXMLMockupReport).WriteExemptedResults();
-			}
-		
-			
-			
-			base.GenerateReports();
-		}
 
 		#endregion
 	}
diff --git a/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs b/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
index bd25165ae8cf62bf044bde24ba00a7b94d85f9fa..a4a250ff069a442d4788740a9787591a13c9c1ea 100644
--- a/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
+++ b/VectoCore/VectoCore/Mockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
@@ -118,23 +118,8 @@ namespace TUGraz.VectoMockup.Reports
 				result.FuelData = primaryResult.EnergyConsumption.Keys
 					.Select(x => DeclarationData.FuelData.Lookup(x, tankSystem)).Cast<IFuelProperties>().ToList();
 			}
-			(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
-			(CustomerRpt as IXMLMockupReport).WriteMockupResult(result);
-		}
-
-		protected override void GenerateReports()
-		{
-			if (!_exempted) {
-				(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
-				(CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
-			} else {
-				(ManufacturerRpt as IXMLMockupReport).WriteExemptedResults();
-				(CustomerRpt as IXMLMockupReport).WriteExemptedResults();
-			}
-
-
-
-			base.GenerateReports();
+			ManufacturerRpt.WriteResult(result);
+			CustomerRpt.WriteResult(result);
 		}
 
 	}
diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
index c45182cb415563256e0eb2e723dca7d08b955196..0d164a15743a58126524ea0bf579753daaf6fe2a 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
@@ -131,7 +131,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 ExecutionMode = ExecutionMode.Declaration,
                 JobName = DataProvider.MultistageJobInputData.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
                 Report = Report,
-                //Aux = PrimaryBusMockupRunDataFactory.CreateMockupBusAux(CompletedVehicle),
+				//Aux = PrimaryBusMockupRunDataFactory.CreateMockupBusAux(CompletedVehicle),
 
                 //            //AirdragData = DataAdapterSpecific.CreateAirdragData(CompletedVehicle, mission),
                 //            //EngineData = DataAdapterSpecific.CreateEngineData(PrimaryVehicle, modeIdx, mission),
@@ -224,7 +224,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 VehicleData = new VehicleData()
                 {
                     Loading = loading.Value.Item1,
-
+                    VehicleClass = primarySegment.VehicleClass,
                 },
                 EngineData = PrimaryBusMockupRunDataFactory.CreateMockupEngineData(PrimaryVehicle, modeIdx, CompletedVehicle.TankSystem),
                 JobName = DataProvider.MultistageJobInputData.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
@@ -233,6 +233,9 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
                 Report = Report,
                 ModFileSuffix = $"_{_segmentCompletedBus.VehicleClass.GetClassNumber()}-Generic_{loading.Key}",
+				InputData = DataProvider.MultistageJobInputData,
+                GearboxData = PrimaryBusMockupRunDataFactory.CreateMockupGearboxData(PrimaryVehicle),
+                AxleGearData = PrimaryBusMockupRunDataFactory.CreateMockupAxleGearData(PrimaryVehicle)
             };
             return base.CreateVectoRunDataGeneric(mission, loading, primarySegment, modeIdx);
         }
diff --git a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
index 7ed4d67fadebe45d8e5eb2bb92bc529f1ea68e4c..c3c5c4fc265890504181db359d9b6f7e28387ed6 100644
--- a/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/Mockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
@@ -246,7 +246,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
                 SleeperCab = vehicleData.SleeperCab,
                 VehicleClass = _segment.VehicleClass,
                 OffVehicleCharging = vehicleData.OvcHev,
-
+                VocationalVehicle = vehicleData.VocationalVehicle,
             };
         }
     }
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index 0cc738025db9bdd343a169940f18e1f5e43a6f9a..e522154058dcb579e56ab5ca18ef1bbe856e58a6 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -74,6 +74,8 @@ namespace TUGraz.VectoCore.OutputData
 	{
 		void Initialize(VectoRunData vectoRunData);
 
+		VectoRunData VectoRunData { get; }
+
 		VectoRun.Status Status { get; }
 
 		VectoRunData.OvcHevMode OVCMode { get; }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs
index 8d330dd58b5c1bcfd268dee69f0986b031550349..b54d3b7e0d1f311ce6330b6ec0ffad716aae4bc4 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs
@@ -6,7 +6,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 	public interface IXMLVehicleInformationFile
 	{
 		void Initialize(VectoRunData modelData);
-		void WriteResult(XMLDeclarationReport.ResultEntry result);
+		void WriteResult(IResultEntry result);
 		void GenerateReport(XElement fullReportHash);
 		XDocument Report { get; }
 		XNamespace Tns { get; }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
index 19d94946d628fcfd47e9c1b6e9ab75d94ad71702..f8971b6e5abad9c34b913014beb0db67c74d54ca 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
@@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		}
 
 		
-		public void WriteResult(XMLDeclarationReport.ResultEntry result)
+		public void WriteResult(IResultEntry result)
 		{
 			_results.Add(result);
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs
index be87c99c1aedc52718f4efb8da8d06d1f8d7000a..1f61748ebd4f770cd93ae5d78007cc08bf3a3cf3 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		}
 
-		public override void WriteResult(XMLDeclarationReport.ResultEntry result)
+		public override void WriteResult(IResultEntry result)
 		{
 			// no results for exempted vehicle
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
index 5663b85f1a2389ab2f214d0c927e90d4641e523a..94e2365155b45f62913f75878c43248298768fd6 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
@@ -531,7 +531,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			};
 		}
 
-		public virtual void WriteResult(XMLDeclarationReport.ResultEntry resultEntry)
+		public virtual void WriteResult(IResultEntry resultEntry)
 		{
 			_allSuccess &= resultEntry.Status == VectoRun.Status.Success;
 
@@ -566,7 +566,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
                     GetResults(resultEntry)));
         }
 
-		private object[] GetResults(XMLDeclarationReport.ResultEntry resultEntry)
+		private object[] GetResults(IResultEntry resultEntry)
 		{
 			switch (resultEntry.Status) {
 				case VectoRun.Status.Pending:
@@ -582,7 +582,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			}
 		}
 
-		private object[] GetSuccessResultEntry(XMLDeclarationReport.ResultEntry result)
+		private object[] GetSuccessResultEntry(IResultEntry result)
 		{
 			var retVal = new List<XElement>();
 
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index d1f4eddbe487d04367bf61b3891a53ed94527653..25ca624844800164a39fbc558b8dbe0ef0389288 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -95,19 +95,22 @@ namespace TUGraz.VectoCore.OutputData.XML
 				MaxChargingPower = runData.MaxChargingPower;
 				BatteryData = runData.BatteryData;
 				OVCMode = runData.OVCMode;
+				VectoRunData = runData;
 			}
 
-			public MissionType Mission { get; set; }
-			public LoadingType LoadingType { get; set; }
-			public int FuelMode { get; set; }
+			public VectoRunData VectoRunData { get; private set; }
+
+			public MissionType Mission { get; private set; }
+			public LoadingType LoadingType { get; private set; }
+			public int FuelMode { get; private set; }
 			public IList<IFuelProperties> FuelData { get; set; }
 
 
 			public Kilogram Payload { get; set; }
 
-			public Kilogram TotalVehicleMass { get; set; }
+			public Kilogram TotalVehicleMass { get; private set; }
 
-			public CubicMeter CargoVolume { get; set; }
+			public CubicMeter CargoVolume { get; private set; }
 
 			public double? PassengerCount { get; set; }
 			public VehicleClass VehicleClass { get; set; }