diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
index 03624cdff0341082190f8abb33286e0a69fd24a9..dbf110ae2245df035c2951433021b0d21131f1dd 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
@@ -40,15 +40,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
 		protected ShiftStrategyParameters _gearshiftData;
 
 		protected AbstractDeclarationVectoRunDataFactory(
-			IDeclarationInputDataProvider dataProvider, IDeclarationReport report)
+			IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true)
 		{
 			InputDataProvider = dataProvider;
 
-
-            //if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle))
-            //{
-            //    throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation.");
-            //}
+			if (checkJobType) {
+				if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle))
+				{
+					throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation.");
+				}
+			}
+           
             Report = report;
 
 			_allowVocational = true;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
index d07214774fe8ad549d74b8855be47d178cf83cd4..7d3b407d78b71369bcbd04a44c8af99b5fb3a642 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		DeclarationDataAdapterHeavyLorry _dao = new DeclarationDataAdapterHeavyLorry();
 
 		internal DeclarationModeTruckVectoRunDataFactory(
-			IDeclarationInputDataProvider dataProvider, IDeclarationReport report) : base(dataProvider, report)
+			IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true) : base(dataProvider, report, checkJobType)
 		{ }
 
 		#region Overrides of AbstractDeclarationVectoRunDataFactory
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs
index 7728b155999883bd8a89ca49dac495f2ed9921dd..5a406fe213e88963e196373e8a1e514385417dc4 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/MockupRunDataFactories/DeclarationModeMockupTruckVectoRunDataFactory.cs
@@ -3,10 +3,54 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
+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.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
 
 namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
 {
-    internal class DeclarationModeMockupTruckVectoRunDataFactory
+    public class DeclarationModeMockupTruckVectoRunDataFactory : DeclarationModeTruckVectoRunDataFactory
     {
-    }
+		public DeclarationModeMockupTruckVectoRunDataFactory(IDeclarationInputDataProvider dataProvider,
+			IDeclarationReport report) : base(dataProvider, report, false)
+		{
+			
+		}
+
+		#region Overrides of AbstractDeclarationVectoRunDataFactory
+
+		protected override IDeclarationDataAdapter DataAdapter { get; }
+		protected override IEnumerable<VectoRunData> GetNextRun()
+		{
+			throw new NotImplementedException();
+		}
+
+
+		protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission,
+			KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
+		{
+			return new VectoRunData() {
+				VehicleData = new VehicleData() {
+					InputData = vehicle,
+				},
+				Mission = mission,
+				
+			};
+		}
+
+
+		protected override void Initialize()
+		{
+			_segment = GetSegment(InputDataProvider.JobInputData.Vehicle);
+
+		}
+
+		#endregion
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs
index 87a072b22a81d8ac97ce8c6d574242561214baaf..91774d2f9ce15544141be2dd4fe08fef72d25840 100644
--- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs
@@ -3,6 +3,7 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.OutputData;
 
@@ -46,7 +47,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 			var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory;
 			if (vehicleCategory.IsLorry())
 			{
-				return new DeclarationModeTruckVectoRunDataFactory(declDataProvider, report);
+				return new DeclarationModeMockupTruckVectoRunDataFactory(declDataProvider, report);
 			}
 
 			if (vehicleCategory.IsBus())
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
index ad95a11bea40adcef0ae56fb10791115b9e70ed1..8d17afdcd5b81951e14a8ef34a79365a2a00e515 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
@@ -7,13 +7,24 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 
 namespace TUGraz.VectoCore.OutputData.XML
 {
     class XMLDeclarationReportFactory : IXMLDeclarationReportFactory
     {
+		private readonly IManufacturerReportFactory _mrfFactory;
+		private readonly ICustomerInformationFileFactory _cifFactory;
+
 		#region Implementation of IXMLDeclarationReportFactory
 
+		
+		public XMLDeclarationReportFactory(IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory)
+		{
+			_mrfFactory = mrfFactory;
+			_cifFactory = cifFactory;
+		}
 		public IDeclarationReport CreateReport(IInputDataProvider input, IOutputDataWriter outputWriter)
 		{
 			switch (input) {
@@ -71,7 +82,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 			var vehicleCategory = declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory;
 			if (vehicleCategory.IsLorry())
 			{
-				return new XMLDeclarationReport(outputDataWriter);
+				return new XMLDeclarationReport09(outputDataWriter, _mrfFactory, _cifFactory);
 			}
 
 			if (vehicleCategory.IsBus())
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a238b5905bc418334736854187e795c30928e239
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
@@ -0,0 +1,68 @@
+using System.Collections.Generic;
+using System.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML
+{
+	public class XMLDeclarationReport09 : IDeclarationReport
+	{
+		private readonly IReportWriter _writer;
+		private readonly IManufacturerReportFactory _mrfFactory;
+		private readonly ICustomerInformationFileFactory _cifFactory;
+
+		private IXMLManufacturerReport _manufacturerReport;
+		private IXMLCustomerReport _customerReport;
+
+		#region Implementation of IDeclarationReport
+
+		public XMLDeclarationReport09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory)
+		{
+			_writer = writer;
+			_mrfFactory = mrfFactory;
+			_cifFactory = cifFactory;
+		}
+
+		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			var vehicleData = modelData.VehicleData.InputData;
+			var iepc = vehicleData.Components.IEPC != null;
+			var ihpc =
+				vehicleData.Components.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0;
+
+			_manufacturerReport = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory,
+				vehicleData.VehicleType,
+				vehicleData.ArchitectureID,
+				vehicleData.ExemptedVehicle,
+				iepc,
+				ihpc);
+			_customerReport = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory,
+				vehicleData.VehicleType,
+				vehicleData.ArchitectureID,
+				vehicleData.ExemptedVehicle,
+				iepc,
+				ihpc);
+		}
+
+		public void PrepareResult(LoadingType loading, Mission mission, int fuelMode, VectoRunData runData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public void AddResult(LoadingType loadingType, Mission mission, int fuelMode, VectoRunData runData,
+			IModalDataContainer modData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
index 4a2ef2dd60b10b00310eac8e91f54a2121494d56..6ef340588f59e19aee5ccf8cb93d9ae3f140a67e 100644
--- a/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
@@ -118,7 +118,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var jobContainer = new JobContainer(sumWriter);
 
 			_simulatorFactory =
-				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, true);
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
 			_simulatorFactory.MockUpRun = true;
 
 			jobContainer.AddRuns(_simulatorFactory);