diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
index dbf110ae2245df035c2951433021b0d21131f1dd..8939c26cbafce65569e4c0da2ed283847b6f6e6e 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);
+			Report.InitializeReport(powertrainConfig, fuels, InputDataProvider);
 		}
 
 		protected virtual PTOData CreateDefaultPTOData()
diff --git a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
index 20cce3d9efe1c6cc84bd5e73e4c854950c63ff2d..df0140a393c1552c6d180ce2a4dde0b55aacd768 100644
--- a/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
+++ b/VectoCore/VectoCore/Models/Simulation/SimulationFactoryNinjectModule.cs
@@ -68,7 +68,8 @@ namespace TUGraz.VectoCore.Models.Simulation
 	{
 		#region Implementation of IDeclarationReport
 
-		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 
 		}
@@ -92,7 +93,8 @@ namespace TUGraz.VectoCore.Models.Simulation
 	{
 		#region Implementation of IDeclarationReport
 
-		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 
 		}
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index 3aeb1536c52b7d2a9368df914bd1bbc29d44af6f..ec58eca4b01803b90bdb16e8f0409133b87e21b3 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -51,7 +51,8 @@ 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);
+		void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null);
 
 		/**
 		 * called when creating the simulation run (before starting the simulations)
@@ -209,6 +210,7 @@ namespace TUGraz.VectoCore.OutputData
 
 		protected abstract void WriteResult(T result);
 
-		public abstract void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
+		public abstract void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null);
 	}
 }
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 c15a18d6b1dab750c97123cacb66b857a577cf38..35425cabf90c4a97ceef62e55cc64d5fd7776519 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
@@ -34,7 +34,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
-			throw new NotImplementedException();
+			
 		}
 
 		public XDocument Report { get; protected set; }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
index c3e2338ebdb8c16e13072ea4fd625dfae4811249..2d45d072dd52d9dd7134b3d7e92ecd26f79388c3 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
@@ -345,7 +345,8 @@ namespace TUGraz.VectoCore.OutputData.XML
 			return retVal;
 		}
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 			VehicleClass = modelData.VehicleData.VehicleClass;
 			if (VehicleClass.IsBus()) {
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index 94eb0b24302e3cb824756009de2f173d96aff83d..58b1724e041c91719c5841282473bf117a9cd9c7 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -226,7 +226,8 @@ namespace TUGraz.VectoCore.OutputData.XML
 		}
 
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 			if (modelData.Exempted) {
 				WeightingGroup = WeightingGroup.Unknown;
@@ -247,6 +248,11 @@ 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 18d8a1e85ecdd895948090b3846024ae1743645a..820f4038a6b5827b9f79f1b0dbb3347fdbe45850 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
@@ -37,7 +37,8 @@ namespace TUGraz.VectoCore.OutputData.XML {
 				};
 		}
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 			_weightingFactors = EqualWeighting;
 
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
index c2ba05703732a8c25a4d0f5e6a8123828388ab17..850afd8c3b5bf4293aeaa615bf112268768c2769 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
@@ -3,6 +3,7 @@ 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;
@@ -19,7 +20,8 @@ namespace TUGraz.VectoCore.OutputData.XML
 			//_multistageBusReport = new XMLMultistageBusReport();
 		}
 		
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 			_multistageBusReport =
 				modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport();
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
index 36bdb48f59d0c32501569a67a651132268576c30..8d6d135ebc7a40cac5544baa0761c08e0a22bb84 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
@@ -1,6 +1,7 @@
 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;
@@ -40,7 +41,8 @@ namespace TUGraz.VectoCore.OutputData.XML {
 
 		}
 
-		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
+			IDeclarationInputDataProvider inputData = null)
 		{
 			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 a238b5905bc418334736854187e795c30928e239..7f2294e174e2b148dc44d9add39e802a18d4ccff 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
@@ -1,5 +1,6 @@
 using System.Collections.Generic;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
@@ -7,42 +8,41 @@ 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;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
 
 namespace TUGraz.VectoCore.OutputData.XML
 {
-	public class XMLDeclarationReport09 : IDeclarationReport
+	public class XMLDeclarationReport09 : XMLDeclarationReport
 	{
 		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)
+		public XMLDeclarationReport09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory) : base(writer)
 		{
 			_writer = writer;
 			_mrfFactory = mrfFactory;
 			_cifFactory = cifFactory;
 		}
 
-		public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		protected override void InstantiateReports(VectoRunData modelData)
 		{
 			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,
+			ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory,
 				vehicleData.VehicleType,
 				vehicleData.ArchitectureID,
 				vehicleData.ExemptedVehicle,
 				iepc,
 				ihpc);
-			_customerReport = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory,
+			CustomerRpt = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory,
 				vehicleData.VehicleType,
 				vehicleData.ArchitectureID,
 				vehicleData.ExemptedVehicle,
@@ -50,18 +50,17 @@ namespace TUGraz.VectoCore.OutputData.XML
 				ihpc);
 		}
 
-		public void PrepareResult(LoadingType loading, Mission mission, int fuelMode, VectoRunData runData)
-		{
-			throw new System.NotImplementedException();
-		}
+		#region Overrides of XMLDeclarationReport
 
-		public void AddResult(LoadingType loadingType, Mission mission, int fuelMode, VectoRunData runData,
-			IModalDataContainer modData)
+		protected override void InitializeReports(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes, IDeclarationInputDataProvider inputData)
 		{
-			throw new System.NotImplementedException();
+			var customerReport = CustomerRpt as AbstractCustomerReport;
+			var manufacturerReport = ManufacturerRpt as AbstractManufacturerReport;
+			customerReport.InitializeVehicleData(inputData);
+			manufacturerReport.InitializeVehicleData(inputData);
 		}
 
-		
+		#endregion
 
 		#endregion
 	}