diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index 8578c5d90dd69b938a0ebaf342c1b9f4d404e3b8..a0dbd66c1371164b3a23e9379a8635bbb44881be 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -3355,20 +3355,20 @@ namespace TUGraz.VectoCommon.Resources {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to ManufacturerAddressCompletedVehicle.
+        ///   Looks up a localized string similar to ManufacturerAddress.
         /// </summary>
-        public static string ManufacturerAddressCompletedVehicle {
+        public static string ManufacturerAddress {
             get {
-                return ResourceManager.GetString("ManufacturerAddressCompletedVehicle", resourceCulture);
+                return ResourceManager.GetString("ManufacturerAddress", resourceCulture);
             }
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to ManufacturerAddressPrimaryVehicle.
+        ///   Looks up a localized string similar to ManufacturerAddressCompletedVehicle.
         /// </summary>
-        public static string ManufacturerAddressPrimaryVehicle {
+        public static string ManufacturerAddressCompletedVehicle {
             get {
-                return ResourceManager.GetString("ManufacturerAddressPrimaryVehicle", resourceCulture);
+                return ResourceManager.GetString("ManufacturerAddressCompletedVehicle", resourceCulture);
             }
         }
         
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index a16d4be705e62d27e352f300afd963cda0b2d6f3..c58fbaab6c4cfd63b5dd4c1430696ee9bb4fac2c 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1149,8 +1149,8 @@
   <data name="Engine_WHRCorrectionFactors_Electrical" xml:space="preserve">
     <value>Electrical</value>
   </data>
-  <data name="ManufacturerAddressPrimaryVehicle" xml:space="preserve">
-    <value>ManufacturerAddressPrimaryVehicle</value>
+  <data name="ManufacturerAddress" xml:space="preserve">
+    <value>ManufacturerAddress</value>
   </data>
   <data name="Engine_WHRCorrectionFactors_Mechanical" xml:space="preserve">
     <value>Mechanical</value>
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs
index 10edeb2ae6772304ee2e7201bd8ed89e3bf898e4..66f3b410c9a7eda6bd0c644a721fa75463ab597e 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs
@@ -144,7 +144,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "VehicleExemptedPrimaryBusType";
+		public new const string XSD_TYPE = "Exempted_VehicleVIFType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index a0a439904b7984e69b42c106c4cff796a460f1d7..4d131e90407de87571f1a361b33d6f94d0f3fef4 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -485,9 +485,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		#region Overrides of AbstractCommonComponentType
 
-		public override string Manufacturer => GetString(XMLNames.ManufacturerPrimaryVehicle);
-
-		public string ManufacturerAddress => GetString(XMLNames.ManufacturerAddressPrimaryVehicle);
+		
+		public virtual string ManufacturerAddress => GetString(XMLNames.ManufacturerAddress);
 
 		#endregion
 
@@ -639,7 +638,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "VehicleExemptedPrimaryBusType";
+		public new const string XSD_TYPE = "Exempted_VehicleVIFType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE =
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
index c68a007daf4cb5e42624db85267cb3cf850c2184..27e4b0396159cb840dff9fe707aae7bb3a378ae0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
@@ -607,7 +607,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			}
 		}
 
-		public AxleConfiguration AxleConfiguration { get; }
+		public AxleConfiguration AxleConfiguration => _primaryVehicle.Vehicle.AxleConfiguration;
 		public IList<ITorqueLimitInputData> TorqueLimits { get; }
 
 		public PerSecond EngineIdleSpeed { get; }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs
index 71682ad5986a59a61fa2560f6dea64a47e6f4b6e..041fafa2d174f358dc041bb6bd72f52f0ecff379 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs
@@ -177,7 +177,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "VehicleExemptedPrimaryBusType";
+		public new const string XSD_TYPE = "Exempted_VehicleVIFType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
index cf14ca188adeb53348a7e11c947ca8474c8f3c3b..df67542c6f55f8b2de63172dee0ad5f73db3498f 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
@@ -92,7 +92,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				Report = Report,
 				Mission = new Mission() {
 					MissionType = MissionType.ExemptedMission
-				}
+				},
+				InputData = InputDataProvider
 			};
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
index 8fc401f1e7748a355a063fa540e0eb013532fc8c..4cd25b9e3fa442d63fa44bb4596e80b35dc9812d 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
@@ -365,7 +365,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 		public override XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
-			throw new NotImplementedException();
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData)
+			);
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs
index 607876cc79c8007734e7bfeeffdd92c302910597..5c0d7081eca3c1aee755506ba15f1a8e2e5d6b36 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs
@@ -383,6 +383,30 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 					false,
 					false)));
 
+			Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
 			Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
 				ToParams(VehicleCategoryHelper.CompletedBus,
 					VectoSimulationJobType.ConventionalVehicle,
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 843ba75493918591107ee271fc17ad112473ad44..e1407573d1d3800098004bff66ee49d763fbde21 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
@@ -88,7 +88,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
 		{
-			throw new NotImplementedException();
+			Vehicle = _mRFReportFactory.GetExempted_CompletedBusVehicleType().GetElement(inputData);
+			GenerateReport(OutputDataType);
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
index ab2555e5f16f14b60111801352f6671b6df7c8a8..a3fa397336dd95840bf4b6ff1a81a7298c8cb9a2 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
@@ -13,7 +13,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 {
     internal class CompletedBusGeneralVehicleOutputGroup : AbstractReportOutputGroup
     {
-		private XElement GetManufacturerAndAddress(string manufacturer, string address, int stepCount)
+		protected XElement GetManufacturerAndAddress(string manufacturer, string address, int stepCount)
 		{
 			return new XElement(_mrf + "Step",
 				new XAttribute("Count", stepCount),
@@ -41,18 +41,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 					manufacturingStageInputData.Vehicle.ManufacturerAddress,
 					stepCount: manufacturingStageInputData.StepCount));
 			}
-			//result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle));
-			result.AddRange(new List<XElement>() {
-				new XElement(_mrf + XMLNames.Component_Model, consolidatedVehicleData.Model),
-				new XElement(_mrf + XMLNames.Vehicle_VIN, consolidatedVehicleData.VIN),
-				consolidatedVehicleData.VehicleTypeApprovalNumber != null ? new XElement(_mrf + XMLNames.Vehicle_TypeApprovalNumber, consolidatedVehicleData.VehicleTypeApprovalNumber) : null,
-				new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()),
-				new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, primaryVehicleData.AxleConfiguration.ToXMLFormat()),
-				new XElement(_mrf + XMLNames.TPMLM, consolidatedVehicleData.GrossVehicleMassRating.ToXMLFormat(0)),
-				new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, consolidatedVehicleData.VehicleCategory.ToXMLFormat()),
-			});
-
-			result.AddRange(_mrfFactory.GetCompletedBusSequenceGroup().GetElements(consolidatedVehicleData));
+            result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle));
+            result.AddRange(_mrfFactory.GetCompletedBusSequenceGroup().GetElements(consolidatedVehicleData));
 			result.AddRange(_mrfFactory.GetCompletedBusDimensionSequenceGroup().GetElements(consolidatedVehicleData));
 			result.Add(new XElement(_mrf + XMLNames.Bus_DoorDriveTechnology, consolidatedVehicleData.DoorDriveTechnology.ToXMLFormat()));
 			result.Add(new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, consolidatedVehicleData.TankSystem));
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
index a46c1b4d47adffdcb5e2bcb51b3a0f4ada503dc5..f9a6540d999b574bafcf6cf3d812e4f2b3bc7015 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Xml.Linq;
 using TUGraz.VectoCommon.InputData;
@@ -464,11 +465,34 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			{
 				throw new ArgumentException($"inputdata must implement {nameof(IMultistageBusInputDataProvider)}");
 			}
-			return new XElement(_mrf + XMLNames.Component_Vehicle,
-				_mrfFactory.GetCompletedBusGeneralVehicleOutputGroup().GetElements(inputData)
-			);
+			var primaryVehicleData = multistageInputdata.JobInputData.PrimaryVehicle.Vehicle;
+			var consolidatedVehicleData = multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			var result = new XElement(_mrf + XMLNames.Component_Vehicle);
+			var manufacturers = new XElement(_mrf + "Manufacturers");
+			result.Add(manufacturers);
+			manufacturers.Add(GetManufacturerAndAddress(primaryVehicleData.Manufacturer, primaryVehicleData.ManufacturerAddress, 1));
+			foreach (var manufacturingStageInputData in multistageInputdata.JobInputData.ManufacturingStages) {
+				manufacturers.Add(GetManufacturerAndAddress(manufacturingStageInputData.Vehicle.Manufacturer,
+					manufacturingStageInputData.Vehicle.ManufacturerAddress,
+					stepCount: manufacturingStageInputData.StepCount));
+			}
+			result.Add(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle));
+			result.Add(_mrfFactory.GetCompletedBusSequenceGroup().GetElements(consolidatedVehicleData));
+			return result;
+
+			//return new XElement(_mrf + XMLNames.Component_Vehicle,
+			//	_mrfFactory.GetCompletedBusGeneralVehicleOutputGroup().GetElements(inputData)
+			//);
 		}
 
 		#endregion
+
+		protected XElement GetManufacturerAndAddress(string manufacturer, string address, int stepCount)
+		{
+			return new XElement(_mrf + "Step",
+				new XAttribute("Count", stepCount),
+				new XElement(_mrf + XMLNames.Component_Manufacturer, manufacturer),
+				new XElement(_mrf + XMLNames.Component_ManufacturerAddress, address));
+		}
 	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs
index 05ef87e5410717457ef9ca233ec2c0066f09d7bb..e846a1122dc55b5acd4ca3fd7eadc3d577ae58c6 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs
@@ -96,6 +96,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		IReportOutputGroup GetPevIEPCVehicleParmeterGroup();
 		IReportOutputGroup GetHevPxVehicleParameterGroup();
 
+		IReportOutputGroup GetExemptedVehicleParameterGroup();
+
 		#endregion
 
 	}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs
index 93847c2dd64b1d1f72851e773e7581f5c2ed45ce..6ba955997db92d0e802cf64babd38e48de56f129 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs
@@ -145,6 +145,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			Bind<IXmlTypeWriter>().To<PevIEPCVehicleType>().When(AccessedViaVIFFactory)
 				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCVehicleType());
 
+			Bind<IXmlTypeWriter>().To<ExemptedVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetExemptedVehicleType());
+
 			#endregion
 
 
@@ -217,8 +220,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			Bind<IReportOutputGroup>().To<HevPxVehicleParameterGroup>().When(AccessedViaVIFFactory)
 				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevPxVehicleParameterGroup());
 
+			Bind<IReportOutputGroup>().To<ExemptedVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetExemptedVehicleParameterGroup());
+
 			#endregion
-			
+
 
 			#region Components
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs
index 74e32ed277e4cbd44279c39246a60c4198115571..50e17b93cde088fa13f76c63fba670a5f51b93f8 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleParameterGroup.cs
@@ -5,6 +5,7 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
 {
@@ -21,11 +22,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			
 			var result = new List<XElement>
 			{
+				new XElement(_vif + XMLNames.Component_Manufacturer, vehicle.Manufacturer),
 				new XElement(_vif + XMLNames.Component_ManufacturerAddress, vehicle.ManufacturerAddress),
 				new XElement(_vif + XMLNames.Component_Model, vehicle.Model),
 				new XElement(_vif + XMLNames.Vehicle_VIN, vehicle.VIN),
 				new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(vehicle.Date, XmlDateTimeSerializationMode.Utc)),
-				new XElement(_vif + XMLNames.Component_Manufacturer, vehicle.Manufacturer)
 			};
 
 			return result;
@@ -114,29 +115,20 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		{
 			var vehicle = inputData.JobInputData.Vehicle;
 
-			var result = new List<XElement> {
-				new XElement(_vif + XMLNames.ManufacturerPrimaryVehicle, vehicle.Manufacturer),
-				new XElement(_vif + XMLNames.ManufacturerAddressPrimaryVehicle, vehicle.ManufacturerAddress),
-				new XElement(_vif + XMLNames.Component_Model, vehicle.Model),
-				new XElement(_vif + XMLNames.Vehicle_VIN, vehicle.VIN),
-				new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(vehicle.Date, XmlDateTimeSerializationMode.Utc)),
-				new XElement(_vif + XMLNames.Vehicle_LegislativeCategory, vehicle.LegislativeClass.ToXMLFormat()),
-				new XElement(_vif + XMLNames.ChassisConfiguration, vehicle.VehicleCategory.ToXMLFormat()),
-				new XElement(_vif + XMLNames.Vehicle_AxleConfiguration, vehicle.AxleConfiguration.ToXMLFormat()),
-				new XElement(_vif + XMLNames.Vehicle_Articulated, vehicle.Articulated),
-				new XElement(_vif + XMLNames.TPMLM, vehicle.GrossVehicleMassRating.ToXMLFormat(0)),
-				new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)),
-				new XElement(_vif + XMLNames.Vehicle_RetarderType, vehicle.Components.RetarderInputData.Type.ToXMLFormat()),
-				vehicle.Components.RetarderInputData.Type.IsDedicatedComponent()
-					? new XElement(_vif + XMLNames.Vehicle_RetarderRatio, vehicle.Components.RetarderInputData?.Ratio.ToXMLFormat(3))
-					: null,
-				new XElement(_vif + XMLNames.Vehicle_AngledriveType, vehicle.Components.AngledriveInputData.Type.ToXMLFormat()),
-				new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle),
-				_vifReportFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS),
-				_vifReportFactory.GetTorqueLimitsType().GetElement(inputData),
-				
-			};
-
+			var result = new List<XElement>();
+			result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData));
+			result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_RetarderType, vehicle.Components.RetarderInputData.Type.ToXMLFormat()));
+			if (vehicle.Components.RetarderInputData.Type.IsDedicatedComponent()) {
+				result.Add(new XElement(_vif + XMLNames.Vehicle_RetarderRatio,
+					vehicle.Components.RetarderInputData?.Ratio.ToXMLFormat(3)));
+			}
+			result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, vehicle.Components.AngledriveInputData.Type.ToXMLFormat()));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle));
+			result.Add(_vifReportFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			result.Add(_vifReportFactory.GetTorqueLimitsType().GetElement(inputData));
+			
 			return result;
 		}
 
@@ -318,4 +310,28 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		#endregion
 	}
+
+	public class ExemptedVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public ExemptedVehicleParameterGroup(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of AbstractVIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+
+			var result = new List<XElement>();
+
+			result.AddRange(_vifReportFactory.GetPrimaryBusGeneralParameterGroup().GetElements(inputData));
+			result.AddRange(_vifReportFactory.GetPrimaryBusChassisParameterGroup().GetElements(inputData));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle));
+			result.Add(new XElement(_vif + "SumNetPower", XMLHelper.ValueAsUnit(vehicle.MaxNetPower1, "W")));
+			result.Add(new XElement(_vif + "Technology", vehicle.ExemptedTechnology));
+
+			return result;
+		}
+
+		#endregion
+	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleWriter.cs
index 30566013c1e2b703f5c76fd5d1a30262a43b7a8a..4afedc500bdd6d2aea1f2c86e9fc1d78d991bb80 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleWriter.cs
@@ -242,4 +242,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		#endregion
 	}
+
+	public class ExemptedVehicleType : VehicleWriter
+	{
+		public ExemptedVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetExemptedVehicleParameterGroup().GetElements(inputData);
+			//vehicleData.Add(_vifReportFactory.GetPevIEPCComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "Exempted_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs
index 5529ff1f3722a86225c7160cf69337ba8e29935c..091296243658f607321b5a0de2fec571b44952c6 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLExemptedPrimaryBusVehicleReport.cs
@@ -20,7 +20,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			VehiclePart.Add(
 				new XAttribute(xsi + XMLNames.Attr_Type, "VehicleExemptedPrimaryBusType"),
 				new XElement(tns + XMLNames.ManufacturerPrimaryVehicle, modelData.VehicleData.Manufacturer),
-				new XElement(tns + XMLNames.ManufacturerAddressPrimaryVehicle, modelData.VehicleData.ManufacturerAddress),
+				new XElement(tns + XMLNames.ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
 				new XElement(tns + XMLNames.Component_Date, XmlConvert.ToString(modelData.VehicleData.Date, XmlDateTimeSerializationMode.Utc)),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
index 18fc9981fa89181ccdf55194003d0e1c8a65e05d..1f1a7615f98a1be7ede9096adb16ed9306c9d17c 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
@@ -135,7 +135,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			VehiclePart.Add(
 				new XAttribute(xsi + XMLNames.XSIType, "ConventionalVehicleVIFType"),
 				new XElement(tns + XMLNames.ManufacturerPrimaryVehicle, modelData.VehicleData.Manufacturer),
-				new XElement(tns + XMLNames.ManufacturerAddressPrimaryVehicle, modelData.VehicleData.ManufacturerAddress),
+				new XElement(tns + XMLNames.ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
 				new XElement(tns + XMLNames.Component_Date, XmlConvert.ToString(modelData.VehicleData.Date, XmlDateTimeSerializationMode.Utc)),
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
index f2539057dd8619c6bdd39c0050cde81745120ed2..4ae5b34fef7105556017529142f9388202c68f5b 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
@@ -19,10 +19,6 @@ namespace TUGraz.VectoCore.OutputData.XML {
 
 		#region Overrides of XMLDeclarationReport
 
-		protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
-		{
-			//base.DoStoreResult(entry, runData, modData);
-		}
 
 		protected override void InstantiateReports(VectoRunData modelData)
 		{
@@ -107,13 +103,5 @@ namespace TUGraz.VectoCore.OutputData.XML {
 			}
 		}
 
-		#region Overrides of XMLDeclarationReport
-
-		protected override void WriteResult(ResultEntry result)
-		{
-			base.WriteResult(result);
-		}
-
-		#endregion
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
index 7a2655cb832e6c89e5b24da088348b48622c3827..72afeec15aa9d88e8e5139c91329564eb581a5d5 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
@@ -651,31 +651,7 @@
 	</xs:complexType>
 	<xs:complexType name="Exempted_CompletedBusVehicleType">
 		<xs:sequence>
-			<xs:group ref="GeneralVehicleSequenceGroup"/>
-			<xs:sequence>
-				<xs:element name="Manufacturers">
-					<xs:complexType>
-						<xs:sequence maxOccurs="unbounded">
-							<xs:element name="Step">
-								<xs:complexType>
-									<xs:sequence>
-										<xs:element name="Manufacturer"/>
-										<xs:element name="ManufacturerAddress"/>
-									</xs:sequence>
-									<xs:attribute name="stepCount" type="xs:int"/>
-								</xs:complexType>
-							</xs:element>
-						</xs:sequence>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-			<xs:sequence>
-				<xs:element name="CorrectedActualMass"/>
-				<xs:element name="ZeroEmissionVehicle"/>
-				<xs:element name="HybridElectricHDV"/>
-				<xs:element name="ClassBus"/>
-				<xs:element name="TotalNumberOfPassengers"/>
-			</xs:sequence>
+			<xs:group ref="CompletedBusVehicleTypeGroup"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:simpleType name="RatedPowerType">
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
index 75df0c239a9c01e8bf0d1c717c422f253ec270d4..26c5cdc4a4f1163e8a3b94d4abc541a3b7c8683f 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
@@ -1341,27 +1341,9 @@
 		<xs:complexContent>
 			<xs:extension base="vif:AbstractPrimaryVehicleType">
 				<xs:sequence>
-					<xs:element name="ManufacturerPrimaryVehicle" type="v1.0:ManufacturerType"/>
-					<xs:element name="ManufacturerAddressPrimaryVehicle" type="v1.0:ManufacturerAddressType"/>
-					<xs:element name="Model" type="v1.0:ModelType"/>
-					<xs:element name="VIN" type="v1.0:VINType"/>
-					<xs:element name="Date" type="v1.0:DateTimeWithTimezone"/>
-					<xs:element name="LegislativeCategory" type="xs:string">
-						<xs:annotation>
-							<xs:documentation>P251 - [-]</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationPrimaryBusDeclarationType"/>
-					<xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationPrimaryBusLorryDeclarationType"/>
-					<xs:element name="Articulated" type="xs:boolean"/>
-					<xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType"/>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
 					<xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/>
-					<xs:element name="RetarderType" type="v1.0:RetarderTypeType"/>
-					<xs:element name="RetarderRatio" type="v1.0:RetarderRatioType" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>P053 - [-]</xs:documentation>
-						</xs:annotation>
-					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/>
 					<xs:element name="AngledriveType" type="v1.0:AngledriveTypeType">
 						<xs:annotation>
 							<xs:documentation>P180 - enum</xs:documentation>
@@ -1827,7 +1809,7 @@
 						</xs:annotation>
 					</xs:element>
 					<xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/>
-					<xs:element name="AngledriveType" type="v1.0:AngledriveTypeType" minOccurs="0">
+					<xs:element name="AngledriveType" type="v1.0:AngledriveTypeType">
 						<xs:annotation>
 							<xs:documentation>P180 - enum</xs:documentation>
 						</xs:annotation>
@@ -2564,64 +2546,11 @@
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="VehicleExemptedPrimaryBusType">
+	<xs:complexType name="Exempted_VehicleVIFType">
 		<xs:complexContent>
 			<xs:extension base="vif:AbstractPrimaryVehicleType">
 				<xs:sequence>
-					<xs:element name="ManufacturerPrimaryVehicle" type="v1.0:ManufacturerType">
-						<xs:annotation>
-							<xs:documentation>P235 / I.1.1.1 / #14</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="ManufacturerAddressPrimaryVehicle" type="v1.0:ManufacturerAddressType">
-						<xs:annotation>
-							<xs:documentation>P252 / I.1.1.1 / #14</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="Model" type="v1.0:ModelType">
-						<xs:annotation>
-							<xs:documentation>P236 / I.1.1.2</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="VIN" type="v1.0:VINType">
-						<xs:annotation>
-							<xs:documentation>P238 / I.1.1.3 / #1</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="Date" type="v1.0:DateTimeWithTimezone"/>
-					<xs:element name="LegislativeCategory">
-						<xs:annotation>
-							<xs:documentation>P251 / I.1.1.4 / #10</xs:documentation>
-						</xs:annotation>
-						<xs:simpleType>
-							<xs:restriction base="xs:string">
-								<xs:minLength value="1"/>
-							</xs:restriction>
-						</xs:simpleType>
-					</xs:element>
-					<xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationPrimaryBusDeclarationType">
-						<xs:annotation>
-							<xs:documentation>P036 - enum</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationPrimaryBusLorryDeclarationType">
-						<xs:annotation>
-							<xs:documentation>P037 - enum</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="Articulated" type="xs:boolean"/>
-					<xs:element name="TechnicalPermissibleMaximumLadenMass">
-						<xs:annotation>
-							<xs:documentation>P041 / I.1.1.6 / #12</xs:documentation>
-						</xs:annotation>
-						<xs:complexType>
-							<xs:simpleContent>
-								<xs:extension base="xs:double">
-									<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
-								</xs:extension>
-							</xs:simpleContent>
-						</xs:complexType>
-					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
 					<xs:element name="ZeroEmissionVehicle" type="xs:boolean">
 						<xs:annotation>
 							<xs:documentation>P269 / I.1.1.10</xs:documentation>
@@ -2935,6 +2864,11 @@
 	</xs:group>
 	<xs:group name="Vehicle_PrimaryBusGeneralParametersSequence">
 		<xs:sequence>
+			<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+				<xs:annotation>
+					<xs:documentation>P235 - [-]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
 			<xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType">
 				<xs:annotation>
 					<xs:documentation>P252 - [-]</xs:documentation>
@@ -2955,11 +2889,6 @@
 					<xs:documentation>P239 - [-]</xs:documentation>
 				</xs:annotation>
 			</xs:element>
-			<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
-				<xs:annotation>
-					<xs:documentation>P235 - [-]</xs:documentation>
-				</xs:annotation>
-			</xs:element>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="Vehicle_PrimaryBusParametersSequenceGroup">
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml
index 51e8fe3a5a78272b1dddeee992012f4472d218d8..92d4f08f771fa79867d549118cdadb4e9c5563e0 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_completed.VIF_Report_2.xml
@@ -2,17 +2,17 @@
 <vif0.1:VectoOutputMultistep xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
   <PrimaryVehicle xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
     <Data id="VEH-4cb168560c0d4b3d886d" xsi:type="PrimaryVehicleDataType">
-      <Vehicle xsi:type="VehicleExemptedPrimaryBusType">
-        <ManufacturerPrimaryVehicle>Some Manufacturer</ManufacturerPrimaryVehicle>
-        <ManufacturerAddressPrimaryVehicle>Infinite Loop 1</ManufacturerAddressPrimaryVehicle>
+      <Vehicle xsi:type="Exempted_VehicleVIFType">
+        <Manufacturer>Some Manufacturer</Manufacturer>
+        <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress>
         <Model>Sample Bus Model</Model>
         <VIN>VEH-1234567890</VIN>
         <Date>2017-02-15T11:00:00Z</Date>
-        <LegislativeCategory>N2</LegislativeCategory>
+        <LegislativeCategory>M3</LegislativeCategory>
         <ChassisConfiguration>Bus</ChassisConfiguration>
         <AxleConfiguration>6x2</AxleConfiguration>
         <Articulated>false</Articulated>
-        <TechnicalPermissibleMaximumLadenMass unit="kg">15400.0</TechnicalPermissibleMaximumLadenMass>
+        <TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass>
         <ZeroEmissionVehicle>true</ZeroEmissionVehicle>
         <SumNetPower unit="W">350000</SumNetPower>
         <Technology>Fuel cell vehicle</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml
index a1dfe0305c17985906b8e3e908c524cd595ac0ce..3be573c3c80288278704c87d796c1db14fb65e85 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/exempted_primary_heavyBus.VIF.xml
@@ -9,17 +9,17 @@ xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"
 xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
   <PrimaryVehicle xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
     <Data id="VEH-4cb168560c0d4b3d886d" xsi:type="PrimaryVehicleDataType">
-      <Vehicle xsi:type="VehicleExemptedPrimaryBusType">
-        <ManufacturerPrimaryVehicle>Some Manufacturer</ManufacturerPrimaryVehicle>
-        <ManufacturerAddressPrimaryVehicle>Infinite Loop 1</ManufacturerAddressPrimaryVehicle>
+      <Vehicle xsi:type="Exempted_VehicleVIFType">
+        <Manufacturer>Some Manufacturer</Manufacturer>
+        <ManufacturerAddress>Infinite Loop 1</ManufacturerAddress>
         <Model>Sample Bus Model</Model>
         <VIN>VEH-1234567890</VIN>
         <Date>2017-02-15T11:00:00Z</Date>
-        <LegislativeCategory>N2</LegislativeCategory>
+        <LegislativeCategory>M3</LegislativeCategory>
         <ChassisConfiguration>Bus</ChassisConfiguration>
         <AxleConfiguration>6x2</AxleConfiguration>
         <Articulated>false</Articulated>
-        <TechnicalPermissibleMaximumLadenMass unit="kg">15400.0</TechnicalPermissibleMaximumLadenMass>
+        <TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass>
         <ZeroEmissionVehicle>true</ZeroEmissionVehicle>
         <SumNetPower unit="W">350000</SumNetPower>
         <Technology>Fuel cell vehicle</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml
index 23cdbffc9885d80a8d025b015f55ee033553eb8c..f843bb2884ac75ca199ef4bd4e80ba6da2056c81 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml
index 2b6805c520ac9ad7997b94052c101ee1966123a8..b992d17de2f7a2f64898b41a393d35165189483e 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_NGTankSystem.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml
index cc342b4b8c5787830a63be9f1bf00220ac75fd21..e13e4c4355fdad8b9d218ca83e557490e47993cd 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml
index 8ab37cc3ce0a7d990e26e6df27f7fe08dfdb60b1..5900879dbfd1996265359fdf0d54ef9a39234a8a 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_heatPump.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml
index 38628a09bad3a350cfc50931ba19b719643e9bf3..2c7866db5ee6d34347b4786129e7ee6dfd8c38ec 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_hev.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml
index 3ebda336e48fe9904386339787b4f21f504fa1a6..35319f85277634581a732a5fba06f758b95c03aa 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_vif.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml
index c13114a284e01e3a2ee4f80f6cf5c2898a1149c3..bf3cbba29aeaf1897c25dc50ae47710bca82fe13 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_one_stage.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml
index 4ab9b87ac9b4686569f0d18315450be0d9363048..68be47a295e2bb88e1ea55afe679bdb6fb3ac133 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_two_stages.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml
index 5831674cd560191db43db46a53b1c4d4070b65c4..2f6e5115481fea2e8b5b36c5333cd9d23a027bf5 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_conventional_final_vif.VIF_Report_1.xml
@@ -9,8 +9,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
   <PrimaryVehicle>
     <Data id="VEH-622a60d3b3cf4340a362" xsi:type="PrimaryVehicleDataType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
       <Vehicle xsi:type="ConventionalVehicleVIFType">
-        <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-        <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+        <Manufacturer>Generic Truck Manufacturer</Manufacturer>
+        <ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
         <Model>Generic Model</Model>
         <VIN>VEH-1234567890</VIN>
         <Date>2017-02-15T11:00:00Z</Date>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml
index 7b30f3e6d5b3a9cceee45b2df3ec581a242c6f00..0b5f00fb8b85b25459401261298a4c8ff44fadbb 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_only.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml
index ec705312d43ca181a823e15228a03245c68fb2d8..3568618bd5a60cca8a2fc9a128231706652a4662 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml
@@ -11,8 +11,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -51,9 +51,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml
index cea4aaff46cca79892c80c5ebc25822867693fb7..63615f72b2b3b0bd6977f3945437078f99533e50 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3_group41.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -51,9 +51,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>220000</RatedPower>
 							<MaxEngineTorque>1100</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>false</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>false</ElectricalOutput>
 							</WHRType>
 							<Mode>
 							  <IdlingSpeed>700</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml
index 923b07c1e393f28822d6a87084deaa430be5000e..859174edea4ba9e06ee9c0f6b1d78132140c31aa 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_full.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml
index f81b15c5c14772d96643143e3d36efc9907ba754..1d0f4b5250fcbd98528b028c226085e59e1916d7 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_mandatory.xml
@@ -12,8 +12,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
 			<Vehicle xsi:type="ConventionalVehicleVIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+				<Manufacturer>Generic Truck Manufacturer</Manufacturer>
+				<ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
 				<Model>Generic Model</Model>
 				<VIN>VEH-1234567890_nonSmart-ESS</VIN>
 				<Date>2017-02-15T11:00:00Z</Date>
@@ -52,9 +52,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<RatedPower>325032</RatedPower>
 							<MaxEngineTorque>2134</MaxEngineTorque>
 							<WHRType>
-								<v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
-								<v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
-								<v2.3:ElectricalOutput>true</v2.3:ElectricalOutput>
+								<MechanicalOutputICE>false</MechanicalOutputICE>
+								<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+								<ElectricalOutput>true</ElectricalOutput>
 							</WHRType>
 							<Mode>
 								<IdlingSpeed>600</IdlingSpeed>
diff --git a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
index 170821dab668ebe40e428be6d32749831d06eed1..210a6e203d97ff7af5d621cd86a18fc0201c53a6 100644
--- a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
+++ b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
@@ -118,6 +118,24 @@ namespace TUGraz.VectoCore.Tests.XML.Reports
 			return !error;
 		}
 
+		public static void Validate(XDocument document, XmlDocumentType documentType)
+		{
+			var error = false;
+
+			var stream = new MemoryStream();
+			var writer = new XmlTextWriter(stream, Encoding.UTF8);
+			document.WriteTo(writer);
+			writer.Flush();
+			stream.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
+			var validator = new XMLValidator(new XmlTextReader(stream));
+			error = !validator.ValidateXML(documentType);
+			if (error) {
+				TestContext.WriteLine(validator.ValidationError);
+				Assert.Fail($"XML Validation failed {documentType}");
+			}
+		}
+
 
 		protected bool WriteToDisk(string basePath, string fileName, XDocument xDocument)
 		{
diff --git a/VectoMockup/VectoMockup/MockupResultReader.cs b/VectoMockup/VectoMockup/MockupResultReader.cs
index 37406fde8862f7d8319b04ac885eee671243e201..ecd34867b168d6c87a0211dcd53da0d0395ba315 100644
--- a/VectoMockup/VectoMockup/MockupResultReader.cs
+++ b/VectoMockup/VectoMockup/MockupResultReader.cs
@@ -107,7 +107,6 @@ namespace TUGraz.VectoMockup
 
 			private static string GetArch(string xmlName, VectoRunData runData)
 			{
-
 				bool ovc = false;
 				var jobType = VectoSimulationJobType.ConventionalVehicle;
 				if (runData.InputData is IXMLMultistageInputDataProvider) {
diff --git a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
index 2e8c4a74ebac4e09f86f5c5f1b1444339386ce66..65580be2158120e216b31c38c5661f19ed17112a 100644
--- a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
+++ b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
@@ -261,6 +261,11 @@ namespace TUGraz.VectoMockup.Ninject
 				return _vifReportFactoryImplementation.GetHevPxVehicleParameterGroup();
 			}
 
+			public IReportOutputGroup GetExemptedVehicleParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetExemptedVehicleParameterGroup();
+			}
+
 			public IXmlTypeWriter GetAngelDriveType()
 			{
 				return _vifReportFactoryImplementation.GetAngelDriveType();
diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
index 8318779ca792fc453d0034db5b7f2eef14104d09..f3a52969e0af277ee18382151659ed3555e3e9d2 100644
--- a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
+++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
@@ -73,7 +73,8 @@ namespace TUGraz.VectoMockup.Reports
         {
 			if (multistageVifInputData.VehicleInputData == null)
             {
-                var reportCompleted = new XMLDeclarationMockupReportCompletedVehicle(outputDataWriter, _mrfFactory, _cifFactory, true)
+                var reportCompleted = new XMLDeclarationMockupReportCompletedVehicle(outputDataWriter, _mrfFactory, _cifFactory, 
+					multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle, true)
                 {
                     PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle,
                 };
diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
index c04214e04370ea4594e4557bded0472bd1fc748a..c2c885cb8bb578075ed54f5be63848581c590170 100644
--- a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
+++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
@@ -18,12 +18,16 @@ namespace TUGraz.VectoMockup.Reports
 	{
 		private readonly IManufacturerReportFactory _mrfFactory;
 		private readonly ICustomerInformationFileFactory _cifFactory;
+		private readonly bool _exempted;
 
-		public XMLDeclarationMockupReportCompletedVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory, bool writePIF = false) : base(writer,
+		public XMLDeclarationMockupReportCompletedVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory, 
+			ICustomerInformationFileFactory cifFactory, bool exempted, bool writePIF = false) : base(writer,
 			writePIF)
 		{
 			_mrfFactory = mrfFactory;
 			_cifFactory = cifFactory;
+
+			_exempted = exempted;
 		}
 
 		#region Overrides of XMLDeclarationReportCompletedVehicle
@@ -33,8 +37,8 @@ namespace TUGraz.VectoMockup.Reports
 			var inputData = modelData.InputData as IXMLMultistageInputDataProvider;
 
 
-			var ihpc = (inputData.JobInputData.PrimaryVehicle.Vehicle.Components.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0;
-			var iepc = (inputData.JobInputData.PrimaryVehicle.Vehicle.Components.IEPC != null);
+			var ihpc = (inputData.JobInputData.PrimaryVehicle.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0;
+			var iepc = (inputData.JobInputData.PrimaryVehicle.Vehicle.Components?.IEPC != null);
 			ManufacturerRpt = _mrfFactory.GetManufacturerReport(
 				inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
 				inputData.JobInputData.JobType,
@@ -57,28 +61,30 @@ namespace TUGraz.VectoMockup.Reports
 			base.InitializeReport(modelData, fuelModes);
 		}
 
-		#endregion
+        #endregion
 
-		#region Overrides of XMLDeclarationReport
+        #region Overrides of XMLDeclarationReport
 
-		#region Overrides of XMLDeclarationReportCompletedVehicle
+        #region Overrides of XMLDeclarationReportCompletedVehicle
+
+        protected internal override void DoWriteReport()
+        {
+			foreach (var result in OrderedResults) {
+				WriteResult(result);
+			}
 
-		protected internal override void DoWriteReport()
-		{
-			(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
-            (CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
 			GenerateReports();
-			if (Writer != null)
-			{
+
+			if (Writer != null) {
 				OutputReports();
 			}
 		}
 
-		#endregion
+        #endregion
 
-		protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
+        protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
 		{
-			base.DoStoreResult(entry, runData, modData);
+			
 		}
 
 		protected override void WriteResult(ResultEntry result)
@@ -89,7 +95,17 @@ namespace TUGraz.VectoMockup.Reports
 
 		protected override void GenerateReports()
 		{
-			base.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();
 		}
 
 		protected override void OutputReports()
diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
index d09f52d067e5ef4b94668cf6cc1ddd4691553b22..8fe61ea5d4c61cfbe92020e73ac4cbb4f568e3c3 100644
--- a/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
+++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
@@ -63,30 +63,30 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 				ExecutionMode = ExecutionMode.Declaration,
 				JobName = InputDataProvider.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),
-				//            //ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
-				//            //GearboxData = _gearboxData,
-				//            //AxleGearData = _axlegearData,
-				//            //AngledriveData = _angledriveData,
-				//            Aux = DataAdapterSpecific.CreateAuxiliaryData(PrimaryVehicle.Components.AuxiliaryInputData,
-				//                PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segmentCompletedBus.VehicleClass, CompletedVehicle.Length,
-				//                PrimaryVehicle.Components.AxleWheels.NumSteeredAxles),
-				//Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
-				//Retarder = _retarderData,
-				////DriverData = _driverData,
-				//ExecutionMode = ExecutionMode.Declaration,
-				//JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,//?!? Jobname
-				//ModFileSuffix = $"_{_segmentCompletedBus.VehicleClass.GetClassNumber()}-Specific_{loading.Key}",
-				//Report = Report,
-				//Mission = mission,
-				//InputDataHash = InputDataProvider.XMLHash,// right hash?!?
-				//SimulationType = SimulationType.DistanceCycle,
-				//VehicleDesignSpeed = _segmentCompletedBus.DesignSpeed,
-				//GearshiftParameters = _gearshiftData,
-			};
+                //            //AirdragData = DataAdapterSpecific.CreateAirdragData(CompletedVehicle, mission),
+                //            //EngineData = DataAdapterSpecific.CreateEngineData(PrimaryVehicle, modeIdx, mission),
+                //            //ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
+                //            //GearboxData = _gearboxData,
+                //            //AxleGearData = _axlegearData,
+                //            //AngledriveData = _angledriveData,
+                //            Aux = DataAdapterSpecific.CreateAuxiliaryData(PrimaryVehicle.Components.AuxiliaryInputData,
+                //                PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segmentCompletedBus.VehicleClass, CompletedVehicle.Length,
+                //                PrimaryVehicle.Components.AxleWheels.NumSteeredAxles),
+                //Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
+                //Retarder = _retarderData,
+                ////DriverData = _driverData,
+                //ExecutionMode = ExecutionMode.Declaration,
+                //JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,//?!? Jobname
+                ModFileSuffix = $"_{_segmentCompletedBus.VehicleClass.GetClassNumber()}-Specific_{loading.Key}",
+                //Report = Report,
+                //Mission = mission,
+                //InputDataHash = InputDataProvider.XMLHash,// right hash?!?
+                //SimulationType = SimulationType.DistanceCycle,
+                //VehicleDesignSpeed = _segmentCompletedBus.DesignSpeed,
+                //GearshiftParameters = _gearshiftData,
+            };
 			simulationRunData.EngineData.FuelMode = 0;
 			simulationRunData.VehicleData.VehicleClass = _segmentCompletedBus.VehicleClass;
 			simulationRunData.BusAuxiliaries = DataAdapterSpecific.CreateBusAuxiliariesData(mission, PrimaryVehicle, CompletedVehicle, simulationRunData);
@@ -101,15 +101,18 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
 			var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
 			return new VectoRunData() {
 				Mission = mission,
+				Loading = loading.Key,
 				VehicleData = new VehicleData() {
 					Loading = loading.Value.Item1,
 					
 				},
+				EngineData = PrimaryBusMockupRunDataFactory.CreateMockupEngineData(PrimaryVehicle, modeIdx, CompletedVehicle.TankSystem),
 				JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
 				ExecutionMode = ExecutionMode.Declaration,
 				SimulationType = SimulationType.DistanceCycle,
 				Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
 				Report = Report,
+				ModFileSuffix = $"_{_segmentCompletedBus.VehicleClass.GetClassNumber()}-Generic_{loading.Key}",
 			};
 			return base.CreateVectoRunDataGeneric(mission, loading, primarySegment, modeIdx);
 		}
diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
index da026047211a41d43da35c08b90794e6a4069dca..88f5f9235629fb9460ffaf1766e9ad491c3373a8 100644
--- a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
+++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
@@ -31,9 +31,9 @@ namespace VectoMockupTest
     public class MockUpVectoTest
 	{
 
+		private const string BasePath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\";
 
-
-		private const string XsdPath = @"../../../../../VectoCore/VectoCore/Resources/XSD";
+		private const string XsdPath = @".. /../../../../VectoCore/VectoCore/Resources/XSD";
 
 		private IKernel _vectoKernel;
 		private ISimulatorFactoryFactory _simFactoryFactory;
@@ -41,55 +41,33 @@ namespace VectoMockupTest
 		private IXMLInputDataReader _inputDataReader;
 
 		#region Lorry Testfiles
-		protected const string ConventionalHeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\Conventional_heavyLorry_AMT.xml";
-		protected const string HEV_Px_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV_heavyLorry_AMT_Px_IHPC.xml";
-		protected const string HEV_S2_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml";
-		protected const string HEV_S3_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3.xml";
-		protected const string HEV_S3_HeavyLorry_ovc =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3_ovc.xml";
-		protected const string HEV_S4_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S4.xml";
-		protected const string HEV_IEPC_S_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_IEPC-S.xml";
-		protected const string PEV_E2_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_AMT_E2.xml";
-		protected const string PEV_E3_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_E3.xml";
-		protected const string PEV_E4_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\PEV_heavyLorry_E4.xml";
-		protected const string PEV_IEPC_HeavyLorry =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\IEPC_heavyLorry.xml";
+		protected const string ConventionalHeavyLorry = BasePath + @"HeavyLorry\Conventional_heavyLorry_AMT.xml";
+		protected const string HEV_Px_HeavyLorry = BasePath + @"HeavyLorry\HEV_heavyLorry_AMT_Px_IHPC.xml";
+		protected const string HEV_S2_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_AMT_S2.xml";
+		protected const string HEV_S3_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_S3.xml";
+		protected const string HEV_S3_HeavyLorry_ovc = BasePath + @"HeavyLorry\HEV-S_heavyLorry_S3_ovc.xml";
+		protected const string HEV_S4_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_S4.xml";
+		protected const string HEV_IEPC_S_HeavyLorry = BasePath + @"HeavyLorry\HEV-S_heavyLorry_IEPC-S.xml";
+		protected const string PEV_E2_HeavyLorry = BasePath + @"HeavyLorry\PEV_heavyLorry_AMT_E2.xml";
+		protected const string PEV_E3_HeavyLorry = BasePath + @"HeavyLorry\PEV_heavyLorry_E3.xml";
+		protected const string PEV_E4_HeavyLorry = BasePath + @"HeavyLorry\PEV_heavyLorry_E4.xml";
+		protected const string PEV_IEPC_HeavyLorry = BasePath + @"HeavyLorry\IEPC_heavyLorry.xml";
 
 		#endregion
 
 		#region PrimaryBus
 
-		protected const string Conventional_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\Conventional_primaryBus_AMT.xml";
-		protected const string Conventional_PrimaryBus_Tyres =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\Conventional_primaryBus_AMT_DifferentTyres.xml";
-		protected const string HEV_Px_IHPC_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV_primaryBus_AMT_Px.xml";
-		protected const string HEV_S2_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_AMT_S2.xml";
-		protected const string HEV_S3_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_S3.xml";
-		protected const string HEV_S4_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_S4.xml";
-		protected const string HEV_IEPC_S_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\HEV-S_primaryBus_IEPC-S.xml";
-		protected const string PEV_E2_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_AMT_E2.xml";
-		protected const string PEV_E3_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_E3.xml";
-		protected const string PEV_E4_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\PEV_primaryBus_E4.xml";
-		protected const string PEV_IEPC_PrimaryBus =
-			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\IEPC_primaryBus.xml";
+		protected const string Conventional_PrimaryBus = BasePath + @"PrimaryBus\Conventional_primaryBus_AMT.xml";
+		protected const string Conventional_PrimaryBus_Tyres = BasePath + @"PrimaryBus\Conventional_primaryBus_AMT_DifferentTyres.xml";
+		protected const string HEV_Px_IHPC_PrimaryBus = BasePath + @"PrimaryBus\HEV_primaryBus_AMT_Px.xml";
+		protected const string HEV_S2_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_AMT_S2.xml";
+		protected const string HEV_S3_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_S3.xml";
+		protected const string HEV_S4_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_S4.xml";
+		protected const string HEV_IEPC_S_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_IEPC-S.xml";
+		protected const string PEV_E2_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_AMT_E2.xml";
+		protected const string PEV_E3_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E3.xml";
+		protected const string PEV_E4_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E4.xml";
+		protected const string PEV_IEPC_PrimaryBus = BasePath + @"PrimaryBus\IEPC_primaryBus.xml";
 
 		#endregion
 
@@ -177,14 +155,14 @@ namespace VectoMockupTest
 		}
 
 
-	
-		
 
-		[TestCase(ConventionalHeavyLorry, TestName="ConventionalHeavyLorry")]
+
+
+		[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_S3_HeavyLorry_ovc, TestName="HEV_S3_HeavyLorry_ovc")]
+		[TestCase(HEV_S3_HeavyLorry_ovc, TestName = "HEV_S3_HeavyLorry_ovc")]
 		[TestCase(HEV_S4_HeavyLorry, TestName = "HEV_S4_HeavyLorry")]
 		[TestCase(HEV_Px_HeavyLorry, TestName = "HEV_Px_HeavyLorry")]
 		[TestCase(PEV_E2_HeavyLorry, TestName = "PEV_E2_HeavyLorry")]
@@ -193,20 +171,19 @@ namespace VectoMockupTest
 		[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]
-        
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/Conventional_mediumLorry_AMT.xml", TestName="Conventional_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml", TestName="HEV_S2_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml", TestName="HEV_IEPC_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml", TestName="HEV_S3_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml", TestName="HEV_S4_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml", TestName="HEV_Px_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml", TestName="PEV_IEPC_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml", TestName="PEV_E2_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml", TestName="PEV_E2_std_Medium_Lorry", Ignore="Segment not found")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml", TestName="PEV_E2_Medium_Lorry_2")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml", TestName="PEV_E3_Medium_Lorry")]
-		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml", TestName="PEV_E4_Medium_Lorry")]
+		//[NonParallelizable]
+		[TestCase(BasePath + @"MediumLorry/Conventional_mediumLorry_AMT.xml", TestName="Conventional_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/HEV-S_mediumLorry_AMT_S2.xml", TestName="HEV_S2_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/HEV-S_mediumLorry_IEPC-S.xml", TestName="HEV_IEPC_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/HEV-S_mediumLorry_S3.xml", TestName="HEV_S3_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/HEV-S_mediumLorry_S4.xml", TestName="HEV_S4_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/HEV_mediumLorry_AMT_Px.xml", TestName="HEV_Px_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/IEPC_mediumLorry.xml", TestName="PEV_IEPC_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/PEV_mediumLorry_AMT_E2.xml", TestName="PEV_E2_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml", TestName="PEV_E2_std_Medium_Lorry", Ignore="Segment not found")]
+		[TestCase(BasePath + @"MediumLorry/PEV_mediumLorry_APT-N_E2.xml", TestName="PEV_E2_Medium_Lorry_2")]
+		[TestCase(BasePath + @"MediumLorry/PEV_mediumLorry_E3.xml", TestName="PEV_E3_Medium_Lorry")]
+		[TestCase(BasePath + @"MediumLorry/PEV_mediumLorry_E4.xml", TestName="PEV_E4_Medium_Lorry")]
 		public void LorryMockupTest(string fileName, bool mockup = true)
 		{
 			
@@ -258,7 +235,7 @@ namespace VectoMockupTest
 		}
 
 		
-		[TestCase(Conventional_InterimBus,Conventional_StageInput, TestName = "ConventionalInterimBus")]
+		[TestCase(Conventional_InterimBus, Conventional_StageInput, TestName = "ConventionalInterimBus")]
 		public void InterimBusMockupTest(string vifInput, string stageInputFile)
 		{
 			//SimulatorFactory.MockUpRun = mockup;
@@ -308,9 +285,10 @@ namespace VectoMockupTest
 		}
 
 		[TestCase(CompletedDiesel, TestName="CompletedDiesel")]
+        [TestCase(CompletedExempted, TestName = "CompleteExempted Bus")]
+        [TestCase(CompletedExemptedWithoutTPMLM, TestName = "CompletedExempted No TPMLM")]
 		public void PrimaryAndCompletedTest(string fileName)
 		{
-
 			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
 			var sumWriter = new SummaryDataContainer(fileWriter);
 			var jobContainer = new JobContainer(sumWriter);
@@ -321,7 +299,7 @@ namespace VectoMockupTest
 			jobContainer.AddRuns(_simulatorFactory);
 			jobContainer.Execute(false);
 			jobContainer.WaitFinished();
-			CheckFileExists(fileWriter, checkCif: true, checkVif: false);
+			CheckFileExists(fileWriter, checkCif: true, checkVif: true, checkMrf: true, checkPrimaryMrf: true);
 		}
 
 		[TestCase(InterimDiesel, TestName = "PrimaryAndInterim")]
@@ -356,33 +334,55 @@ namespace VectoMockupTest
 			bool checkPrimaryMrf = false,
 			bool checkPrimaryReport = false)
 		{
-			if (checkCif && !File.Exists(fileWriter.XMLCustomerReportName)) {
-				TestContext.WriteLine(fileWriter.XMLCustomerReportName + "Missing\n");
-				Assert.Fail();
+			if (checkCif) {
+				if (!File.Exists(fileWriter.XMLCustomerReportName)) {
+					TestContext.WriteLine(fileWriter.XMLCustomerReportName + " Missing\n");
+					Assert.Fail();
+				}
+
+				MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLCustomerReportName),
+					XmlDocumentType.CustomerReport);
 			}
-			if (checkMrf && !File.Exists(fileWriter.XMLFullReportName))
-			{
-				TestContext.WriteLine(fileWriter.XMLFullReportName + "Missing\n");
-				Assert.Fail();
+			if (checkMrf) {
+				if (!File.Exists(fileWriter.XMLFullReportName)) {
+					TestContext.WriteLine(fileWriter.XMLFullReportName + " Missing\n");
+					Assert.Fail();
+				}
+
+				MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLFullReportName),
+					XmlDocumentType.ManufacturerReport);
 			}
 
 			var primaryMrfPath = fileWriter.XMLFullReportName.Replace("RSLT_MANUFACTURER", "RSLT_MANUFACTURER_PRIMARY");
-			if (checkPrimaryMrf && !File.Exists(primaryMrfPath)) {
-				TestContext.WriteLine(primaryMrfPath + "Missing\n");
-				Assert.Fail();
+			if (checkPrimaryMrf) {
+				if (!File.Exists(primaryMrfPath)) {
+					TestContext.WriteLine(primaryMrfPath + " Missing\n");
+					Assert.Fail();
+				}
+
+				MRF_CIF_WriterTestBase.Validate(XDocument.Load(primaryMrfPath), XmlDocumentType.ManufacturerReport);
 			}
 
 
-			if (checkPrimaryReport && !File.Exists(fileWriter.XMLPrimaryVehicleReportName))
-			{
-				TestContext.WriteLine(fileWriter.XMLPrimaryVehicleReportName + "Missing\n");
-				Assert.Fail();
+			if (checkPrimaryReport) {
+				if (!File.Exists(fileWriter.XMLPrimaryVehicleReportName)) {
+					TestContext.WriteLine(fileWriter.XMLPrimaryVehicleReportName + " Missing\n");
+					Assert.Fail();
+				}
+
+				MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName),
+					XmlDocumentType.MultistepOutputData);
 			}
 
 
-			if (checkVif && !File.Exists(fileWriter.XMLMultistageReportFileName)) {
-				TestContext.WriteLine(fileWriter.XMLMultistageReportFileName + "Missing\n");
-				Assert.Fail();
+			if (checkVif) {
+				if (!File.Exists(fileWriter.XMLMultistageReportFileName)) {
+					TestContext.WriteLine(fileWriter.XMLMultistageReportFileName + " Missing\n");
+					Assert.Fail();
+				}
+
+				MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLMultistageReportFileName),
+					XmlDocumentType.MultistepOutputData);
 			}
 
 			
@@ -508,36 +508,37 @@ namespace VectoMockupTest
 			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
 		}
 
-        [TestCase("TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_completedBus_input_full.xml", 
-			true, 
-			true,
-			false,
-			false, 
-			true, 
-			TestName="ExemptedCompletedBus1")]
-		[TestCase("TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_completedBus_input_only_mandatory_entries.xml", 
-			true, 
-			true,
-			false,
-			false, 
-			false, 
-			TestName="ExemptedCompletedBus1")]
-		[TestCase("TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_heavyLorry.xml", 
+		private const string BasePathExempted = "TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/";
+
+   //     [TestCase(BasePathExempted + "exempted_completedBus_input_full.xml",
+   //         true,
+   //         true,
+   //         false,
+   //         false,
+   //         true,
+   //         TestName = "ExemptedCompletedBus1")]
+   //     [TestCase(BasePathExempted + "exempted_completedBus_input_only_mandatory_entries.xml", 
+			//true, 
+			//true,
+			//false,
+			//false, 
+			//false, 
+			//TestName="ExemptedCompletedBus2")]
+		[TestCase(BasePathExempted + "exempted_heavyLorry.xml", 
 			false, 
 			false,
 			true,
 			false, 
 			false, 
 			TestName="ExemptedHeavyLorry")]
-		[TestCase("TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml",
-			
+		[TestCase(BasePathExempted + "exempted_mediumLorry.xml",
 			false, 
 			true,
 			true,
 			false, 
 			false, 
 			TestName="ExemptedMediumLorry")]
-		[TestCase("TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_primaryBus.xml", 
+		[TestCase(BasePathExempted + "exempted_primaryBus.xml", 
 			false, 
 			false,
 			true,
@@ -565,8 +566,17 @@ namespace VectoMockupTest
 				checkMrf:checkMrf, 
 				checkPrimaryMrf:checkPrimaryMrf, 
 				checkPrimaryReport:checkPrimaryReport);
-			if(checkMrf) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
-			if(checkCif) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+			if (checkMrf) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+			if (checkPrimaryReport) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), XmlDocumentType.MultistepOutputData), "VIF invalid");
+			if (checkCif) Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+		}
+
+		public void ExemptedCompleteBusTest()
+		{
+			var primaryInput = BasePathExempted + "exempted_primaryBus.xml";
+			var completeInput = BasePathExempted + "exempted_completedBus_input_full.xml";
+
+
 		}
 	}
 }