diff --git a/.gitignore b/.gitignore
index 72796d4a54028f06a6353940ef47c94715dda9fb..83d5f953f1ebd2d9f2b795519129f9cd7e2ef0a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -203,6 +203,7 @@ Documentation/VehiclesReleaseComparisonDeclarationMode/*.vsum
 HashingTool/TestData/
 DISTR/
 [0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]-VECTO-*.zip
+[0-9][0-9][0-9][0-9]_[0-9][0-9]_[0-9][0-9]-VECTO_MOCKUP-*.zip
 Documentation/VehiclesReleaseComparisonDeclarationMode/tmp/
 EPTP/
 201*-VECTO-*.zip
@@ -221,3 +222,5 @@ Documentation/VehiclesReleaseComparisonDeclarationMode/**/*.vsum
 /VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/output
 /Vecto3GUI2020Test/TestData/output
 /VectoCommon/VectoCommon/InputData/BusInputData.cd
+/.idea/.idea.VECTO/.idea
+
diff --git a/Directory.Build.props b/Directory.Build.props
index 1c6bee655b6959f864f99d9336793857ca01dbd2..dd173a60980aff71b9cc020fb13f729a2a03c3c4 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -18,7 +18,8 @@
     <Copyright>Copyright © 2012-$([System.DateTime]::UtcNow.Year)</Copyright>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <Deterministic>true</Deterministic>
-    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
+    <!-- Set to true for VectoCore to fix Ninject version conflicts-->
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
 	  <DefineTrace>false</DefineTrace>
     <RemoveIntegerChecks>true</RemoveIntegerChecks>
     <DebugType>none</DebugType>
diff --git a/Directory.Build.targets b/Directory.Build.targets
index c9c06bc38267f03fab4173b475beef36eb1e5c83..859784928572a8a8f9ba8d3c75575a950ff5e0f2 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -7,22 +7,46 @@
 	<Exec Command="&quot;$(solutiondir)documentation\VectoHashingTool\convert.bat&quot;" WorkingDirectory="$(solutiondir)documentation\VectoHashingTool"/>  
  </Target>   
  -->
+	<!--<Target Name="BeforeBuild">
+		<Message Text="Compiling the program in $(Configuration) Configuration" Importance="high" />
+	</Target>-->
+	<!-- msbuild VECTO.sln -target:CustomClean -->
+	<Target Name="CustomClean" >
+		<Message Text="Removing old files" Importance="high" />
+		<RemoveDir Directories="$(SolutionDir)VECTO\bin\" />
+		<RemoveDir Directories="$(SolutionDir)HashingTool\bin\" />
+		<RemoveDir Directories="$(SolutionDir)HashingCmd\bin\" />
+		<RemoveDir Directories="$(SolutionDir)VectoConsole\bin\" />
+		<RemoveDir Directories="$(SolutionDir)VECTO\bin\" />
+		<RemoveDir Directories="$(SolutionDir)VECTO3GUI2020\bin\" />
+		<RemoveDir Directories="$(SolutionDir)VECTO3GUI2020\bin\" />
 
-	<Target Name="AfterBuild" Condition="'$(Configuration)'=='Deploy'">
+		<RemoveDir Directories="$(SolutionDir)Tools\VECTOConsoleStart\bin\" />
+		<RemoveDir Directories="$(SolutionDir)Tools\VECTOMultistageStart\bin\" />
+		<RemoveDir Directories="$(SolutionDir)Tools\VECTOStart\bin\" />
+		<RemoveDir Directories="$(SolutionDir)VectoCore\VectoCore\bin\" />
+		<RemoveDir Directories="$(SolutionDir)VectoCommon\VectoCommon\bin\"/>
+		<RemoveDir Directories="$(SolutionDir)VectoCommon\VectoHashing\bin\"/>
+		<RemoveDir Directories="$(SolutionDir)VectoMockup\VectoMockup\bin\"/>
+	</Target>
 
+	<Target Name="Packaging" AfterTargets="DispatchToInnerBuilds" Condition="('$(Configuration)'=='Deploy') Or ('$(Configuration)' == 'MockupDeploy')">
+		<Message Text="Packaging in $(Configuration) Configuration" Importance="high" />
 		<Exec Command="cscript &quot;$(SolutionDir)documentation\user manual source\convertpptxtopdf.vbs&quot; &quot;$(SolutionDir)documentation\user manual source\release notes vecto3.x.pptx&quot; &quot;$(SolutionDir)documentation\user manual source\release notes vecto3.x.pdf&quot;"/>
 		<PropertyGroup>
 			<CurrentDate>$([System.DateTime]::Now.ToString(yyy_MM_dd))</CurrentDate>
 			<DeployPath>$(SolutionDir)Deploy\$(CurrentDate)-VECTO-$(Version)\</DeployPath>
+			<DeployPath Condition="'$(Configuration)'=='MockupDeploy'">$(SolutionDir)Deploy\$(CurrentDate)-VECTO_MOCKUP-$(Version)\</DeployPath>
 		</PropertyGroup>
   		<RemoveDir Directories="$(SolutionDir)Deploy" Condition="Exists('$(SolutionDir)Deploy')"/>
 		<MakeDir Directories="$(DeployPath)"/>
 
-		<ItemGroup>
+
+		<ItemGroup Condition="'$(Configuration)'=='Deploy'">
 			<!-- All files for net45 -->
 			<Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\*.exe"/>
 			<Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\*.dll*"/>
-			<Net45Vecto Include="$(SolutionDir)VECTO\bin\Release\net45\nlog.config"/>
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\nlog.config"/>
 			<Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.exe"/>
 			<Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.dll*"/>
 			<Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.exe"/>
@@ -30,28 +54,64 @@
 			<Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\*.exe"/>
 			<Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\*.dll*"/>
 		</ItemGroup>
+		<!--MockupDeploy-->
+
+		<ItemGroup Condition="'$(Configuration)'=='MockupDeploy'">
+			<!-- All files for net45 -->
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net45\*.exe*"/>
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net45\*.dll*"/>
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net45\nlog.config"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.exe*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.dll*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.exe*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.dll*"/>
+			<Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net45\*.exe*"/>
+			<Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net45\*.dll*"/>
+		</ItemGroup>
+
+		
 		<Copy SourceFiles="@(Net45VectoCommandLine)" DestinationFolder="$(DeployPath)net45"/>
 		<Copy SourceFiles="@(Net45HashingTool)" DestinationFolder="$(DeployPath)net45"/>
 		<Copy SourceFiles="@(Net45VECTO)" DestinationFolder="$(DeployPath)net45"/>
 
-		<ItemGroup>
+
+		<ItemGroup Condition="'$(Configuration)'=='Deploy'">
 			<!-- All files for net48 -->
 			<Net48VECTO Include="$(SolutionDir)VECTO\bin\Release\net48\*.exe"/>
 			<Net48VECTO Include="$(SolutionDir)VECTO\bin\Release\net48\*.dll*"/>
 			<Net48Vecto Include="$(SolutionDir)VECTO\bin\Release\net48\nlog.config"/>
 			<Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.exe"/>
 			<Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.dll*"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.exe"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.dll*"/>
 			<Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net48\*.exe"/>
 			<Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net48\*.dll*"/>
 			<Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net48\*.exe"/>
 			<Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net48\*.dll*"/>
 		</ItemGroup>
+			
+		<!--MockupDeploy-->
+		<ItemGroup Condition="'$(Configuration)'=='MockupDeploy'">
+			<!-- All files for net48 -->
+			<Net48VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net48\*.exe*" />
+			<Net48VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net48\*.dll*" />
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\MockupRelease\net48\nlog.config"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.exe*" />
+			<Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.dll*" />
+			<Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.exe"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.dll*"/>
+			<Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net48\*.exe*" />
+			<Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net48\*.dll*" />
+			<Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net48\*.exe*" />
+			<Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net48\*.dll*" />
+		</ItemGroup>
+
 		<Copy SourceFiles="@(Net48VectoCommandLine)" DestinationFolder="$(DeployPath)net48"/>
 		<Copy SourceFiles="@(Net48HashingTool)" DestinationFolder="$(DeployPath)net48"/>
 		<Copy SourceFiles="@(Net48VectoMultistage)" DestinationFolder="$(DeployPath)net48"/>
 		<Copy SourceFiles="@(Net48VECTO)" DestinationFolder="$(DeployPath)net48"/>
 
-		<ItemGroup>
+		<ItemGroup Condition="'$(Configuration)'=='Deploy'">
 			<!-- All files for net6.0 -->
 			<Vecto Include="$(SolutionDir)VECTO\bin\Release\net6.0-windows\VECTO.*" Exclude="*.dev.json"/>
 			<Vecto Include="$(SolutionDir)VECTO\bin\Release\net6.0-windows\*.dll"/>
@@ -62,11 +122,36 @@
 			<VectoCommandLineRuntimes Include="$(SolutionDir)VectoConsole\bin\Release\net6.0\runtimes\**\*.*"/>
 			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\hashingcmd.*" Exclude="*.dev.json"/>
 			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\*.dll"/>
-			<HashingToolRuntimes Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\runtimes\**\*.*"/>
+			<HashingToolRuntimes Include="$(SolutionDir)HashingCmd\bin\Release\net6.0-windows\runtimes\**\*.*"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\HashingTool.*" Exclude="*.dev.json"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\*.dll*"/>
+			<HashingToolRuntimes  Include="$(SolutionDir)HashingTool\bin\Release\net6.0\runtimes\**\*.*"/>
 			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net6.0-windows\VECTOMultistage.*" Exclude="*.dev.json"/>
 			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net6.0-windows\*.dll"/>
 			<VectoMultistageRuntimes Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net6.0-windows\runtimes\**\*.*"/>
 		</ItemGroup>
+		<!--MockupDeploy-->
+			
+		<ItemGroup Condition="'$(Configuration)'=='MockupDeploy'">
+			<!-- All files for net6.0 -->
+			<Vecto Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\VECTO.*" Exclude="*.dev.json"/>
+			<Vecto Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\*.dll"/>
+			<Vecto Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\nlog.config"/>
+			<VectoRuntimes Include="$(SolutionDir)VECTO\bin\MockupRelease\net6.0-windows\runtimes\**\*.*"/>
+			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net6.0\vectocmd.*" Exclude="*.dev.json"/>
+			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net6.0\*.dll"/>
+			<VectoCommandLineRuntimes Include="$(SolutionDir)VectoConsole\bin\MockupRelease\net6.0\runtimes\**\*.*"/>
+			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\hashingcmd.*" Exclude="*.dev.json"/>
+			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\*.dll"/>
+			<HashingToolRuntimes Include="$(SolutionDir)HashingCmd\bin\Release\net6.0\runtimes\**\*.*"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\HashingTool.*" Exclude="*.dev.json"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\*.dll*"/>
+			<HashingToolRuntimes  Include="$(SolutionDir)HashingTool\bin\Release\net6.0-windows\runtimes\**\*.*"/>
+			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net6.0-windows\VECTOMultistage.*" Exclude="*.dev.json"/>
+			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net6.0-windows\*.dll"/>
+			<VectoMultistageRuntimes Include="$(SolutionDir)VECTO3GUI2020\bin\MockupRelease\net6.0-windows\runtimes\**\*.*"/>
+		</ItemGroup>
+	
 		<Copy SourceFiles="@(HashingTool)" DestinationFolder="$(DeployPath)net60"/>
 		<Copy SourceFiles="@(VectoMultistage)" DestinationFolder="$(DeployPath)net60"/>
 		<Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(DeployPath)net60"/>
@@ -76,7 +161,7 @@
 		<Copy SourceFiles="@(VectoCommandLineRuntimes)" DestinationFiles="@(VectoCommandLineRuntimes->'$(DeployPath)net60\runtimes\%(RecursiveDir)%(Filename)%(Extension)')"/>
 		<Copy SourceFiles="@(VectoRuntimes)" DestinationFiles="@(VectoRuntimes->'$(DeployPath)net60\runtimes\%(RecursiveDir)%(Filename)%(Extension)')"/>
 
-		<ItemGroup>
+		<ItemGroup Condition="'$(Configuration)'=='Deploy'">
 			<!-- All files for the VECTO starters -->
 			<VectoStart Include="$(SolutionDir)Tools\VECTOStart\bin\Deploy\net45\VECTO.exe" />
 			<VectoStart Include="$(SolutionDir)Tools\VECTOMultistageStart\bin\Release\net45\VECTOMultistage.exe" />
@@ -84,6 +169,14 @@
 			<VectoStart Include="$(SolutionDir)Tools\HashingToolStart\bin\Release\net45\HashingTool.exe" />
 			<VectoStart Include="$(SolutionDir)Tools\VECTOConsoleStart\bin\Release\net45\vectocmd.exe" />
 		</ItemGroup>
+		<ItemGroup Condition="'$(Configuration)'=='MockupDeploy'">
+			<!-- All files for the VECTO starters -->
+			<VectoStart Include="$(SolutionDir)Tools\VECTOStart\bin\MockupDeploy\net45\VECTO.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\VECTOMultistageStart\bin\Release\net45\VECTOMultistage.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\HashingCmdStart\bin\Release\net45\hashingcmd.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\HashingToolStart\bin\Release\net45\HashingTool.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\VECTOConsoleStart\bin\Release\net45\vectocmd.exe" />
+		</ItemGroup>
 		<Copy SourceFiles="@(VectoStart)" DestinationFolder="$(DeployPath)"/>
 
 		<ItemGroup>
@@ -119,6 +212,11 @@
 		<Copy SourceFiles="@(VectoConfigurationSample)" DestinationFolder="$(DeployPath)"/>
 		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Mission Profiles Directory.txt" DestinationFiles="$(DeployPath)Mission Profiles\!! README !!.TXT"/>
 		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Declaration Directory.txt" DestinationFiles="$(DeployPath)Declaration\!! README !!.TXT"/>
-		<ZipDirectory SourceDirectory="$(SolutionDir)Deploy\" DestinationFile="$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip" Overwrite="true"/>
+
+		<PropertyGroup>
+			<DestinationZip>$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip</DestinationZip>
+			<DestinationZip Condition="'$(Configuration)'=='MockupDeploy'">$(SolutionDir)$(CurrentDate)-VECTO_MOCKUP-$(Version).zip</DestinationZip>
+		</PropertyGroup>
+		<ZipDirectory SourceDirectory="$(SolutionDir)Deploy\" DestinationFile="$(DestinationZip)" Overwrite="true"/>
 	</Target>
 </Project>
\ No newline at end of file
diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf
index f4fd08c9171912a98a390276108b8255e24260bb..e9fb391957a2ad2d18649a2fb17daba26ce30418 100644
Binary files a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf and b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf differ
diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml
index 2570c5ed1fd450fa8cfcba3771cb6a5fc9efe9d4..1f0b49b4a554529fa9842e73671fe66bbc5d9acb 100644
--- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml	
+++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/primary_heavyBus group_P31_32_Smart_ES.VIF.xml	
@@ -2,9 +2,9 @@
 <VectoOutputMultistep xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:vif="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: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: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-88dcf76d37a64b5eaf70" xsi:type="PrimaryVehicleDataType">
-      <Vehicle xsi:type="VehiclePIFType">
-        <ManufacturerPrimaryVehicle>Generic Bus Manufacturer</ManufacturerPrimaryVehicle>
-        <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+      <Vehicle xsi:type="ConventionalVehicleVIFType">
+        <Manufacturer>Generic Bus Manufacturer</Manufacturer>
+        <ManufacturerAddress>Street, ZIP City</ManufacturerAddress>
         <Model>Generic Model</Model>
         <VIN>VEH-1234567890_nonSmart</VIN>
         <Date>2017-02-15T11:00:00Z</Date>
@@ -18,19 +18,19 @@
         <RetarderRatio>1.000</RetarderRatio>
         <AngledriveType>None</AngledriveType>
         <ZeroEmissionVehicle>false</ZeroEmissionVehicle>
-        <ADAS xmlns:adas="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xsi:type="adas:AdvancedDriverAssistantSystemsType">
-          <adas:EngineStopStart>false</adas:EngineStopStart>
-          <adas:EcoRollWithoutEngineStop>false</adas:EcoRollWithoutEngineStop>
-          <adas:EcoRollWithEngineStop>false</adas:EcoRollWithEngineStop>
-          <adas:PredictiveCruiseControl>none</adas:PredictiveCruiseControl>
+        <ADAS xsi:type="v2.4:ADAS_Conventional_Type">
+          <v2.4:EngineStopStart>false</v2.4:EngineStopStart>
+          <v2.4:EcoRollWithoutEngineStop>false</v2.4:EcoRollWithoutEngineStop>
+          <v2.4:EcoRollWithEngineStop>false</v2.4:EcoRollWithEngineStop>
+          <v2.4:PredictiveCruiseControl>none</v2.4:PredictiveCruiseControl>
         </ADAS>
         <TorqueLimits xmlns:tcl="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="tcl:TorqueLimitsType">
           <tcl:Entry gear="6" maxTorque="1800" />
           <tcl:Entry gear="1" maxTorque="2500" />
         </TorqueLimits>
-        <Components xsi:type="VehicleComponentsPIFType">
+        <Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
           <Engine>
-            <Data xsi:type="EngineDataPIFType">
+            <Data xsi:type="EngineDataVIFType">
               <Manufacturer>Generic Engine Manufacturer</Manufacturer>
               <Model>Generic primary bus 41 Engine</Model>
               <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -41,9 +41,9 @@
               <RatedPower>200000</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>
@@ -68,14 +68,14 @@
             </Data>
           </Engine>
           <Transmission>
-            <Data xsi:type="TransmissionDataPIFType">
+            <Data xsi:type="TransmissionDataVIFType">
               <Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
               <Model>AT 6 Gear</Model>
               <MainCertificationMethod>Standard values</MainCertificationMethod>
               <Date>2017-01-11T11:00:00Z</Date>
               <AppVersion>3.0.1</AppVersion>
               <TransmissionType>APT-S</TransmissionType>
-              <Gears xsi:type="TransmissionGearsPIFType">
+              <Gears xsi:type="TransmissionGearsVIFType">
                 <Gear number="1">
                   <Ratio>3.364</Ratio>
                   <MaxTorque>1900</MaxTorque>
@@ -106,7 +106,7 @@
             </Data>
           </Transmission>
           <TorqueConverter>
-            <Data xsi:type="TorqueConverterDataPIFType">
+            <Data xsi:type="TorqueConverterDataVIFType">
               <Manufacturer>Some Manufacturer</Manufacturer>
               <Model>Some Model</Model>
               <CertificationMethod>Standard values</CertificationMethod>
@@ -115,7 +115,7 @@
             </Data>
           </TorqueConverter>
           <Axlegear>
-            <Data xsi:type="AxlegearDataPIFType">
+            <Data xsi:type="AxlegearDataVIFType">
               <Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
               <Model>Generic primary bus 41 AxleGear</Model>
               <CertificationMethod>Standard values</CertificationMethod>
@@ -126,7 +126,7 @@
             </Data>
           </Axlegear>
           <AxleWheels>
-            <Data xsi:type="AxleWheelsDataPIFType">
+            <Data xsi:type="AxleWheelsDataVIFType">
               <Axles>
                 <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
                   <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -186,7 +186,7 @@
             </Data>
           </AxleWheels>
           <Auxiliaries>
-            <Data xsi:type="AuxiliaryDataPIFType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
+            <Data xsi:type="AuxiliaryDataVIFType">
               <Fan>
                 <Technology>Hydraulic driven - Constant displacement pump</Technology>
               </Fan>
diff --git a/HashingTool/HashingTool.csproj b/HashingTool/HashingTool.csproj
index a5fc2a097d0c62da58451a1f4443035cfd4818b0..bd04018aa1a213f11801e90e51b358e59d1d5023 100644
--- a/HashingTool/HashingTool.csproj
+++ b/HashingTool/HashingTool.csproj
@@ -8,7 +8,7 @@
     <RootNamespace>HashingTool</RootNamespace>
     <AssemblyName>HashingTool</AssemblyName>
     <UseWPF>true</UseWPF>
-    <TargetFrameworks>net45;net6.0-windows</TargetFrameworks>
+    <TargetFrameworks>net45;net48;net6.0-windows</TargetFrameworks>
     <DefineConstants />
     <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
     <ApplicationIcon>HashingIcon.ico</ApplicationIcon>
diff --git a/MockupNinjectModule.cs b/MockupNinjectModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e80e3118178a366b3d8ec021cd462f3c2780256b
--- /dev/null
+++ b/MockupNinjectModule.cs
@@ -0,0 +1,6 @@
+using System;
+
+public class MockupNinjectModule : NinjectModule
+{
+	
+}
diff --git a/Tools/HashingCmdStart/Program.cs b/Tools/HashingCmdStart/Program.cs
index f3b287ab1d002769cb532880115205f80372126c..d6ddc78a1efbea4d4ed32888a80c03ed58a6991c 100644
--- a/Tools/HashingCmdStart/Program.cs
+++ b/Tools/HashingCmdStart/Program.cs
@@ -2,6 +2,9 @@
 {
 	class Program
 	{
-		static void Main(string[] args) => StarterHelper.StartVECTO(args);
+		static void Main(string[] args)
+		{
+			StarterHelper.StartVECTO(args, true);
+        } 
 	}
 }
\ No newline at end of file
diff --git a/Tools/HashingToolStart/Program.cs b/Tools/HashingToolStart/Program.cs
index 6d55a719f74068db46301e4485e52d527b6ce2ba..212d779550bdfd8798482a1a49acfc37588ede55 100644
--- a/Tools/HashingToolStart/Program.cs
+++ b/Tools/HashingToolStart/Program.cs
@@ -9,7 +9,7 @@ namespace TUGraz.VECTO
 		{
 			try {
 				// mk20220707: hashing tool currently only works under net45, therefore we hardcoded the version
-				StarterHelper.StartVECTO(new[]{"net45"});
+				StarterHelper.StartVECTO(args);
 			} catch (Exception e) {
 				MessageBox.Show(e.Message);
 			}
diff --git a/Tools/VECTOConsoleStart/Program.cs b/Tools/VECTOConsoleStart/Program.cs
index 178aabefbf8e59c15ecad4b119b343f94ccb3928..2c3e89e56651c08449cab191f42d63d4d9a5e9e3 100644
--- a/Tools/VECTOConsoleStart/Program.cs
+++ b/Tools/VECTOConsoleStart/Program.cs
@@ -1,7 +1,12 @@
-namespace TUGraz.VECTO
+using System.Linq;
+using System.Text;
+namespace TUGraz.VECTO
 {
 	class Program
 	{
-		static void Main(string[] args) => StarterHelper.StartVECTO(args);
+		static void Main(string[] args)
+		{
+			StarterHelper.StartVECTO(args, true);
+		}
 	}
 }
diff --git a/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj b/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj
index a87fbbd03e9cd78f53ccf2b74f476cd77ef64b4b..1956648c6f470b44fd78b2263704b158dd98b63a 100644
--- a/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj
+++ b/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj
@@ -1,12 +1,14 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
-    <OutputType>WinExe</OutputType>
+    <OutputType>exe</OutputType>
+    
     <AssemblyName>vectocmd</AssemblyName>
     <ApplicationIcon>Icon2.ico</ApplicationIcon>
     <RootNamespace>TUGraz.VECTO</RootNamespace>
     <TargetFrameworks>net45</TargetFrameworks>
-    <DefineConstants />
+	<DefineConstants />
+    <StartupObject></StartupObject>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/Tools/VECTOMultistageStart/VECTOMultistage.csproj b/Tools/VECTOMultistageStart/VECTOMultistage.csproj
index da3310873330bb510cc8a4fbb7f13b06a93bf3a5..eae5dedee8e400c496f878c7df4ada18d1606eee 100644
--- a/Tools/VECTOMultistageStart/VECTOMultistage.csproj
+++ b/Tools/VECTOMultistageStart/VECTOMultistage.csproj
@@ -7,6 +7,7 @@
     <RootNamespace>TUGraz.VECTO</RootNamespace>
     <TargetFrameworks>net45</TargetFrameworks>
     <DefineConstants />
+    <Configurations>Debug;Release;MockupDebug</Configurations>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/Tools/VECTOStart/StarterHelper.cs b/Tools/VECTOStart/StarterHelper.cs
index 40e4bab5374630491362afb3783fe97be601ce86..0aec4549e9c6f905e38637b7144c6633e8b67c17 100644
--- a/Tools/VECTOStart/StarterHelper.cs
+++ b/Tools/VECTOStart/StarterHelper.cs
@@ -3,30 +3,53 @@ using System;
 using System.Collections;
 using System.Diagnostics;
 using System.IO;
+using System.Linq;
 using System.Reflection;
 
 namespace TUGraz.VECTO
 {
 	class StarterHelper
 	{
-		public static void StartVECTO(string[] args, params string[] validVersions)
+		public static void StartVECTO(string[] cmdArguments, params string[] validVersions)
+		{
+			StartVECTO(cmdArguments, false, validVersions);
+		}
+
+        public static void StartVECTO(string[] cmdArguments, bool consoleApp, params string[] validVersions)
 		{
 			var path = "No path found.";
 			string version = "No version found.";
 			if (validVersions is null || validVersions.Length == 0) {
 				validVersions = new[] { "net45", "net48", "net60" };
 			}
+
+			//var versionArgument = cmdArguments.FirstOrDefault(arg => arg.StartsWith("net"));
 			try {
-				if (args.Length > 0) {
-					version = args[0].ToLower();
-				} else {
-					version = GetHighestNETVersion();
-				}
+				version = GetHighestNETVersion();
+				
 
 				path = $"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe";
-				Process.Start(new ProcessStartInfo(path) {
-					WorkingDirectory = Directory.GetCurrentDirectory()
-				});
+
+				string argumentsString = "";
+				if (cmdArguments.Length > 0) {
+					foreach (var cmdArgument in cmdArguments) {
+						argumentsString += "\"" +  cmdArgument + "\" ";
+					}
+				}
+
+				var processInfo = new ProcessStartInfo(path) {
+					WorkingDirectory = Directory.GetCurrentDirectory(),
+					Arguments = argumentsString,
+				};
+				
+
+				if (consoleApp) {
+					processInfo.UseShellExecute = consoleApp ? false : processInfo.UseShellExecute;
+                    Process.Start(processInfo)?.WaitForExit();
+                } else {
+					Process.Start(processInfo);
+				}
+				
 				ValidateVersion(version, validVersions);
 			} catch (Exception e) {
 				var message = $"Error during starting VECTO.\nDetected .NET version: {version}\nTried to open path: {path}\n{e.Message}";
diff --git a/Tools/VECTOStart/VECTOStart.csproj b/Tools/VECTOStart/VECTOStart.csproj
index 176ff3fc47fc375c2433a24d2546b29532da300d..332cda0617da374df2632598172affafcbe872de 100644
--- a/Tools/VECTOStart/VECTOStart.csproj
+++ b/Tools/VECTOStart/VECTOStart.csproj
@@ -5,7 +5,7 @@
     <AssemblyName>VECTO</AssemblyName>
     <ApplicationIcon>Icon2.ico</ApplicationIcon>
     <RootNamespace>TUGraz.VECTO</RootNamespace>
-    <Configurations>Debug;Release;Deploy</Configurations>
+    <Configurations>Debug;Release;Deploy;MockupDeploy</Configurations>
     <TargetFrameworks>net45</TargetFrameworks>
     <DefineConstants />
   </PropertyGroup>
diff --git a/VECTO.sln b/VECTO.sln
index 38119df7b8760691ca111fdeedee85ef88184aff..cdc2fed5e6dfbbc2cf61f6eaae1c7250f583b603 100644
--- a/VECTO.sln
+++ b/VECTO.sln
@@ -5,9 +5,9 @@ VisualStudioVersion = 17.1.32414.318
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "VECTO", "VECTO\VECTO.vbproj", "{AAC0F132-0A9F-45B3-B682-77AC9B24B352}"
 	ProjectSection(ProjectDependencies) = postProject
-		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}
 		{33F9848E-9257-4BE2-915F-68E748AEB204} = {33F9848E-9257-4BE2-915F-68E748AEB204}
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391}
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}
 	EndProjectSection
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectoCore", "VectoCore\VectoCore\VectoCore.csproj", "{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}"
@@ -56,30 +56,30 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ParameterDocumentation", ".
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOStart", "Tools\VECTOStart\VECTOStart.csproj", "{D47DF5C7-CD92-4388-A18F-1620630DB437}"
 	ProjectSection(ProjectDependencies) = postProject
-		{C5A75A10-0726-4FCA-B350-2F1694E1EABE} = {C5A75A10-0726-4FCA-B350-2F1694E1EABE}
-		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA} = {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}
-		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} = {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}
-		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}
-		{B673E12F-D323-4C4C-8805-9915B2C72D3D} = {B673E12F-D323-4C4C-8805-9915B2C72D3D}
-		{AAC0F132-0A9F-45B3-B682-77AC9B24B352} = {AAC0F132-0A9F-45B3-B682-77AC9B24B352}
-		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}
-		{9FD67139-5120-4E64-9210-DD0A070903EA} = {9FD67139-5120-4E64-9210-DD0A070903EA}
 		{083F6B3C-9529-448F-AF1D-D0889852B918} = {083F6B3C-9529-448F-AF1D-D0889852B918}
-		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} = {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}
-		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}
-		{E8B0B447-1A54-4BEC-A160-AF0017000781} = {E8B0B447-1A54-4BEC-A160-AF0017000781}
-		{760C1C5B-A767-463E-BA85-F0BCFC23A550} = {760C1C5B-A767-463E-BA85-F0BCFC23A550}
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9} = {165739A9-C28D-4B82-96A9-8D063BEC22B9}
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6} = {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}
-		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB} = {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}
-		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A} = {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}
 		{33F9848E-9257-4BE2-915F-68E748AEB204} = {33F9848E-9257-4BE2-915F-68E748AEB204}
-		{7C364099-9B85-473A-8A42-BBEBE4798FF5} = {7C364099-9B85-473A-8A42-BBEBE4798FF5}
-		{165739A9-C28D-4B82-96A9-8D063BEC22B9} = {165739A9-C28D-4B82-96A9-8D063BEC22B9}
-		{79A066AD-69A9-4223-90F6-6ED5D2D084F4} = {79A066AD-69A9-4223-90F6-6ED5D2D084F4}
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391}
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} = {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} = {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D} = {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550} = {760C1C5B-A767-463E-BA85-F0BCFC23A550}
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4} = {79A066AD-69A9-4223-90F6-6ED5D2D084F4}
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5} = {7C364099-9B85-473A-8A42-BBEBE4798FF5}
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22} = {7E9172D4-07E3-4077-814E-7117AB2B3E22}
-		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} = {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}
-		{60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391}
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB} = {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}
+		{9FD67139-5120-4E64-9210-DD0A070903EA} = {9FD67139-5120-4E64-9210-DD0A070903EA}
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} = {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352} = {AAC0F132-0A9F-45B3-B682-77AC9B24B352}
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D} = {B673E12F-D323-4C4C-8805-9915B2C72D3D}
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE} = {C5A75A10-0726-4FCA-B350-2F1694E1EABE}
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A} = {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}
+		{E8B0B447-1A54-4BEC-A160-AF0017000781} = {E8B0B447-1A54-4BEC-A160-AF0017000781}
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA} = {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}
 	EndProjectSection
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOConsoleStart", "Tools\VECTOConsoleStart\VECTOConsoleStart.csproj", "{9FD67139-5120-4E64-9210-DD0A070903EA}"
@@ -99,10 +99,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HashingCmdStart", "Tools\Ha
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOMultistage", "Tools\VECTOMultistageStart\VECTOMultistage.csproj", "{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}"
 EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VectoMockup", "VectoMockup", "{927F1B17-8075-4185-A324-92971D2FB020}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectoMockup", "VectoMockup\VectoMockup\VectoMockup.csproj", "{8E8F5C65-501E-4AAC-97DE-10DD283883D2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectoMockupTest", "VectoMockup\VectoMockupTest\VectoMockupTest.csproj", "{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}"
+	ProjectSection(ProjectDependencies) = postProject
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2} = {8E8F5C65-501E-4AAC-97DE-10DD283883D2}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Deploy|Any CPU = Deploy|Any CPU
+		MockupDebug|Any CPU = MockupDebug|Any CPU
+		MockupDeploy|Any CPU = MockupDeploy|Any CPU
+		MockupRelease|Any CPU = MockupRelease|Any CPU
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
@@ -110,143 +122,294 @@ Global
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupRelease|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.MockupRelease|Any CPU.Build.0 = MockupRelease|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.Build.0 = Release|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupRelease|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.MockupRelease|Any CPU.Build.0 = MockupRelease|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Release|Any CPU.Build.0 = Release|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupRelease|Any CPU.ActiveCfg = Debug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.MockupRelease|Any CPU.Build.0 = Debug|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{E8B0B447-1A54-4BEC-A160-AF0017000781}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Release|Any CPU.Build.0 = Release|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Release|Any CPU.Build.0 = Release|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Release|Any CPU.Build.0 = Release|Any CPU
 		{33F9848E-9257-4BE2-915F-68E748AEB204}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{33F9848E-9257-4BE2-915F-68E748AEB204}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{33F9848E-9257-4BE2-915F-68E748AEB204}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{33F9848E-9257-4BE2-915F-68E748AEB204}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{33F9848E-9257-4BE2-915F-68E748AEB204}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{33F9848E-9257-4BE2-915F-68E748AEB204}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{33F9848E-9257-4BE2-915F-68E748AEB204}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{33F9848E-9257-4BE2-915F-68E748AEB204}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{33F9848E-9257-4BE2-915F-68E748AEB204}.Release|Any CPU.Build.0 = Release|Any CPU
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDeploy|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupDeploy|Any CPU.Build.0 = MockupRelease|Any CPU
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupRelease|Any CPU.ActiveCfg = MockupRelease|Any CPU
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.MockupRelease|Any CPU.Build.0 = MockupRelease|Any CPU
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|Any CPU.Build.0 = Release|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|Any CPU.Build.0 = Release|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Release|Any CPU.Build.0 = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Release|Any CPU.Build.0 = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Release|Any CPU.Build.0 = Release|Any CPU
 		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Deploy|Any CPU.ActiveCfg = Deploy|Any CPU
 		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Deploy|Any CPU.Build.0 = Deploy|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDeploy|Any CPU.ActiveCfg = MockupDeploy|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupDeploy|Any CPU.Build.0 = MockupDeploy|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Release|Any CPU.Build.0 = Release|Any CPU
 		{9FD67139-5120-4E64-9210-DD0A070903EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{9FD67139-5120-4E64-9210-DD0A070903EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9FD67139-5120-4E64-9210-DD0A070903EA}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{9FD67139-5120-4E64-9210-DD0A070903EA}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{9FD67139-5120-4E64-9210-DD0A070903EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{9FD67139-5120-4E64-9210-DD0A070903EA}.Release|Any CPU.Build.0 = Release|Any CPU
 		{083F6B3C-9529-448F-AF1D-D0889852B918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{083F6B3C-9529-448F-AF1D-D0889852B918}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{083F6B3C-9529-448F-AF1D-D0889852B918}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{083F6B3C-9529-448F-AF1D-D0889852B918}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{083F6B3C-9529-448F-AF1D-D0889852B918}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{083F6B3C-9529-448F-AF1D-D0889852B918}.Release|Any CPU.Build.0 = Release|Any CPU
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDebug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDebug|Any CPU.Build.0 = Debug|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupDeploy|Any CPU.Build.0 = Release|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.MockupRelease|Any CPU.Build.0 = Release|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupDebug|Any CPU.ActiveCfg = MockupDebug|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupDebug|Any CPU.Build.0 = MockupDebug|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupDeploy|Any CPU.ActiveCfg = Release|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.MockupRelease|Any CPU.ActiveCfg = Release|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -269,6 +432,8 @@ Global
 		{083F6B3C-9529-448F-AF1D-D0889852B918} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
 		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
 		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
+		{8E8F5C65-501E-4AAC-97DE-10DD283883D2} = {927F1B17-8075-4185-A324-92971D2FB020}
+		{EC0D4019-BBE6-431C-90E1-BD4AAEC0BF88} = {927F1B17-8075-4185-A324-92971D2FB020}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {B38F3172-132E-43F7-9C4B-5FDC3A28C051}
diff --git a/VECTO/GUI/MainForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb
index 042e6cfa3300b10baf0116b0925d8ff450b3cd3c..af84f17fa96ca94f3c02e83fcbc5fba09272c236 100644
--- a/VECTO/GUI/MainForm.Designer.vb
+++ b/VECTO/GUI/MainForm.Designer.vb
@@ -969,7 +969,9 @@ Partial Class MainForm
         Me.MinimumSize = New System.Drawing.Size(1170, 725)
         Me.Name = "MainForm"
         Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+
         Me.Text = "VECTO"
+
         Me.StatusBAR.ResumeLayout(false)
         Me.StatusBAR.PerformLayout
         Me.TabControl1.ResumeLayout(false)
diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb
index 252bd4402bc425526ab7c668d781d133eec6330f..ae841523db8b44bc79ead50b7a19189659b0ac92 100644
--- a/VECTO/GUI/MainForm.vb
+++ b/VECTO/GUI/MainForm.vb
@@ -340,6 +340,10 @@ Public Class MainForm
             Text = "VECTO" & VectoSimulationCore.BranchSuffix & " " & COREvers
         End If
 
+#If MOCKUP Then
+        Text += " [MOCKUP]"
+#End If
+
         If Cfg.DeclMode Then
             _lastModeName = "Declaration"
         Else
@@ -1071,7 +1075,7 @@ lbFound:
                                          .Message = "Finished Reading Data for job: " + jobFile})
 
             Catch ex As Exception
-                MsgBox($"ERROR running job {jobFile}: {ex.Message}", MsgBoxStyle.Critical)
+                MsgBox($"ERROR running job {jobFile}: {ex.Message} {vbCrLf} {ex.InnerException?.Message}", MsgBoxStyle.Critical)
                 sender.ReportProgress(0, New VectoProgress With {.Target = "ListBoxError", .Message = ex.Message})
                 Return
             End Try
@@ -1105,24 +1109,23 @@ lbFound:
             Dim sumProgress As Double = progress.Sum(Function(pair) pair.Value.Progress)
             Dim duration As Double = (DateTime.Now() - start).TotalSeconds
 
-            sender.ReportProgress(Convert.ToInt32((sumProgress*100.0)/progress.Count),
+           
+                sender.ReportProgress(Convert.ToInt32((sumProgress*100.0)/progress.Count),
                                   New VectoProgress With {.Target = "Status",
                                      .Message = $"Duration: {duration:0}s, Current Progress: {(sumProgress/progress.Count):P} ({ _
                                      String.Join(", ", progress.Select(Function(pair) $"{pair.Value.Progress,4:P}"))})"})
 
-            Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) =
-                    progress.Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).
-                    ToDictionary(
-                        Function(pair) pair.Key, Function(pair) pair.Value)
+            Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) = New Dictionary(Of Integer,JobContainer.ProgressEntry)(
+                progress.Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value))
+                    
             PrintRuns(justFinished, fileWriters)
             finishedRuns.AddRange(justFinished.Select(Function(pair) pair.Key))
             Thread.Sleep(100)
         End While
 
-        Dim remainingRuns As Dictionary(Of Integer, JobContainer.ProgressEntry) =
-                jobContainer.GetProgress().Where(
-                    Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).
-                ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value)
+        Dim remainingRuns As Dictionary(Of Integer, JobContainer.ProgressEntry) = New Dictionary(Of Integer,JobContainer.ProgressEntry)(jobContainer.GetProgress().Where(
+            Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value))
+                
         PrintRuns(remainingRuns, fileWriters)
 
         finishedRuns.Clear()
@@ -1202,9 +1205,10 @@ lbFound:
     Private Shared Sub PrintRuns(progress As Dictionary(Of Integer, JobContainer.ProgressEntry),
                                  fileWriters As Dictionary(Of Integer, FileOutputWriter))
         For Each p As KeyValuePair(Of Integer, JobContainer.ProgressEntry) In progress
-            Dim modFilename As String = fileWriters(p.Key).GetModDataFileName(p.Value.RunName, p.Value.CycleName,
+            Dim modFilename As String = if(fileWriters.ContainsKey(p.Key) , fileWriters(p.Key).GetModDataFileName(p.Value.RunName, p.Value.CycleName,
                                                                               p.Value.RunSuffix +
-                                                                              If(Cfg.Mod1Hz, "_1Hz", ""))
+                                                                              If(Cfg.Mod1Hz, "_1Hz", "")) , "")
+
 
             Dim runName As String = $"{p.Value.RunName} {p.Value.CycleName} {p.Value.RunSuffix}"
 
diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb
index cf173ef1f4ad1b525c228ee987fadc3c262d099a..6d00b176028bf9b51d6ad63e735f555d84a3c949 100644
--- a/VECTO/Input Files/Engine.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -686,6 +686,7 @@ Public Class DummyVehicle
 	Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID
 	Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev
 	Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower
+	Public ReadOnly Property IVehicleDeclarationInputData_VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType
 
 	Public Property AirdragInputData As IAirdragDeclarationInputData Implements IVehicleComponentsDeclaration.AirdragInputData
 	Public Property IVehicleComponentsEngineering_GearboxInputData As IGearboxEngineeringInputData Implements IVehicleComponentsEngineering.GearboxInputData
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index 3fc73cbb8ef53a46a77ad77f060c8f980b63acfe..a28e7c3000fce595f2c6d489d3a4fdc565dfeeac 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -893,6 +893,7 @@ Public Class MockEngineeringVehicle
     Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID
     Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev
     Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower
+    Public ReadOnly Property IVehicleDeclarationInputData_VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType
 
     Public Property AirdragInputData As IAirdragEngineeringInputData _
         Implements IVehicleComponentsEngineering.AirdragInputData
diff --git a/VECTO/Input Files/MockVehicleInputData.vb b/VECTO/Input Files/MockVehicleInputData.vb
index fb5c35d2056c61d62f000957641b252ea60c9228..2777c074744de197ff0c01a37977bc7958fa1dd3 100644
--- a/VECTO/Input Files/MockVehicleInputData.vb	
+++ b/VECTO/Input Files/MockVehicleInputData.vb	
@@ -69,4 +69,5 @@ Public Class MockVehicleInputData
     Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID
     Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev
     Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower
+    Public ReadOnly Property VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType
 End Class
\ No newline at end of file
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index 2b4958e2cea1d8973fc5181f72d56c251177dc54..64e65684f25f2bd39834d0a54af04c44d627b3ba 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -439,8 +439,9 @@ Public Class Vehicle
 
 	Public ReadOnly Property TransferredAirDragArea As SquareMeter Implements IAirdragDeclarationInputData.TransferredAirDragArea
 	Public ReadOnly Property AirDragArea_0 As SquareMeter Implements IAirdragDeclarationInputData.AirDragArea_0
+    Public ReadOnly Property IAirdragDeclarationInputData_XMLSource As XmlNode Implements IAirdragDeclarationInputData.XMLSource
 
-	Public ReadOnly Property IVehicleEngineeringInputData_Axles As IList(Of IAxleEngineeringInputData) _
+    Public ReadOnly Property IVehicleEngineeringInputData_Axles As IList(Of IAxleEngineeringInputData) _
 		Implements IAxlesEngineeringInputData.AxlesEngineering
 		Get
 			Return Axles.Cast(Of IAxleEngineeringInputData)().ToList()
@@ -935,6 +936,7 @@ end Property
 	Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID
 	Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev
 	Public ReadOnly Property MaxChargingPower As Watt Implements IVehicleDeclarationInputData.MaxChargingPower
+	Public ReadOnly Property IVehicleDeclarationInputData_VehicleType As VectoSimulationJobType Implements IVehicleDeclarationInputData.VehicleType
 
 	Public ReadOnly Property IAdvancedDriverAssistantSystemsEngineering_DataSource As DataSource Implements IAdvancedDriverAssistantSystemsEngineering.DataSource
 		Get
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index f1b4d12e4aafc9fef59bdcd372acac11145797b3..be55af27d43b130263c978a615c569a771b6187d 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -1,5 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
+	<PropertyGroup>
 	<OutputType>WinExe</OutputType>
 	<StartupObject>Sub Main</StartupObject>
 	<RootNamespace>TUGraz.VECTO</RootNamespace>
@@ -8,12 +8,28 @@
 	<OptionStrict>On</OptionStrict>
 	<UseWindowsForms>true</UseWindowsForms>
 	<MyType>WindowsForms</MyType>
-	<TargetFrameworks>net48</TargetFrameworks>
+		<TargetFrameworks>net45;net48;net6.0-windows</TargetFrameworks>
 	<TargetFrameworks Condition="'$(Configuration)' == 'Release'">net45;net48;net6.0-windows</TargetFrameworks>
 	<TargetFrameworks Condition="'$(Configuration)' == 'Deploy'">net45;net48;net6.0-windows</TargetFrameworks>
+		<TargetFrameworks Condition="'$(Configuration)' == 'MockupDeploy'">net45;net48;net6.0-windows</TargetFrameworks>
 	<DefineTrace>false</DefineTrace>
 	<DefineConstants />
-  </PropertyGroup>
+		<Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations>
+	</PropertyGroup>
+	<!--Final Define Constants https://developercommunity.visualstudio.com/t/vbprojuser-defineconstants-dont-affect/865956-->
+	<PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')">
+		<FinalDefineConstants>$(FinalDefineConstants),MOCKUP</FinalDefineConstants>
+		<DefineConstants>$(DefineConstants),MOCKUP</DefineConstants>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0-windows|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
   <ItemGroup>
     <None Remove="nlog.config" />
   </ItemGroup>
@@ -22,40 +38,52 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
   </ItemGroup>
- 
-  <ItemGroup>
+
+	<ItemGroup>
 	<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
 	<PackageReference Include="NLog" Version="4.7.13" />
-	<PackageReference Include="Ninject" Version="3.3.3">
+		<PackageReference Include="Ninject" Version="3.3.6">
 	  <PrivateAssets>all</PrivateAssets>
 	</PackageReference>
-  </ItemGroup>
+	</ItemGroup>
 
-  <ItemGroup Condition="'$(TargetFramework)' == 'net45'">
+	<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
 	<Reference Include="System.ComponentModel.DataAnnotations" />
 	<Reference Include="System.Windows.Forms.DataVisualization" />
-  </ItemGroup>
+	</ItemGroup>
 
-  <ItemGroup Condition="'$(TargetFramework)' == 'net48'">
+	<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
 	<Reference Include="System.ComponentModel.DataAnnotations" />
 	<Reference Include="System.Windows.Forms.DataVisualization" />
-  </ItemGroup>
+	</ItemGroup>
 
-  <ItemGroup Condition="'$(TargetFramework)' == 'net6.0-windows'">
-	<PackageReference Include="System.Data.SqlClient">
-	  <Version>4.8.3</Version>
-	</PackageReference>
-	<PackageReference Include="System.Windows.Forms.DataVisualization">
-	  <Version>1.0.0-prerelease.20110.1</Version>
-	</PackageReference>
-  </ItemGroup>
+	<ItemGroup Condition="'$(TargetFramework)' == 'net6.0-windows'">
+		<PackageReference Include="System.Data.SqlClient">
+		  <Version>4.8.3</Version>
+		</PackageReference>
+		<PackageReference Include="System.Windows.Forms.DataVisualization">
+		  <Version>1.0.0-prerelease.20110.1</Version>
+		</PackageReference>
+	</ItemGroup>
 
-  <ItemGroup>
+	<Choose>
+		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(&#xD;&#xA;         $(FinalDefineConstants), '^(.*,)*MOCKUP(,.*)*$'))">
+			<ItemGroup>
+				<ProjectReference Include="..\VectoMockup\VectoMockup\VectoMockup.csproj" />
+
+			</ItemGroup>
+			<!--<PropertyGroup>
+				<DefineConstants>MOCKUP</DefineConstants>
+			</PropertyGroup>-->
+		</When>
+	</Choose>
+
+	<ItemGroup>
 	<ProjectReference Include="..\VectoCommon\VectoCommon\VectoCommon.csproj" />
 	<ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" />
-  </ItemGroup>
-  
-  <ItemGroup>
+	</ItemGroup>
+
+	<ItemGroup>
 	<Import Include="Microsoft.VisualBasic" />
 	<Import Include="System" />
 	<Import Include="System.Collections" />
@@ -63,9 +91,9 @@
 	<Import Include="System.Drawing" />
 	<Import Include="System.Diagnostics" />
 	<Import Include="System.Windows.Forms" />
-  </ItemGroup>
+	</ItemGroup>
 
-  <ItemGroup>
+	<ItemGroup>
 	<Compile Update="My Project\Application.Designer.vb">
 	  <DesignTime>True</DesignTime>
 	  <AutoGen>True</AutoGen>
@@ -95,9 +123,9 @@
 	  <Generator>SettingsSingleFileGenerator</Generator>
 	  <LastGenOutput>Settings.Designer.vb</LastGenOutput>
 	</None>
-  </ItemGroup>
+	</ItemGroup>
 
-  <ItemGroup>
+	<ItemGroup>
 	<EmbeddedResource Update="Resources\4x2r.png" />
 	<EmbeddedResource Update="Resources\4x2rt.png" />
 	<EmbeddedResource Update="Resources\4x2tt.png" />
@@ -105,7 +133,7 @@
 	<EmbeddedResource Update="Resources\6x2rt.png" />
 	<EmbeddedResource Update="Resources\6x2tt.png" />
 	<EmbeddedResource Update="Resources\Undef.png" />
-  </ItemGroup>
+	</ItemGroup>
+
 
-  
 </Project>
\ No newline at end of file
diff --git a/VECTO3GUI/Util/XML/XMLCompletedBus.cs b/VECTO3GUI/Util/XML/XMLCompletedBus.cs
index 212977ea420d8eac43f68de93eb3b6d609edf07d..eb1cc9c1b01d5c7a51a02a2c30171b08d5035c98 100644
--- a/VECTO3GUI/Util/XML/XMLCompletedBus.cs
+++ b/VECTO3GUI/Util/XML/XMLCompletedBus.cs
@@ -177,7 +177,7 @@ namespace VECTO3GUI.Util.XML
 								new XElement(_v26 + XMLNames.Bus_Brakelights, auxBus?.BrakelightsLED),
 								new XElement(_v26 + XMLNames.Bus_Interiorlights, auxBus?.InteriorLightsLED))),
 							new XElement(_v26 + "HVAC",
-								new XElement(_v26 + XMLNames.Bus_SystemConfiguration, auxBus?.SystemConfiguration.GetXmlFormat()),
+								new XElement(_v26 + XMLNames.Bus_SystemConfiguration, auxBus?.SystemConfiguration.ToXmlFormat()),
 								new XElement(_v26 + XMLNames.Bus_CompressorType,
 									new XElement(_v26 + XMLNames.Bus_DriverAC, auxBus?.CompressorTypeDriver.GetLabel()),
 									new XElement(_v26 + XMLNames.Bus_PassengerAC, auxBus?.CompressorTypePassenger.GetLabel())),
diff --git a/VECTO3GUI2020/Model/Multistage/JSONJob.cs b/VECTO3GUI2020/Model/Multistage/JSONJob.cs
index fd1068f01b00d4b6ce5be9218614d45650a611b1..1723874b6863d0788df3bf603abfbca0cd858263 100644
--- a/VECTO3GUI2020/Model/Multistage/JSONJob.cs
+++ b/VECTO3GUI2020/Model/Multistage/JSONJob.cs
@@ -73,6 +73,7 @@ namespace VECTO3GUI2020.Model.Multistage
 		private string _interimStep;
 		private string _primaryVehicle;
 		private bool _completed;
+		private bool _runSimulation;
 
 		public string PrimaryVehicle
 		{
@@ -91,5 +92,11 @@ namespace VECTO3GUI2020.Model.Multistage
 			get => _completed;
 			set => SetProperty(ref _completed, value);
 		}
+
+		public bool RunSimulation
+		{
+			get => _runSimulation;
+			set => SetProperty(ref _runSimulation, value);
+		}
 	}
 }
\ No newline at end of file
diff --git a/VECTO3GUI2020/Ninject/DocumentModule.cs b/VECTO3GUI2020/Ninject/DocumentModule.cs
index a89e2a912886530bb8fe2cf8967687356c1d3f08..31fd37e9536e38507981f3da9f41c74de455d9bd 100644
--- a/VECTO3GUI2020/Ninject/DocumentModule.cs
+++ b/VECTO3GUI2020/Ninject/DocumentModule.cs
@@ -19,6 +19,9 @@ namespace VECTO3GUI2020.Ninject
 			Bind<IDocumentViewModel>().To<CreateVifViewModel>()
 				.Named(typeof(JSONInputDataV10_PrimaryAndStageInputBus).ToString());
 
+			Bind<IDocumentViewModel>().To<CompletedBusV7ViewModel>()
+				.Named(typeof(JSONInputDataCompletedBusFactorMethodV7).ToString());
+
 			//Bind<IDocumentViewModel>().To<MultistageJobViewModel>().Named(XmlDocumentType.MultistageOutputData.ToString());
 			//Bind<IDocumentViewModel>().To<DeclarationTrailerJobDocumentViewModel>().Named(XmlDocumentType.DeclarationTrailerJobData.ToString());
 
diff --git a/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs b/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs
index e62c06a5ebf839b3b8b31c2cbd98f09f9e2c1887..5f2bc79206ae6517b0fede51ce06d44229bf42c1 100644
--- a/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/Ninject/MultiStageViewModelFactory.cs
@@ -37,7 +37,7 @@ namespace VECTO3GUI2020.Ninject
 			return _multiStageVmFactoryDefaultInstanceProvider.GetNewMultistageJobViewModel();
 		}
 
-		public IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData)
+		public IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData)
 		{
 			return _multiStageVmFactoryDefaultInstanceProvider.GetMultiStageJobViewModel(inputData);
 		}
diff --git a/VECTO3GUI2020/Resources/ViewModelBindings.xaml b/VECTO3GUI2020/Resources/ViewModelBindings.xaml
index 15d5dbac5ca9e0e108154eb4f00c7126de78525d..989565530245f6076ecc56cb6d37d494b058d07d 100644
--- a/VECTO3GUI2020/Resources/ViewModelBindings.xaml
+++ b/VECTO3GUI2020/Resources/ViewModelBindings.xaml
@@ -18,7 +18,7 @@
     <DataTemplate x:Shared="False" DataType="{x:Type impl:JobListViewModel}">
         <views:JobListView />
     </DataTemplate>
-    <DataTemplate x:Shared="False" DataType="{x:Type viewModel:OutputViewModel}">
+    <DataTemplate x:Shared="False" DataType="{x:Type impl:OutputViewModel}">
         <views:OutputView />
     </DataTemplate>
 
diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs
index 7c53ed93ce9b6fe067ef365b0eec308dbbf414b0..d26aba13d57821cf8ebdb23559612c6f983273ab 100644
--- a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs
+++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLBusAuxiliariesWriter.cs
@@ -93,7 +93,7 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
 
 			if (_inputData.HVACAux != null) {
 				var hvacElement = new XElement(_defaultNamespace + "HVAC");
-				hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_SystemConfiguration, _inputData.HVACAux.SystemConfiguration.GetXmlFormat()));
+				hvacElement.Add(new XElement(_defaultNamespace + XMLNames.Bus_SystemConfiguration, _inputData.HVACAux.SystemConfiguration.ToXmlFormat()));
 
 				hvacElement.Add(GetHeatPumpGroupElement(
 					xmlNameWrapper:XMLNames.Bus_HeatPumpTypeDriver,
diff --git a/VECTO3GUI2020/Util/XML/XMLNamespaces.cs b/VECTO3GUI2020/Util/XML/XMLNamespaces.cs
index dc88a706c7c62a3e6df7f1f3438a267aac8bf22e..181aae8ba618131948b40b488ae1eda0fc85db39 100644
--- a/VECTO3GUI2020/Util/XML/XMLNamespaces.cs
+++ b/VECTO3GUI2020/Util/XML/XMLNamespaces.cs
@@ -35,6 +35,7 @@ namespace VECTO3GUI2020.Util.XML
 				{ V21, "v2.1"},
 				{ V23, "v2.3"},
 				{ V24, "v2.4"},
+				//{ V26, "v2.6"},
 				{ Di, "di"},
 			};
 
diff --git a/VECTO3GUI2020/VECTO3GUI2020.csproj b/VECTO3GUI2020/VECTO3GUI2020.csproj
index 49a079e8ee588fb2c2db90ce38466ea75590eb38..c76a66d831042dcae4217c022a706c1a0b22f757 100644
--- a/VECTO3GUI2020/VECTO3GUI2020.csproj
+++ b/VECTO3GUI2020/VECTO3GUI2020.csproj
@@ -12,12 +12,28 @@
     <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
     <TargetFrameworks>net48;net6.0-windows</TargetFrameworks>
     <DefineConstants />
+    <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations>
+</PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'">
+    <DebugType>full</DebugType>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0-windows|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+	<PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')">
+		<DefineConstants>$(DefineConstants);MOCKUP</DefineConstants>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0-windows|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="CommunityToolkit.Mvvm" Version="8.0.0" />
     <PackageReference Include="InteractiveDataDisplay.WPF" Version="1.0.0" NoWarn="NU1701" />
-    <PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" />
     <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" NoWarn="NU1701" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
+    <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" />
+    <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" />
     <PackageReference Include="PresentationFramework.Aero2" Version="1.0.1" NoWarn="NU1701" />
   </ItemGroup>
 
@@ -26,12 +42,23 @@
     <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" />
   </ItemGroup>
 
+	<Choose>
+		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(&#xD;&#xA;         $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))">
+			<ItemGroup>
+				<ProjectReference Include="..\VectoMockup\VectoMockup\VectoMockup.csproj" />
+			</ItemGroup>
+		</When>
+	</Choose>
+
+
+
   <ItemGroup>
     <InternalsVisibleTo Include="Vecto3GUI2020Test" />
   </ItemGroup>
 
   <ItemGroup>
-    <Compile Update="Properties\GUILabels.Designer.cs">
+
+	  <Compile Update="Properties\GUILabels.Designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
       <DependentUpon>GUILabels.resx</DependentUpon>
@@ -78,4 +105,22 @@
     <Resource Include="Resources\Images\JRC-About.png" />
     <Resource Include="Resources\Images\VECTO-About.png" />
   </ItemGroup>
+
+
+    <!--Workauround for build error-->
+	<!--https://github.com/dotnet/wpf/pull/6680-->
+    <!--https://github.com/dotnet/wpf/pull/6680#issuecomment-1183455941-->
+	<Target Name="RemoveDuplicateAnalyzers" BeforeTargets="CoreCompile">
+
+		<RemoveDuplicates Inputs="@(Analyzer)">
+			<Output TaskParameter="Filtered" ItemName="FilteredAnalyzer" />
+		</RemoveDuplicates>
+
+		<ItemGroup>
+			<Analyzer Remove="@(Analyzer)" />
+			<Analyzer Include="@(FilteredAnalyzer)" />
+		</ItemGroup>
+	</Target>
+
+    <!--END-->
 </Project>
\ No newline at end of file
diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs
index 45de76bb68f1528775f17a5666611bbe9382ee4b..34b651bed6260725322d0904c47bf7c8d54f4f26 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/Common/BackingStorage.cs
@@ -12,12 +12,11 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common
 	public class BackingStorage<T> : ObservableObject 
 		where T : INotifyPropertyChanged
 	{
-
-		delegate object GetterDelegate();
+		private delegate object GetterDelegate();
 		private IReadOnlyCollection<string> _observedProperties;
 		private T _observedObject;
 
-		private Dictionary<string, GetterDelegate> _getterDelegatesMap = new Dictionary<string, GetterDelegate>();
+		private Dictionary<string, MethodInfo> _getterMethodInfos = new Dictionary<string, MethodInfo>();
 		private Dictionary<string, Type> _propertyTypesMap = new Dictionary<string, Type>();
 		private IDictionary<string, IEqualityComparer> _equalityComparers = new Dictionary<string, IEqualityComparer>();
 
@@ -31,6 +30,10 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common
 			_observedProperties = new HashSet<string>(observedProperties);
 			_observedObject = observedObject;
 			observedObject.PropertyChanged += OnObservedPropertyChanged;
+			var list = new List<object>() {
+				true,
+				"Hi"
+			};
 		}
 
 		public bool UnsavedChanges
@@ -57,7 +60,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common
 				return;
 			}
 
-			if (!_getterDelegatesMap.ContainsKey(propertyName)) {
+			if (!_getterMethodInfos.ContainsKey(propertyName)) {
 				StorePropertyInfo(propertyName);
 			}
 
@@ -66,9 +69,10 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common
 
 		private void UpdateValue(string propertyName)
 		{
-			
-			var newValue = _getterDelegatesMap[propertyName]();
-			_currentValues[propertyName] = newValue;
+
+            //var newValue = ((GetterDelegate)_getterDelegatesMap[propertyName])();
+			var newValue = _getterMethodInfos[propertyName].Invoke(_observedObject, new object[] { });
+            _currentValues[propertyName] = newValue;
 			if (ValueHasChanged(newValue, propertyName)) {
 				_unsavedChanges[propertyName] = newValue;
 			} else {
@@ -111,8 +115,10 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common
 
 
 			var getMethod = propInfo.GetGetMethod();
-			var getterDelegate = (GetterDelegate)getMethod.CreateDelegate(typeof(GetterDelegate), _observedObject);
-			_getterDelegatesMap[propertyName] = getterDelegate;
+			
+			
+			//var getterDelegate = getMethod.CreateDelegate(typeof(Delegate), _observedObject);
+			_getterMethodInfos[propertyName] = getMethod;
 
 
 		}
diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs
index 3f65bb37e9544f510e25011f601b895a4b292ca5..fead452ebb871a5474d8aebe5f401e82b393b740 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/Common/ViewModelBase.cs
@@ -1,6 +1,7 @@
 using System.Windows;
 using System.Windows.Input;
-using Microsoft.Toolkit.Mvvm.Input;
+using CommunityToolkit.Mvvm.Input;
+
 using Ninject;
 using VECTO3GUI2020.Helper;
 using VECTO3GUI2020.Properties;
diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/CompletedBusV7ViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/CompletedBusV7ViewModel.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7c29ea1658c4b969582fec50e6e25f40c44cc07a
--- /dev/null
+++ b/VECTO3GUI2020/ViewModel/Implementation/Document/CompletedBusV7ViewModel.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.Utils;
+using VECTO3GUI2020.ViewModel.Implementation.Common;
+using VECTO3GUI2020.ViewModel.Interfaces;
+using VECTO3GUI2020.ViewModel.Interfaces.Document;
+
+namespace VECTO3GUI2020.ViewModel.Implementation.Document
+{
+    internal class CompletedBusV7ViewModel : ViewModelBase, IJobViewModel
+    {
+		private bool _selected;
+		private DataSource _dataSource;
+
+		private IMultistageVIFInputData _inputData;
+		private string _documentName;
+
+		#region Implementation of IDocumentViewModel
+
+		public CompletedBusV7ViewModel(IInputDataProvider inputData)
+		{
+			_dataSource = inputData.DataSource;
+			_inputData = inputData as IMultistageVIFInputData;
+			if (_inputData == null) {
+				throw new VectoException("Invalid input file");
+			}
+
+			_documentName = Path.GetFileNameWithoutExtension(_inputData.DataSource.SourceFile);
+		}
+
+		public string DocumentName => _documentName;
+
+		public XmlDocumentType? DocumentType => null;
+
+		public string DocumentTypeName => "CompletedBus";
+
+		public DataSource DataSource => _dataSource;
+
+		public IEditViewModel EditViewModel => null;
+
+		public bool Selected
+		{
+			get => _selected;
+			set => SetProperty(ref _selected, value);
+		}
+
+		public bool CanBeSimulated
+		{
+			get => true;
+			set => throw new NotImplementedException();
+		}
+
+		public IAdditionalJobInfoViewModel AdditionalJobInfoVm
+		{
+			get => throw new NotImplementedException();
+			set => throw new NotImplementedException();
+		}
+
+		#endregion
+	}
+}
diff --git a/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs b/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs
index df09dd609691d1079c1f041636d0d5387a3eebc6..77f8343fd9d3bb81be7417cc855eb9f8377f87d6 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/Document/SimulationOnlyDeclarationJob.cs
@@ -8,7 +8,7 @@ using VECTO3GUI2020.ViewModel.Interfaces.Document;
 
 namespace VECTO3GUI2020.ViewModel.Implementation.Document
 {
-	public class SimulationOnlyDeclarationJob : ViewModelBase, IDocumentViewModel, IJobViewModel
+	public class SimulationOnlyDeclarationJob : ViewModelBase, IJobViewModel
 	{
 		#region Implementation of IDocumentViewModel
 
diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs
index 2a9e3a1303811cda6c28ca726e20beab783c2051..bdd1d5d53f2074950b65b153cd4c849fd12aa4b8 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/JobEdit/Vehicle/VehicleViewModel.cs
@@ -361,6 +361,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle
 		public ArchitectureID ArchitectureID { get; }
 		public bool OvcHev { get; }
 		public Watt MaxChargingPower { get; }
+		public VectoSimulationJobType VehicleType { get; }
 
 		public virtual ConsumerTechnology DoorDriveTechnology
 		{
diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
index 64af8453d7fa9575b0a459a00968c71a33635648..93616a77dc4a99eacf53932202b35db1ddf2b460 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
@@ -12,7 +12,7 @@ using System.Windows.Data;
 using System.Windows.Input;
 using System.Xml;
 using System.Xml.Linq;
-using Microsoft.Toolkit.Mvvm.Input;
+using CommunityToolkit.Mvvm.Input;
 using Newtonsoft.Json;
 using NLog;
 using NLog.Targets;
@@ -284,7 +284,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 			var documentType = XMLHelper.GetDocumentType(xElement?.DocumentElement?.LocalName);
 			if (documentType == XmlDocumentType.MultistepOutputData)
 			{
-				var inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider;
+				var inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider;
 				return Task.FromResult(_multiStageViewModelFactory.GetMultiStageJobViewModel(inputDataProvider) as IDocumentViewModel);
 			}
 			else if (documentType == XmlDocumentType.DeclarationJobData)
@@ -472,6 +472,9 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 								case IMultistagePrimaryAndStageInputDataProvider primaryAndStage:
 									mode = ExecutionMode.Declaration;
 									break;
+								case IMultistageVIFInputData vifInputData:
+									mode = ExecutionMode.Declaration;
+									break;
 								default:
 									input = null;
 
@@ -495,7 +498,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 							} else if (XMLNames.VectoOutputMultistep.Equals(rootNode,
 								StringComparison.InvariantCultureIgnoreCase)) {
 								using (var reader = XmlReader.Create(fullFileName)) {
-									input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistageBusInputDataProvider, null);
+									input = new XMLDeclarationVIFInputData(xmlReader.Create(fullFileName) as IMultistepBusInputDataProvider, null);
 									FileWriter = new FileOutputVIFWriter(fullFileName,
 										(jobEntry as MultiStageJobViewModel_v0_1).ManufacturingStages?.Count ?? 0);
 								}
@@ -883,7 +886,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 		{
 			get
 			{
-				return _newVifCommand ?? (_newVifCommand = new Microsoft.Toolkit.Mvvm.Input.RelayCommand<bool>((b) => {
+				return _newVifCommand ?? (_newVifCommand = new RelayCommand<bool>((b) => {
 					var newVifViewModel = _multiStageViewModelFactory.GetCreateNewVifViewModel(b);
 					lock (_jobsLock) {
 						_jobs.Add(newVifViewModel);
diff --git a/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs
index c14355c9be665fad4de88691cb29487cb24bce4a..2d57fad4d1060fab475b11577282f0106a9578ae 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/MainWindowViewModel.cs
@@ -22,15 +22,14 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 		private IMainViewModel _currentViewModelTop;
 		#endregion
 
-		public MainWindowViewModel(IWindowHelper windowHelper, ISettingsViewModel settingsViewModel, IJobListViewModel jobListViewModel, IOutputViewModel outputViewModel, AboutViewModel aboutVm)
+		public MainWindowViewModel(IWindowHelper windowHelper, ISettingsViewModel settingsViewModel, IJobListViewModel jobListViewModel, AboutViewModel aboutVm)
 		{
 			_windowHelper = windowHelper;
 			_settingsViewModel = settingsViewModel;
 			_jobListVm = jobListViewModel;
 			_aboutViewModel = aboutVm;
 			_currentViewModelTop = _jobListVm;
-			_bottomView = outputViewModel;
-			
+
 			//_bottomView = new TestViewModel();
             _viewModels.Add("Jobs", _jobListVm);
             _viewModels.Add("Settings", _settingsViewModel);
@@ -63,21 +62,22 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 				}
 			}
 		}
-
-        public IMainViewModel CurrentViewModelBottom
-        {
-            get { return _bottomView; }
-            set { _bottomView = value; }
-        }
-
 		public IJobListViewModel JobListVm
 		{
 			get => _jobListVm;
 			set => SetProperty(ref _jobListVm, value);
 		}
 
+
+
+#if MOCKUP
+		
+		public string Version => "[MOCKUP] VECTO Multistep " + Assembly.GetExecutingAssembly().GetName().Version + " (For Testing and Feedback)";
+#else
 		public string Version => "VECTO Multistep " + Assembly.GetExecutingAssembly().GetName().Version + " (For Testing and Feedback)";
 
+#endif
+
 		#endregion
 
 		#region Commands
@@ -110,7 +110,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 
 
 
-		#endregion
+#endregion
 
 	}
 }
diff --git a/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs b/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs
index f5602802670104739d6436c62ae955ee880fbaa3..0c1d7c6bdad0e9d7b605359a1fc5c8889ec140ab 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/MessageEntry.cs
@@ -1,5 +1,6 @@
 using System;
-using Microsoft.Toolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.ComponentModel;
+
 
 namespace VECTO3GUI2020.ViewModel.Implementation
 {
diff --git a/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs
index 91208e1e715c15b1fea9408c88ed2cbe49d2ced5..fc84fc8ef8dff4dcb3ac9a5171e00ca5af072f03 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/OutputViewModel.cs
@@ -4,11 +4,10 @@ using System.Windows.Data;
 using System.Windows.Input;
 using VECTO3GUI2020.Helper;
 using VECTO3GUI2020.Util;
-using VECTO3GUI2020.ViewModel.Implementation;
 using VECTO3GUI2020.ViewModel.Implementation.Common;
 using VECTO3GUI2020.ViewModel.Interfaces;
 
-namespace VECTO3GUI2020.ViewModel
+namespace VECTO3GUI2020.ViewModel.Implementation
 {
 
 	public class OutputViewModel : ViewModelBase, IOutputViewModel
diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs
index 7dac41a3497ac9ef7c3a007910d0f67de784844d..f40e1b46dc07baaae678cad1c0d09b73cf084192 100644
--- a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs
@@ -1,4 +1,4 @@
-using Microsoft.Toolkit.Mvvm.Input;
+using CommunityToolkit.Mvvm.Input;
 using System.Collections.ObjectModel;
 using System.Threading.Tasks;
 using System.Windows.Input;
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs
index bb6775d561087fca633b18d5a41fafcc67edcf27..f1217cbed0bcf4a96faed06ca18997f2a595e97d 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/CreateVifViewModel.cs
@@ -5,7 +5,7 @@ using System.IO;
 using System.Text;
 using System.Windows;
 using System.Windows.Input;
-using Microsoft.Toolkit.Mvvm.Input;
+using CommunityToolkit.Mvvm.Input;
 using Newtonsoft.Json;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
@@ -66,6 +66,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			set => SetProperty(ref _completed, value);
 		}
 
+		private bool _runSimulation;
+
+		public bool RunSimulation
+		{
+			get => _runSimulation;
+			set => SetProperty(ref _runSimulation, value);
+		}
+
 		#region Labeling
 
 		private  string _vifType;
@@ -96,7 +104,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			_additionalJobInfo = additionalJobInfo;
 			SetupBackingStorage();
 			additionalJobInfo.SetParent(this);
-
+			
 
 			UpdateTitleAndDocumentName();
 			(this as INotifyPropertyChanged).PropertyChanged += CreateVifViewModel_PropertyChanged;
@@ -106,7 +114,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		{
 			_backingStorage = new BackingStorage<CreateVifViewModel>(this,
 				nameof(this.PrimaryInputPath),
-				nameof(this.StageInputPath));
+				nameof(this.StageInputPath), nameof(RunSimulation));
 			_backingStorage.PropertyChanged += (object s, PropertyChangedEventArgs e) => {
 				OnPropertyChanged(nameof(UnsavedChanges));
 			};
@@ -141,7 +149,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			IAdditionalJobInfoViewModel additionalJobInfo) : this(dialogHelper, inputDataReader, additionalJobInfo)
 		{
 			_completed = completed;
-		}
+			_runSimulation = completed;
+			UpdateTitleAndDocumentName();
+        }
 
 
 		private void SetInputData(IInputDataProvider inputData)
@@ -163,7 +173,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			}
 			
 
-			Completed = inputDataProvider.Completed ?? false;
+			Completed = inputDataProvider?.Completed ?? false;
+			RunSimulation = inputDataProvider?.SimulateResultingVIF ?? false;
 
 			DataSource = inputData.DataSource;
 			UpdateTitleAndDocumentName();
@@ -292,7 +303,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 				},
 				Body = new JSONJobBody() {
 					PrimaryVehicle = PathHelper.GetRelativePath(path, PrimaryInputPath),
-					InterimStep = PathHelper.GetRelativePath(path, StageInputPath)
+					InterimStep = PathHelper.GetRelativePath(path, StageInputPath),
+					Completed = Completed,
+					RunSimulation = RunSimulation,
 				}
 			};
 
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
index b71ee967568c69cf69c4d20c96350f2d22f76696..d692eb4ab9f0a6490c601944ffb06847f84a4f2a 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
@@ -812,6 +812,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		public ArchitectureID ArchitectureID { get; }
 		public bool OvcHev { get; }
 		public Watt MaxChargingPower { get; }
+		public VectoSimulationJobType VehicleType { get; }
 
 		#endregion
 
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs
index 4811f904c9caae3c645ddd41de77239b8ac7e455..2f35a076f48168456ecb17a21432480b103abc58 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAirdragViewModel.cs
@@ -262,5 +262,6 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		public SquareMeter TransferredAirDragArea => _airdragViewModel.TransferredAirDragArea;
 
 		public SquareMeter AirDragArea_0 => _airdragViewModel.AirDragArea_0;
+		public XmlNode XMLSource { get; }
 	}
 }
\ No newline at end of file
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
index 0e4fa28a6e30b84d0ac70e629f8d739340545ad8..927bc5a5224181604489e9d607d881fa03f20bc3 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
@@ -31,7 +31,7 @@ using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
 namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 {
 
-	public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistageBusInputDataProvider, IJobViewModel, IEditViewModel
+	public interface IMultiStageJobViewModel : IDeclarationMultistageJobInputData, IMultistageVIFInputData, IMultistepBusInputDataProvider, IJobViewModel, IEditViewModel
 	{
 		IManufacturingStageViewModel ManufacturingStageViewModel { get; }
 		bool Exempted { get; }
@@ -66,7 +66,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			set => SetProperty(ref _manufacturingStageViewModel, value);
 		}
 
-		public MultiStageJobViewModel_v0_1(IMultistageBusInputDataProvider inputData, 
+		public MultiStageJobViewModel_v0_1(IMultistepBusInputDataProvider inputData, 
 			IMultiStageViewModelFactory vmFactory, 
 			IMultistageDependencies multistageDependencies,
 			IXMLInputDataReader inputDataReader, 
@@ -200,7 +200,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 					writer = new FileOutputVIFWriter(outputFile, numberOfManufacturingStages);
 				}
 
-				var inputData = new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData);
+				var inputData = new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData, false);
 
 
 				var factory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, writer, null, null);
@@ -311,7 +311,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
         private readonly Lazy<IDialogHelper> _dialogHelper;
 		private readonly IMultistageDependencies _multistageDependencies;
 		private readonly DataSource _dataSource;
-		private readonly IMultistageBusInputDataProvider _inputData;
+		private readonly IMultistepBusInputDataProvider _inputData;
 		private bool _selected;
 		private readonly bool _exempted;
 		private readonly IJobListViewModel _jobListViewModel;
@@ -363,8 +363,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public IVehicleDeclarationInputData VehicleInputData => _manufacturingStageViewModel.Vehicle;
 
-		public IMultistageBusInputDataProvider MultistageJobInputData => this;
+		public IMultistepBusInputDataProvider MultistageJobInputData => this;
 
+		public bool SimulateResultingVIF => throw new NotImplementedException();
 
 		#endregion
 
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs
index b3bfb612b3134a43abc35ce54a3040a5330b73e0..6f7ae23bba1e830f892026f95f273a9a4117621c 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs
@@ -80,10 +80,10 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			{
 				return;
 			}
-			IMultistageBusInputDataProvider inputDataProvider = null;
+			IMultistepBusInputDataProvider inputDataProvider = null;
 			try
 			{
-				inputDataProvider = _inputDataReader.Create(fileName) as IMultistageBusInputDataProvider;
+				inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider;
 			}
 			catch (Exception e)
 			{
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs
index 250f3ae508d10562071621c0abd6366a4c023861..413202bc4a513a04e0faa81ec9a1b6db71d781ec 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs
@@ -6,9 +6,10 @@ using System.IO;
 using System.Windows;
 using System.Windows.Input;
 using System.Xml.Linq;
-using Microsoft.Toolkit.Mvvm.Input;
+using CommunityToolkit.Mvvm.Input;
 using Ninject;
 using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.Utils;
 using VECTO3GUI2020.Helper;
@@ -116,7 +117,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public IRelayCommand SaveInputDataCommand =>
 			_saveInputDataCommand ??
-			new Microsoft.Toolkit.Mvvm.Input.RelayCommand(() => { SaveInputDataExecute(filename: _vehicleInputDataFilePath); },
+			new CommunityToolkit.Mvvm.Input.RelayCommand(() => { SaveInputDataExecute(filename: _vehicleInputDataFilePath); },
 				() => _vehicleInputDataFilePath != null);
 
 		public ICommand SaveInputDataAsCommand =>
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
index 33cad2ad89c2b53d96dc056a0e7dad2cd348717b..cc48e57667c98b9967de9e5c78e3e4843781fc5b 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
@@ -43,7 +43,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces
 		IDocumentViewModel GetStageInputViewModel(bool exemptedVehicle);
 		IViewModelBase GetNewMultistageJobViewModel();
 
-		IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistageBusInputDataProvider inputData);
+		IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData);
 
 		IVehicleViewModel GetInterimStageVehicleViewModel();
 
diff --git a/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml b/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml
index 5be0ce48930362fcca7628109545f2fe13338a98..fdfeab02870f99c7aaeabfe2ac4bbc8a723d81ba 100644
--- a/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml
+++ b/VECTO3GUI2020/Views/Multistage/CreateVifView.xaml
@@ -23,6 +23,7 @@
                     <RowDefinition></RowDefinition>
                     <RowDefinition></RowDefinition>
                     <RowDefinition></RowDefinition>
+                    <RowDefinition></RowDefinition>
                 </Grid.RowDefinitions>
                 <Label Style="{DynamicResource LabelStyle1}">Select Primary Input</Label>
 
@@ -45,6 +46,11 @@
                     <Button DockPanel.Dock="Right" Command="{Binding RemoveStageInputCommand}" ContentTemplate="{StaticResource TrashIcon}" Width="30" Padding="4" Margin="4"/>
                     <customControls:FilePicker DockPanel.Dock="Left" Text="{Binding StageInputPath}" Command="{Binding SelectCompletedInputFileCommand}" />
                 </DockPanel>
+                <Label Grid.Row="4" DockPanel.Dock="Left" Style="{DynamicResource LabelStyle1}" Visibility="{Binding Completed, Converter={StaticResource BooleanToVisibilityConverter}}">Simulate Resulting VIF</Label>
+                <CheckBox Grid.Row="4" HorizontalAlignment="Right" IsChecked="{Binding RunSimulation, Mode=TwoWay}" IsEnabled="True" IsThreeState="False" Visibility="{Binding Completed, Converter={StaticResource BooleanToVisibilityConverter}}" VerticalAlignment="Center" Padding="4"></CheckBox>
+
+
+
             </Grid>
             <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right">
                 <Button Width="100" Style="{StaticResource MultiStageButtonStyle1}" Command="{Binding SaveJobAsCommand}">Save Job as ...</Button>
diff --git a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj
index 709802e110259afb2ea612c12eeab84f033a3b2e..cee4dd27f40ea0557101d5546b9831a0cd038a84 100644
--- a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj
+++ b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj
@@ -15,7 +15,7 @@
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
-    <PackageReference Include="Ninject" Version="3.3.3" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
     <PackageReference Include="NLog" Version="4.7.13" />
     <PackageReference Include="Moq" Version="4.16.1" />
   </ItemGroup>
diff --git a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj
index 101e922cd35337d3af8f5798aebb2386c55f2884..2ace8812e86edf3aed01411c7922960afd86053b 100644
--- a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj
+++ b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj
@@ -10,7 +10,7 @@
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
     <PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" />
     <PackageReference Include="Moq" Version="4.16.1" />
-    <PackageReference Include="Ninject" Version="3.3.3" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
   </ItemGroup>
diff --git a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
index 9cf11d8a5ce7b1c78f7bb2b29ce035c9733b078c..6eb5103bdf51a8728ac17f4c40f1ed8250a8cce6 100644
--- a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
@@ -146,7 +146,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			Assert.AreEqual(2, jobListVm.Jobs.Count);
 			Assert.AreEqual(result, jobListVm.Jobs[1].DataSource.SourceFile);
 
-			var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _testHelper.GetInputDataProvider(result) as IMultistepBusInputDataProvider;
 			Assert.NotNull(inputDataProvider);
 
 			//Check added Manufacturing Stage
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs
index c60f44b8302f12358ded371c6b873e341dd6adc3..80ce7c57160e455e443745fc972595c6facc6f93 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs
@@ -67,7 +67,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
 			return hvacConfig.ToString().Replace(Prefix, "");
 		}
 
-		public static string GetXmlFormat(this BusHVACSystemConfiguration? hvacConfiguration)
+		public static string ToXmlFormat(this BusHVACSystemConfiguration? hvacConfiguration)
 		{
 			if (hvacConfiguration == BusHVACSystemConfiguration.Unknown) {
 				return "0";
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs
index eac41660fbf229453d3080054117ff7f9b09e229..a18e51d9b6cea78cc18d44202186bed901045a7c 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs
@@ -54,7 +54,12 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
 
 		public static string GetLabel(this ConsumerTechnology? technology)
 		{
-			switch (technology) {
+			return technology?.GetLabel();
+		}
+		public static string GetLabel(this ConsumerTechnology technology)
+		{
+			switch (technology)
+			{
 				case ConsumerTechnology.Electrically:
 					return "Electric";
 				case ConsumerTechnology.Mechanically:
@@ -68,6 +73,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
 			}
 		}
 
+		public static string ToXMLFormat(this ConsumerTechnology technology)
+		{
+			return technology.GetLabel().ToLowerInvariant();
+		}
+
 		public static string ToXMLFormat(this ConsumerTechnology? technology)
 		{
 			return technology.GetLabel().ToLowerInvariant();
diff --git a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
index b97727778b32ecf03505bd77a671827ecd9b4e65..abc1aff1bff0d2c00922031823c6e5201b15d235 100644
--- a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
+++ b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
@@ -45,9 +45,10 @@ namespace TUGraz.VectoCommon.Hashing
 		Airdrag,
 		Tyre,
 		Vehicle,
-		VectoOutput,
+		VectoManufacturerReport,
 		VectoCustomerInformation,
 		VectoPrimaryVehicleInformation,
+		VectoInterimVehicleInformation,
 		VectoManufacturingStep, 
 		BatterySystem,
 		CapacitorSystem,
@@ -81,7 +82,7 @@ namespace TUGraz.VectoCommon.Hashing
 					return XMLNames.AxleWheels_Axles_Axle_Tyre;
 				case VectoComponents.Vehicle:
 					return XMLNames.Component_Vehicle;
-				case VectoComponents.VectoOutput:
+				case VectoComponents.VectoManufacturerReport:
 					return "VectoOutput";
 				case VectoComponents.VectoCustomerInformation:
 					return "VectoCustomerInformation";
@@ -127,12 +128,14 @@ namespace TUGraz.VectoCommon.Hashing
 					return "AD-";
 				case VectoComponents.Tyre:
 					return "TYRE-";
-				case VectoComponents.VectoOutput:
-					return "RESULT-";
+				case VectoComponents.VectoManufacturerReport:
+					return "MRF-";
 				case VectoComponents.VectoCustomerInformation:
-					return "COC-";
+					return "CIF-";
 				case VectoComponents.VectoPrimaryVehicleInformation:
-					return "PIF-";
+					return "VIF_P-";
+				case VectoComponents.VectoInterimVehicleInformation:
+					return "VIF_I-";
 				case VectoComponents.Vehicle:
 					return "VEH-";
 				case VectoComponents.VectoManufacturingStep:
@@ -160,7 +163,7 @@ namespace TUGraz.VectoCommon.Hashing
 		{
 			switch (component) {
 				case VectoComponents.VectoCustomerInformation:
-				case VectoComponents.VectoOutput:
+				case VectoComponents.VectoManufacturerReport:
 				case VectoComponents.VectoPrimaryVehicleInformation:
 				case VectoComponents.VectoManufacturingStep:
 					return true;
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 87eb17253b17f3685351d45e6d2d6a33a0608ea7..f883e870b81f22495f78f9f03b67609d7d2e3f71 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -32,6 +32,7 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using System.Xml;
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
@@ -154,14 +155,15 @@ namespace TUGraz.VectoCommon.InputData
 
 		bool HybridElectricHDV { get; }
 
-		bool DualFuelVehicle { get; }
+        bool DualFuelVehicle { get; }
 
-		Watt MaxNetPower1 { get; }
+        Watt MaxNetPower1 { get; }
 
 		Watt MaxNetPower2 { get; }
 
 		string ExemptedTechnology { get; }
 
+		// --- end
 
 		RegistrationClass? RegisteredClass { get; }
 
@@ -211,6 +213,8 @@ namespace TUGraz.VectoCommon.InputData
 
 		Watt MaxChargingPower { get; }
 
+		VectoSimulationJobType VehicleType { get; }
+
 	}
 
 	public interface IVehicleComponentsDeclaration
@@ -399,6 +403,9 @@ namespace TUGraz.VectoCommon.InputData
 		SquareMeter TransferredAirDragArea { get; } // P246
 
 		SquareMeter AirDragArea_0 { get; } // P245
+
+		XmlNode XMLSource { get; }
+
 	}
 
 	public interface IRetarderInputData : IComponentInputData
@@ -963,6 +970,15 @@ namespace TUGraz.VectoCommon.InputData
 		IList<IBusAuxElectricStorageDeclarationInputData> ElectricStorage { get; }
 	}
 
+	public static class ElectricSupplyDeclarationDataHelper
+	{
+		public static Watt GetMaxAlternatorPower(this IElectricSupplyDeclarationData electricSupply)
+		{
+			return electricSupply.Alternators?.Select(alt => alt.RatedCurrent * alt.RatedVoltage)?
+				.Max();
+		}
+	}
+
 	public interface IElectricConsumersDeclarationData
 	{
 		bool? InteriorLightsLED { get; }
@@ -1071,7 +1087,7 @@ namespace TUGraz.VectoCommon.InputData
 		Kilogram TotalVehicleMass { get; }
 		Kilogram Payload { get; }
 		double PassengerCount { get; }
-		string FuelMode { get; }
+		//string FuelMode { get; }
 	}
 
 
@@ -1156,7 +1172,7 @@ namespace TUGraz.VectoCommon.InputData
 			switch (type)
 			{
 				case CompressorDrive.electrically: return nameof(CompressorDrive.electrically);
-				case CompressorDrive.mechanically: return nameof(CompressorDrive.electrically);
+				case CompressorDrive.mechanically: return nameof(CompressorDrive.mechanically);
 				default: return null;
 			}
 		}
@@ -1179,6 +1195,7 @@ namespace TUGraz.VectoCommon.InputData
 
 	public enum ArchitectureID
 	{
+		UNKNOWN,
 		E2,
 		E3,
 		E4,
diff --git a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs
index e22dcc4707a8abb1b4b75140946d9b213d832b25..8fe0e1977dd98ed312ec05cdf69fa375386d12fc 100644
--- a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs
+++ b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs
@@ -89,7 +89,7 @@ namespace TUGraz.VectoCommon.InputData
 	
 
 
-	public interface IMultistageBusInputDataProvider : IDeclarationInputDataProvider
+	public interface IMultistepBusInputDataProvider : IDeclarationInputDataProvider
 	{
 		new IDeclarationMultistageJobInputData JobInputData { get; }
 	}
@@ -98,6 +98,8 @@ namespace TUGraz.VectoCommon.InputData
 	{
 		IDeclarationInputDataProvider PrimaryVehicle { get; }
 		IVehicleDeclarationInputData StageInputData { get; }
+
+		bool SimulateResultingVIF { get; }
 	}
 
 
@@ -124,7 +126,8 @@ namespace TUGraz.VectoCommon.InputData
 	public interface IMultistageVIFInputData :  IInputDataProvider
 	{
 		IVehicleDeclarationInputData VehicleInputData { get; }
-		IMultistageBusInputDataProvider MultistageJobInputData { get; }
+		IMultistepBusInputDataProvider MultistageJobInputData { get; }
+		bool SimulateResultingVIF { get; }
 	}
 }
 
diff --git a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs
index 4de78fb9e5c0fc74022b08068081c649fd80653b..fb5868430d7314ed29c02530a03ee33a53bf51e8 100644
--- a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs
+++ b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs
@@ -31,6 +31,7 @@
 
 using System;
 using System.Diagnostics.CodeAnalysis;
+using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
 
 namespace TUGraz.VectoCommon.Models
@@ -73,6 +74,20 @@ namespace TUGraz.VectoCommon.Models
 					throw new ArgumentOutOfRangeException("self", self, null);
 			}
 		}
+
+		public static string ToXMLFormat(this AxleType self)
+		{
+			switch (self) {
+				case AxleType.VehicleDriven:
+					return "VehicleDriven";
+				case AxleType.VehicleNonDriven:
+					return "VehicleNonDriven";
+				case AxleType.Trailer:
+					return "Trailer";
+				default:
+					throw new ArgumentOutOfRangeException(nameof(self), self, null);
+			}
+		}
 	}
 
 	public static class AxleConfigurationHelper
diff --git a/VectoCommon/VectoCommon/Models/GearboxType.cs b/VectoCommon/VectoCommon/Models/GearboxType.cs
index b10f2acc2edaeb7ced1c902c3b08f6ae5e5fbcd8..dd7b6a8524f5e4e6df4531c04e49292e26dbd829 100644
--- a/VectoCommon/VectoCommon/Models/GearboxType.cs
+++ b/VectoCommon/VectoCommon/Models/GearboxType.cs
@@ -94,7 +94,7 @@ namespace TUGraz.VectoCommon.Models
 				case GearboxType.ATSerial:     return "APT-S";
 				case GearboxType.ATPowerSplit: return "APT-P";
 				case GearboxType.APTN:         return "APT-N";
-				case GearboxType.IHPC:         return "IHPC";
+				case GearboxType.IHPC:         return "IHPC Type 1";
 				default: throw new ArgumentOutOfRangeException("GearboxType", type, null);
 			}
 		}
diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
index 260883a5acb273a05bf042eaf24a73f36cab8ad0..14e902d6fdd8d86bec173eb323edb11bad15d25f 100644
--- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
+++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
@@ -2,11 +2,10 @@
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Utils;
 
-namespace TUGraz.VectoCommon.InputData
-{
+namespace TUGraz.VectoCommon.InputData {
 	public enum PowertrainPosition
 	{
-		HybridPositionNotSet, // this has to be the first entry so that it is used as default for not initialized fields!
+		HybridPositionNotSet, // this has to be the first entrie so that it is used as default for not initialized fields!
 		HybridP0,
 		HybridP1,
 		HybridP2,
@@ -19,7 +18,6 @@ namespace TUGraz.VectoCommon.InputData
 		BatteryElectricE4,
 		BatteryElectricE3,
 		BatteryElectricE2,
-
 		IEPC,
 		IHPC
 	}
@@ -76,8 +74,6 @@ namespace TUGraz.VectoCommon.InputData
 					return pos.ToString().Replace(HybridPrefix, "").Replace("_", ".");
 				case PowertrainPosition.GEN:
 					return nameof(PowertrainPosition.GEN);
-				case PowertrainPosition.HybridPositionNotSet:
-					return "Position not set";
 			}
 			return pos.ToString().Replace(BatteryElectricPrefix, "").Replace("B", "E");
 		}
@@ -110,6 +106,33 @@ namespace TUGraz.VectoCommon.InputData
 			}
 		}
 
+		public static string ToXmlFormat(this PowertrainPosition pos)
+		{
+			switch (pos) {
+				case PowertrainPosition.HybridPositionNotSet:
+					throw new ArgumentException("Hybrid position not set");
+				case PowertrainPosition.HybridP0: 
+				case PowertrainPosition.HybridP1:
+				case PowertrainPosition.HybridP2:
+				case PowertrainPosition.HybridP2_5:
+				case PowertrainPosition.HybridP3:
+				case PowertrainPosition.HybridP4:
+				case PowertrainPosition.BatteryElectricE4:
+				case PowertrainPosition.BatteryElectricE3:
+				case PowertrainPosition.BatteryElectricE2:
+					return GetPositionWithoutPrefix(pos.ToString());
+				case PowertrainPosition.GEN:
+					return "GEN";
+				default:
+					throw new ArgumentOutOfRangeException(nameof(pos), pos, null);
+			}
+		}
+
+		private static string GetPositionWithoutPrefix(string position)
+		{
+			return position.Replace(BatteryElectricPrefix, "").Replace("E", "").Replace(HybridPrefix, "").Replace("P", "")
+				.Replace("_", ".");
+		}
 		public static bool IsSerialHybrid(this PowertrainPosition pos)
 		{
 			return IsBatteryElectric(pos);
diff --git a/VectoCommon/VectoCommon/Models/VehicleCategory.cs b/VectoCommon/VectoCommon/Models/VehicleCategory.cs
index 083aca805f5b7e96b1bfff493511262707d6da76..3e66b51cfd69e38668e93b8c8cb68a5d9f60a310 100644
--- a/VectoCommon/VectoCommon/Models/VehicleCategory.cs
+++ b/VectoCommon/VectoCommon/Models/VehicleCategory.cs
@@ -30,6 +30,7 @@
 */
 
 using System;
+using Microsoft.Win32.SafeHandles;
 
 namespace TUGraz.VectoCommon.Models
 {
@@ -50,6 +51,31 @@ namespace TUGraz.VectoCommon.Models
 
 	public static class VehicleCategoryHelper
 	{
+		public static string PrimaryBus = "PrimaryBus";
+		public static string Lorry = "Lorry";
+		public static string CompletedBus = "CompletedBus";
+		public static string Van = "Van";
+		public static string GetVehicleType(this VehicleCategory category)
+		{
+			switch (category) {
+				case VehicleCategory.RigidTruck:
+				case VehicleCategory.Tractor:
+					return Lorry;
+					break;
+				case VehicleCategory.HeavyBusPrimaryVehicle:
+					return PrimaryBus;
+					break;
+				case VehicleCategory.HeavyBusCompletedVehicle:
+					return CompletedBus;
+					break;
+				case VehicleCategory.Van:
+					return Van;
+				default:
+					return category.GetLabel();
+			}
+		}
+
+
 		public static string GetLabel(this VehicleCategory category)
 		{
 			switch (category) {
@@ -114,6 +140,8 @@ namespace TUGraz.VectoCommon.Models
 					return "Bus";
 				case VehicleCategory.HeavyBusCompletedVehicle:
 					return "Bus";
+				case VehicleCategory.Van:
+					return Van;
 				default:
 					throw new ArgumentOutOfRangeException("vehicleCategory", vehicleCategory, null);
 			}
diff --git a/VectoCommon/VectoCommon/Models/VehicleClass.cs b/VectoCommon/VectoCommon/Models/VehicleClass.cs
index 696866fca683b99b10f2f7939e88ceb7f586d0ff..5ae14c8a307325fe92c70e6279599070543b5e54 100644
--- a/VectoCommon/VectoCommon/Models/VehicleClass.cs
+++ b/VectoCommon/VectoCommon/Models/VehicleClass.cs
@@ -170,7 +170,7 @@ namespace TUGraz.VectoCommon.Models
 
 		public static string GetClassNumber(this VehicleClass hdvClass)
 		{
-			return hdvClass == VehicleClass.Unknown ? "-" : hdvClass.ToString().Substring(Prefix.Length);
+			return hdvClass == VehicleClass.Unknown ? "-" : hdvClass.ToString().Substring(Prefix.Length).Replace('_', '/');
 		}
 
 		public static bool IsMediumLorry(this VehicleClass vehicleClass)
@@ -300,5 +300,33 @@ namespace TUGraz.VectoCommon.Models
 				default: return false;
 			}
 		}
+
+		public static bool IsHeavyLorry(this VehicleClass vehicleClass)
+		{
+			switch (vehicleClass) {
+					case VehicleClass.Class1s:
+					case VehicleClass.Class0:
+					case VehicleClass.Class1:
+					case VehicleClass.Class2:
+					case VehicleClass.Class3:
+					case VehicleClass.Class4:
+					case VehicleClass.Class5:
+					case VehicleClass.Class6:
+					case VehicleClass.Class7:
+					case VehicleClass.Class8:
+					case VehicleClass.Class9:
+					case VehicleClass.Class10:
+					case VehicleClass.Class11:
+					case VehicleClass.Class12:
+					case VehicleClass.Class13:
+					case VehicleClass.Class14:
+					case VehicleClass.Class15:
+					case VehicleClass.Class16:
+					case VehicleClass.Class17:
+						return true;
+					default:
+						return false;
+			}
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index df5e7ba1f40c0ee9676e350dadcc76d464021ba0..5bd99a03692d08fe4b511aec8593a07feeb8bce3 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -19,7 +19,7 @@ namespace TUGraz.VectoCommon.Resources {
     // class via a tool like ResGen or Visual Studio.
     // To add or remove a member, edit your .ResX file then rerun ResGen
     // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     public class XMLNames {
@@ -1068,6 +1068,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Clutch.
+        /// </summary>
+        public static string BusAux_Clutch {
+            get {
+                return ResourceManager.GetString("BusAux_Clutch", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to ElectricSystem.
         /// </summary>
@@ -1473,6 +1482,114 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to ConventionalLorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_ConventionalLorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_ConventionalLorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Exempted_CompletedBusOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_Exempted_CompletedBusOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_Exempted_CompletedBusOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Exempted_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_Exempted_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_Exempted_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV_IEPC_S_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_HEV_IEPC_S_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_HEV_IEPC_S_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV_Px_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_HEV_Px_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_HEV_Px_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV_S2_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_HEV_S2_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_HEV_S2_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV_S3_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_HEV_S3_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_HEV_S3_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV_S4_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_HEV_S4_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_HEV_S4_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV_E2_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_PEV_E2_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_PEV_E2_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV_E3_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_PEV_E3_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_PEV_E3_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV_E4_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_PEV_E4_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_PEV_E4_LorryOutputType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV_IEPC_LorryOutputType.
+        /// </summary>
+        public static string CIF_OutputDataType_PEV_IEPC_LorryOutputType {
+            get {
+                return ResourceManager.GetString("CIF_OutputDataType_PEV_IEPC_LorryOutputType", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to ADC.
         /// </summary>
@@ -2355,6 +2472,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to gear.
+        /// </summary>
+        public static string ElectricMachine_P2_5GearRatios_Gear_Attr {
+            get {
+                return ResourceManager.GetString("ElectricMachine_P2_5GearRatios_Gear_Attr", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Position.
         /// </summary>
@@ -3229,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);
             }
         }
         
@@ -3363,6 +3489,105 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to ConventionalLorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to ConventionalPrimaryBusManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV-IEPC-S_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV-Px_IHPCLorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV-S2_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV-S3_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to HEV-S4_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV-E2_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV-E3_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV-E4_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to PEV-IEPC_LorryManufacturerOutputDataType.
+        /// </summary>
+        public static string MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType {
+            get {
+                return ResourceManager.GetString("MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to PowerMap.
         /// </summary>
@@ -3732,6 +3957,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to ManufacturerRecordSignature.
+        /// </summary>
+        public static string Report_ManufacturerRecord_Signature {
+            get {
+                return ResourceManager.GetString("Report_ManufacturerRecord_Signature", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to EnergyConsumption.
         /// </summary>
@@ -4110,6 +4344,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to PrimaryVehicleSubgroup.
+        /// </summary>
+        public static string Report_Results_PrimaryVehicleSubgroup {
+            get {
+                return ResourceManager.GetString("Report_Results_PrimaryVehicleSubgroup", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Summary.
         /// </summary>
@@ -5441,5 +5684,14 @@ namespace TUGraz.VectoCommon.Resources {
                 return ResourceManager.GetString("XMLManufacturerReport_torqueLimitPercent", resourceCulture);
             }
         }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to type.
+        /// </summary>
+        public static string XSIType {
+            get {
+                return ResourceManager.GetString("XSIType", resourceCulture);
+            }
+        }
     }
 }
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index fd22bdae3924c9030298629d0a4e65ae1ae01cc1..ff407bcb2eded8fd0f5b522dbd028acbb08f1435 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1020,6 +1020,9 @@
   <data name="Report_ResultData_Signature" xml:space="preserve">
     <value>ResultDataSignature</value>
   </data>
+  <data name="Report_ManufacturerRecord_Signature" xml:space="preserve">
+    <value>ManufacturerRecordSignature</value>
+  </data>
   <data name="Report_Result_Payload" xml:space="preserve">
     <value>Payload</value>
   </data>
@@ -1149,8 +1152,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>
@@ -1911,4 +1914,85 @@
   <data name="REESS" xml:space="preserve">
     <value>ElectricEnergyStorage</value>
   </data>
+<data name="MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType" xml:space="preserve">
+	<value>ConventionalLorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType" xml:space="preserve">
+	<value>ConventionalPrimaryBusManufacturerOutputDataType</value>
+</data>
+<data name="CIF_OutputDataType_ConventionalLorryOutputType" xml:space="preserve">
+	<value>ConventionalLorryOutputType</value>
+</data>
+<data name="MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType" xml:space="preserve">
+	<value>HEV-Px_IHPCLorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>HEV-S2_LorryManufacturerOutputDataType</value>
+</data>
+<data name="CIF_OutputDataType_HEV_S2_LorryOutputType" xml:space="preserve">
+	<value>HEV_S2_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_HEV_S3_LorryOutputType" xml:space="preserve">
+	<value>HEV_S3_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_HEV_S4_LorryOutputType" xml:space="preserve">
+	<value>HEV_S4_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_HEV_IEPC_S_LorryOutputType" xml:space="preserve">
+	<value>HEV_IEPC_S_LorryOutputType</value>
+</data>
+<data name="MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>HEV-S3_LorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>HEV-S4_LorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>HEV-IEPC-S_LorryManufacturerOutputDataType</value>
+</data>
+<data name="CIF_OutputDataType_HEV_Px_LorryOutputType" xml:space="preserve">
+	<value>HEV_Px_LorryOutputType</value>
+</data>
+<data name="MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>PEV-E2_LorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>PEV-E3_LorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>PEV-E4_LorryManufacturerOutputDataType</value>
+</data>
+<data name="MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType" xml:space="preserve">
+	<value>PEV-IEPC_LorryManufacturerOutputDataType</value>
+</data>
+<data name="CIF_OutputDataType_PEV_E2_LorryOutputType" xml:space="preserve">
+	<value>PEV_E2_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_PEV_E3_LorryOutputType" xml:space="preserve">
+	<value>PEV_E3_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_PEV_E4_LorryOutputType" xml:space="preserve">
+	<value>PEV_E4_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_PEV_IEPC_LorryOutputType" xml:space="preserve">
+	<value>PEV_IEPC_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_Exempted_LorryOutputType" xml:space="preserve">
+	<value>Exempted_LorryOutputType</value>
+</data>
+<data name="CIF_OutputDataType_Exempted_CompletedBusOutputType" xml:space="preserve">
+	<value>Exempted_CompletedBusOutputType</value>
+</data>
+<data name="BusAux_Clutch" xml:space="preserve">
+	<value>Clutch</value>
+</data>
+<data name="ElectricMachine_P2_5GearRatios_Gear_Attr" xml:space="preserve">
+	<value>gear</value>
+</data>
+<data name="XSIType" xml:space="preserve">
+	<value>type</value>
+</data>
+<data name="Report_Results_PrimaryVehicleSubgroup" xml:space="preserve">
+	<value>PrimaryVehicleSubgroup</value>
+</data>
 </root>
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/Utils/SI.cs b/VectoCommon/VectoCommon/Utils/SI.cs
index 6776282cbbc86a44f4212c74d665da2f2549d32b..1557949c4a2a338c3a579e26440b098e62d4f589 100644
--- a/VectoCommon/VectoCommon/Utils/SI.cs
+++ b/VectoCommon/VectoCommon/Utils/SI.cs
@@ -1165,6 +1165,8 @@ namespace TUGraz.VectoCommon.Utils
 		private Ohm(double val) : base(val, Units) { }
 
 		public override string UnitString => "Ω";
+
+		public double AsMilliOhm => Val * 1000;
 	}
 
 	public class Farad : SIBase<Farad>
diff --git a/VectoCommon/VectoCommon/Utils/SIUtils.cs b/VectoCommon/VectoCommon/Utils/SIUtils.cs
index 993a93f9096b9f653229155ec3b4e0ef3aa02c67..e0d3190b8bd0b479070a0c1d848bc1ad56330d1a 100644
--- a/VectoCommon/VectoCommon/Utils/SIUtils.cs
+++ b/VectoCommon/VectoCommon/Utils/SIUtils.cs
@@ -285,6 +285,21 @@ namespace TUGraz.VectoCommon.Utils
 			}
 		}
 
+		/// <summary>
+		/// [m]
+		/// </summary>
+		public UnitInstance Ohm {
+			get {
+				var reciprocAndExponent = _reciproc * _exponent;
+				_units[0] += 1 * reciprocAndExponent;
+				_units[1] += 2 * reciprocAndExponent;
+				_units[2] -= 3 * reciprocAndExponent;
+				_units[3] -= 2 * reciprocAndExponent;
+
+				return this;
+			}
+		}
+
 		/// <summary>
 		/// Defines the denominator by the terms following after the Per.
 		/// </summary>
diff --git a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs
index 8d67210f9e4cc22e58de82fe1996736413bd4ffc..189d426e3798592ca3645e0ddc7b08dce578dc2f 100644
--- a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs
+++ b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs
@@ -87,6 +87,16 @@ namespace TUGraz.VectoCommon.Utils
 			return int.Parse(self) != 0;
 		}
 
+		public static bool IsNullOrEmpty(this string self)
+		{
+			return string.IsNullOrEmpty(self);
+		}
+
+		public static bool IsNullOrWhiteSpace(this string self)
+		{
+			return string.IsNullOrWhiteSpace(self);
+		}
+
 		public static double IndulgentParse(this string self) =>
 			double.Parse(new string(self.Trim().TakeWhile(c => char.IsDigit(c) || c == '.').ToArray()),
 				CultureInfo.InvariantCulture);
diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj
index 157a10ad21b5f0c50a7fbbe0aeff1af3af72eb44..c92bd0f3f832ba3f0ab9be5fbd7cf684358b6beb 100644
--- a/VectoCommon/VectoCommon/VectoCommon.csproj
+++ b/VectoCommon/VectoCommon/VectoCommon.csproj
@@ -8,6 +8,9 @@
 
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
+    <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" />
+    <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" />
     <PackageReference Include="NLog" Version="4.7.13" />
   </ItemGroup>
 
diff --git a/VectoCommon/VectoHashing/VectoHash.cs b/VectoCommon/VectoHashing/VectoHash.cs
index 9b0c9c6b1dc05bf9e4b6365afefb1d9c1c30c3a0..e389713ead82e7ce606c8408d317dce0eadf9f68 100644
--- a/VectoCommon/VectoHashing/VectoHash.cs
+++ b/VectoCommon/VectoHashing/VectoHash.cs
@@ -288,7 +288,7 @@ namespace TUGraz.VectoHashing
 				return components.First();
 			}
 			if (Document.DocumentElement.LocalName.Equals("VectoOutput")) {
-				return VectoComponents.VectoOutput;
+				return VectoComponents.VectoManufacturerReport;
 			}
 			if (Document.DocumentElement.LocalName.Equals("VectoCustomerInformation")) {
 				return VectoComponents.VectoCustomerInformation;
diff --git a/VectoCommon/VectoHashing/VectoHashing.csproj b/VectoCommon/VectoHashing/VectoHashing.csproj
index f833fa86eb34d4986fa7a4a941b5fefba4267658..8a059112dc7a7617cfb2b73a7c9b67ef375db87b 100644
--- a/VectoCommon/VectoHashing/VectoHashing.csproj
+++ b/VectoCommon/VectoHashing/VectoHashing.csproj
@@ -8,6 +8,7 @@
     <AssemblyName>VectoHashing</AssemblyName>
     <TargetFrameworks>net45;net48;net6.0</TargetFrameworks>
     <DefineConstants />
+    <Configurations>Debug;Release;MockupRelease</Configurations>
   </PropertyGroup>
 
   <ItemGroup Condition="'$(TargetFramework)' == 'net45'">
diff --git a/VectoCommon/VectoHashingTest/VectoHashTest.cs b/VectoCommon/VectoHashingTest/VectoHashTest.cs
index af3457ba5635fa09e1b1dc0874efb977a037c7ed..066dd767fe7b54c637f338699e8c86fe7efb892c 100644
--- a/VectoCommon/VectoHashingTest/VectoHashTest.cs
+++ b/VectoCommon/VectoHashingTest/VectoHashTest.cs
@@ -640,7 +640,7 @@ namespace VectoHashingTest
 
 			var reader = XmlReader.Create(file);
 
-			var vif = xmlInputReader.CreateDeclaration(reader) as IMultistageBusInputDataProvider;
+			var vif = xmlInputReader.CreateDeclaration(reader) as IMultistepBusInputDataProvider;
 			var inputDataProvider = new XMLDeclarationVIFInputData(vif, null);
 
 
diff --git a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
index 762bdaa894b986a0b04bd057a1156e6ec08b296f..062a1321abce0362d99881001e9d2fb508a124e7 100644
--- a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
+++ b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
@@ -7,8 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Ninject" Version="3.3.3" />
-    <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
diff --git a/VectoConsole/App.config b/VectoConsole/App.config
index f3e7e3a3ca744804e9aff833998fa34e9908842b..7034a5b9a970c00aa2cc7ff792df49d915cddba6 100644
--- a/VectoConsole/App.config
+++ b/VectoConsole/App.config
@@ -3,6 +3,15 @@
 	<configSections>
 		<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
 	</configSections>
+	<!--<runtime>
+		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+			--><!--<loadFromRemoteSources enabled="true"/>--><!--
+			<dependentAssembly>
+				<assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-3.3.5.0" newVersion="3.3.6.0" />
+			</dependentAssembly>
+		</assemblyBinding>
+	</runtime>-->
 	<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="false" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
 		<targets async="true">
 			<target xsi:type="Console" name="ConsoleLogger" error="true" />
diff --git a/VectoConsole/VectoConsole.csproj b/VectoConsole/VectoConsole.csproj
index cf2935dcb40b6f82b1d797fb0bf8e72cf50e96cf..1fab91cd911dcc6e336d49fc0e56324ea8feb2c1 100644
--- a/VectoConsole/VectoConsole.csproj
+++ b/VectoConsole/VectoConsole.csproj
@@ -6,10 +6,22 @@
     <ApplicationIcon>VECTO.ico</ApplicationIcon>
     <TargetFrameworks>net45;net48;net6.0</TargetFrameworks>
     <DefineConstants />
+    <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations>
   </PropertyGroup>
-
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+	<PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')">
+		<DefineConstants>$(DefineConstants);MOCKUP</DefineConstants>
+	</PropertyGroup>
   <ItemGroup>
-    <PackageReference Include="Ninject" Version="3.3.3" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
     <PackageReference Include="NLog" Version="4.7.13" />
   </ItemGroup>
 
@@ -28,4 +40,16 @@
   <ItemGroup>
     <ProjectReference Include="..\VectoCore\VectoCore\VectoCore.csproj" />
   </ItemGroup>
+
+	<Choose>
+		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(&#xD;&#xA;         $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))">
+			<ItemGroup>
+				<ProjectReference Include="..\VectoMockup\VectoMockup\VectoMockup.csproj" />
+
+			</ItemGroup>
+			<!--<PropertyGroup>
+				<DefineConstants>MOCKUP</DefineConstants>
+			</PropertyGroup>-->
+		</When>
+	</Choose>
 </Project>
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index 83a7e4610fca506f989e3002ca75e98a2671b7e0..b1f3ad145575a2237b3fde99f13fd2bf790f5286 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -836,7 +836,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				TotalVehicleMass = (node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_ResultEntry_TotalVehicleMass}']")?.InnerText.ToDouble() ?? 0).SI<Kilogram>(),
 				Payload = (node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_Result_Payload}']")?.InnerText.ToDouble() ?? 0).SI<Kilogram>(),
 				PassengerCount = node.SelectSingleNode($"./*[local-name()='{XMLNames.Bus_PassengerCount}']")?.InnerText.ToDouble() ?? 0,
-				FuelMode = "" //node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_Result_FuelMode}']").InnerText
+				//FuelMode = "" //node.SelectSingleNode($"./*[local-name()='{XMLNames.Report_Result_FuelMode}']").InnerText
 			};
 		}
 
@@ -1012,11 +1012,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 	// --------------------------
 
-	public class JSONInputDataCompletedBusFactorMethodV7 : JSONFile, IDeclarationInputDataProvider, IDeclarationJobInputData
+	public class JSONInputDataCompletedBusFactorMethodV7 : JSONFile, IMultistageVIFInputData //, IDeclarationInputDataProvider, IDeclarationJobInputData
 	{
 		private readonly IXMLInputDataReader _xmlInputReader;
 		protected internal string PrimaryInputDataFile;
 		protected internal string CompletedInputDataFile;
+		protected internal bool RunSimulation;
 
 		public JSONInputDataCompletedBusFactorMethodV7(JObject data, string filename, bool tolerateMissing = false) : base(
 			data, filename, tolerateMissing)
@@ -1026,13 +1027,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 			PrimaryInputDataFile = Path.Combine(BasePath, Body.GetEx<string>("PrimaryVehicleResults"));
 			CompletedInputDataFile = Path.Combine(BasePath, Body.GetEx<string>("CompletedVehicle"));
+			RunSimulation = Body.GetEx<bool>(JsonKeys.BUS_RunSimulation);
+			
 
-			//PrimaryVehicle = CreateReader(primaryInputData);
+            //PrimaryVehicle = CreateReader(primaryInputData);
 
-			Vehicle = _xmlInputReader.CreateDeclaration(CompletedInputDataFile).JobInputData.Vehicle;
-			PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IPrimaryVehicleInformationInputDataProvider);
-			JobName = Vehicle.VIN;
-		}
+            Vehicle = _xmlInputReader.CreateDeclaration(CompletedInputDataFile).JobInputData.Vehicle;
+            PrimaryVehicleData = (_xmlInputReader.Create(PrimaryInputDataFile) as IMultistepBusInputDataProvider);
+            //JobName = Vehicle.VIN;
+        }
 
 
 		//private IDeclarationInputDataProvider CreateReader(string vehicleFileName)
@@ -1048,22 +1051,31 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public override bool SavedInDeclarationMode => true;
 
-		#endregion
+        #endregion
 
-		#region Implementation of IDeclarationInputDataProvider
+        //#region Implementation of IDeclarationInputDataProvider
 
-		public IDeclarationJobInputData JobInputData => this;
-		public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleData { get; }
-		public XElement XMLHash { get; }
+        //public IDeclarationJobInputData JobInputData => this;
+        public IMultistepBusInputDataProvider PrimaryVehicleData { get; }
+        //public XElement XMLHash { get; }
 
-		#endregion
+        //#endregion
 
-		#region Implementation of IDeclarationJobInputData
+        //#region Implementation of IDeclarationJobInputData
 
-		public IVehicleDeclarationInputData Vehicle { get; }
-		public string JobName { get; }
-		
-		public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle;
+        public IVehicleDeclarationInputData Vehicle { get; }
+        //public string JobName { get; }
+
+        //public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle;
+
+        //#endregion
+
+        #region Implementation of IMultistageVIFInputData
+
+		public IVehicleDeclarationInputData VehicleInputData => Vehicle;
+		public IMultistepBusInputDataProvider MultistageJobInputData => PrimaryVehicleData;
+
+		public bool SimulateResultingVIF => RunSimulation;
 
 		#endregion
 	}
@@ -1205,9 +1217,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			:
 			null;
 
+		public bool SimulateResultingVIF => _simulateResultingVif;
 
 
 		private bool? _completed;
+		private bool _simulateResultingVif;
 
 		public bool? Completed
 		{
@@ -1225,6 +1239,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 			_primaryVehicleInputDataPath = Body.GetEx<string>(JsonKeys.PrimaryVehicle);
 			_primaryVehicleInputDataPath = PathHelper.GetAbsolutePath(filename, _primaryVehicleInputDataPath);
+			_simulateResultingVif = Body.GetEx<bool>(JsonKeys.BUS_RunSimulation);
 			_stageInputDataPath = Body.GetEx<string>(JsonKeys.InterimStep);
 			_stageInputDataPath = PathHelper.GetAbsolutePath(filename, _stageInputDataPath);
 			_completed = Body.GetValueOrDefault<bool>(JsonKeys.Completed);
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index c6f024ab1807c796120c21246a97f63109cba6f4..82a85abcf19d72a5322e68dd3b8c4f71c6472bab 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -368,7 +368,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual string ManufacturerAddress => Constants.NOT_AVAILABLE;
 
-		public virtual PerSecond EngineIdleSpeed => Body["IdlingSpeed"] != null ? Body.GetEx<double>("IdlingSpeed").RPMtoRad() : null;
+		public virtual PerSecond EngineIdleSpeed
+		{
+			get
+			{
+				if (Body["IdlingSpeed"] != null) {
+					return Body.GetEx<double>("IdlingSpeed").RPMtoRad();
+				} else {
+					return (EngineInputData as IEngineModeDeclarationInputData)?.IdleSpeed;
+				}
+
+				return null;
+			}
+		}
 
 		IList<IAxleDeclarationInputData> IAxlesDeclarationInputData.AxlesDeclaration => AxleWheels().Cast<IAxleDeclarationInputData>().ToList();
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs
index bee76d3ee5a6070b5f3a671f18961918eba68522..b6ef988d78e56eda6ead54a0d656e18abc410da5 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAngledriveDataProvider.cs
@@ -112,7 +112,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	{
 		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "AngledriveDataPIFType";
+		public new const string XSD_TYPE = "AngledriveDataVIFType";
 
 		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/XMLDeclarationAxlegearDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs
index 241830b52f72e322920bb2eca4909a8d811d3170..238d531c9be600b81ce9f8c2515017ea717eb2b3 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlegearDataProvider.cs
@@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	{
 		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "AxlegearDataPIFType";
+		public new const string XSD_TYPE = "AxlegearDataVIFType";
 
 		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/XMLDeclarationAxlesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs
index 7181384e6fac40f491ed5319857a53f8e4e3d220..3fc34bec5a4c7b278d57d039901d034517821640 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationAxlesDataProvider.cs
@@ -143,7 +143,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	{
 		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "AxleWheelsDataPIFType";
+		public new const string XSD_TYPE = "AxleWheelsDataVIFType";
 
 		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/XMLDeclarationBusAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs
index 9cc9f3406cf956cc3d3864b47568988c59b886fa..95db59ab682dadd3fb90828a3f7238ee15fb403e 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs
@@ -38,7 +38,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get
 			{
 				return GetNodes(new[] { "SteeringPump", XMLNames.Auxiliaries_Auxiliary_Technology })
-					.Cast<XmlNode>().Select(x => x.InnerText).ToList();
+					.Cast<XmlNode>().OrderBy(x => x.Attributes.GetNamedItem("axleNumber").InnerText.ToInt())
+					.Select(x => x.InnerText).ToList();
 			}
 		}
 
@@ -290,6 +291,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public override string Clutch => null;
 
 		public override double Ratio => double.NaN;
+
+		#region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+
+		public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown;
+
+		#endregion
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -314,20 +321,42 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public override string Clutch => null;
 
 		public override double Ratio => double.NaN;
+
+
+		public override ConsumerTechnology AdBlueDosing => ConsumerTechnology.Unknown;
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+
+	public class XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+	{
+		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "AUX_Conventional_PrimaryBusType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) 
+			: base(componentNode) { }
+
+
+		public override XmlNode XMLSource => BaseNode;
 	}
 
 	// ---------------------------------------------------------------------------------------
 
 
-	public class XMLDeclarationPrimaryBusAuxiliariesDataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+	public class XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
 	{
 		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public const string XSD_TYPE = "AuxiliaryDataPIFType";
+		public const string XSD_TYPE = "AUX_HEV-P_PrimaryBusType";
 
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
-		public XMLDeclarationPrimaryBusAuxiliariesDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) 
+		public XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
 			: base(componentNode) { }
 
 
@@ -337,6 +366,86 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	// ---------------------------------------------------------------------------------------
 
 
+	public class XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+	{
+		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "AUX_HEV-S_PrimaryBusType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
+			: base(componentNode) { }
+
+
+		public override XmlNode XMLSource => BaseNode;
+
+		#region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+
+		public override bool SmartAirCompression => false;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+
+	public class XMLPrimaryBusAuxiliaries_PEV_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+	{
+		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "AUX_PEV_PrimaryBusType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLPrimaryBusAuxiliaries_PEV_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
+			: base(componentNode) { }
+
+
+		public override XmlNode XMLSource => BaseNode;
+
+		#region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+
+		public override string FanTechnology => null;
+
+		public override bool SmartAirCompression => false;
+
+		public override bool EngineWasteGasHeatExchanger => false;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+
+	public class XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+	{
+		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "AUX_IEPC_PrimaryBusType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
+			: base(componentNode) { }
+
+
+		public override XmlNode XMLSource => BaseNode;
+
+		#region Overrides of AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24
+
+		public override string FanTechnology => null;
+
+		public override bool SmartAirCompression => false;
+
+		public override bool EngineWasteGasHeatExchanger => false;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+
 	public class XMLDeclarationCompletedBusAuxiliariesDataProviderV24 : AbstractXMLDeclarationPrimaryBusAuxiliariesDataProviderV24, IElectricConsumersDeclarationData
 	{
 		public new static XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
index fabc32df8e7cf5fb8845ed0b38ed37f72d1e4f39..42cc0ea13bf82f23cfa0037dc7639c1fe3e5fa75 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
@@ -200,18 +200,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	// ---------------------------------------------------------------------------------------
 
 
-	public class XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01 : XMLDeclarationComponentsDataProviderV10,
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01 : XMLDeclarationComponentsDataProviderV10,
 		IXMLVehicleComponentsDeclaration, IRetarderInputData
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "VehicleComponentsPIFType";
+		public new const string XSD_TYPE = "Vehicle_Conventional_ComponentsVIFType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		private IBusAuxiliariesDeclarationData _busAuxiliaries;
 
-		public XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01(IXMLDeclarationVehicleData vehicle,
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01(IXMLDeclarationVehicleData vehicle,
 			XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
 
 
@@ -234,6 +234,254 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		#endregion
 	}
 
+	// ---------------------------------------------------------------------------------------
+
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01 : XMLDeclarationComponentsDataProviderV10,
+		IXMLVehicleComponentsDeclaration, IRetarderInputData
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-Px_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		private IBusAuxiliariesDeclarationData _busAuxiliaries;
+
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01(IXMLDeclarationVehicleData vehicle,
+			XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+
+		IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this;
+
+		IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null;
+
+		IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null;
+
+		public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData);
+
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		#region IRetarderInputData Interface Implementation
+
+		public RetarderType Type => _vehicle.RetarderType;
+		public double Ratio => _vehicle.RetarderRatio;
+		public TableData LossMap { get; }
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01 : XMLDeclarationComponentsDataProviderV10,
+		IXMLVehicleComponentsDeclaration, IRetarderInputData
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-S2_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		private IBusAuxiliariesDeclarationData _busAuxiliaries;
+
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01(IXMLDeclarationVehicleData vehicle,
+			XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+
+		IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this;
+
+		IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null;
+
+		IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null;
+
+		public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData);
+
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		#region IRetarderInputData Interface Implementation
+
+		public RetarderType Type => _vehicle.RetarderType;
+		public double Ratio => _vehicle.RetarderRatio;
+		public TableData LossMap { get; }
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01 :
+		XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-S3_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLDeclarationComponentsDataProviderV10
+
+		public override IGearboxDeclarationInputData GearboxInputData => null;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01 :
+		XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-S4_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLDeclarationComponentsDataProviderV10
+
+		public override IGearboxDeclarationInputData GearboxInputData => null;
+
+		public override IAxleGearInputData AxleGearInputData => null;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01 : XMLDeclarationComponentsDataProviderV10,
+		IXMLVehicleComponentsDeclaration, IRetarderInputData
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-IEPC-S_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		private IBusAuxiliariesDeclarationData _busAuxiliaries;
+
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01(IXMLDeclarationVehicleData vehicle,
+			XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+
+		IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this;
+
+		IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null;
+
+		IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null;
+
+		public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData);
+
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		#region IRetarderInputData Interface Implementation
+
+		public RetarderType Type => _vehicle.RetarderType;
+		public double Ratio => _vehicle.RetarderRatio;
+		public TableData LossMap { get; }
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01 : XMLDeclarationComponentsDataProviderV10,
+		IXMLVehicleComponentsDeclaration, IRetarderInputData
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-E2_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		private IBusAuxiliariesDeclarationData _busAuxiliaries;
+
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01(IXMLDeclarationVehicleData vehicle,
+			XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		public override IEngineDeclarationInputData EngineInputData => null;
+
+		IRetarderInputData IVehicleComponentsDeclaration.RetarderInputData => this;
+
+		IAirdragDeclarationInputData IVehicleComponentsDeclaration.AirdragInputData => null;
+
+		IAuxiliariesDeclarationInputData IVehicleComponentsDeclaration.AuxiliaryInputData => null;
+
+		public override IBusAuxiliariesDeclarationData BusAuxiliaries => _busAuxiliaries ?? (_busAuxiliaries = ComponentReader.BusAuxiliariesInputData);
+
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		#region IRetarderInputData Interface Implementation
+
+		public RetarderType Type => _vehicle.RetarderType;
+		public double Ratio => _vehicle.RetarderRatio;
+		public TableData LossMap { get; }
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01 :
+		XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-E3_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLDeclarationComponentsDataProviderV10
+
+		public override IGearboxDeclarationInputData GearboxInputData => null;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01 :
+		XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-E4_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLDeclarationComponentsDataProviderV10
+
+		public override IGearboxDeclarationInputData GearboxInputData => null;
+
+		public override IAxleGearInputData AxleGearInputData => null;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01 :
+		XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-IEPC_ComponentsVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLDeclarationComponentsDataProviderV10
+
+		public override IGearboxDeclarationInputData GearboxInputData => null;
+
+		public override IAxleGearInputData AxleGearInputData => null;
+
+		#endregion
+	}
 
 	// ---------------------------------------------------------------------------------------
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs
index 2fd94d18f454dedbceda1186f149dff795b03804..660f63da517cc4206d52b144292d3b63ed359d52 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationEngineDataProvider.cs
@@ -404,7 +404,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 = "EngineDataPIFType";
+		public new const string XSD_TYPE = "EngineDataVIFType";
 
 		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/XMLDeclarationGearboxDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs
index 6942da549bdfdef277fe86ff247a503935448dda..1f0434442227980454d81e326553d32634b71d3f 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationGearboxDataProvider.cs
@@ -87,6 +87,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 					case "APT-N":
 					case "APT-P":
 					case "AT - PowerSplit": return GearboxType.ATPowerSplit;
+					case "IHPC Type 1": return GearboxType.IHPC;
 				}
 
 				throw new ArgumentOutOfRangeException("GearboxType", value);
@@ -176,7 +177,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 = "TransmissionDataPIFType";
+		public new const string XSD_TYPE = "TransmissionDataVIFType";
 
 		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/XMLDeclarationJobInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs
index 1f1d6320a08a1f50b1caa15311bf38abe042c065..fd22e022021574822578eca5bc58127d67d93936 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationJobInputDataProvider.cs
@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public virtual string JobName => Vehicle.Identifier;
 
-		public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle;
+		public virtual VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle;
 
 		#endregion
 
@@ -97,26 +97,37 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			base(node, inputProvider, fileName) { }
 
 		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		#region Overrides of XMLDeclarationJobInputDataProviderV10
+
+		
+		public override VectoSimulationJobType JobType { get => Vehicle.VehicleType; }
+
+		#endregion
 	}
 	
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01 : AbstractXMLResource,
+	public class XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01 : AbstractXMLResource,
 		IXMLPrimaryVehicleBusJobInputData
 	{
-		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public const string XSD_TYPE = "VehiclePIFType";
+		public const string XSD_TYPE = "ConventionalVehicleVIFType";
 
-		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		protected IVehicleDeclarationInputData _vehicle;
 
-		public XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider,
+		public XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node,
+			IXMLPrimaryVehicleBusInputData inputProvider,
 			string fileName) : base(node, fileName)
 		{
 			InputData = inputProvider;
 		}
+
 		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
 
 		public IVehicleDeclarationInputData Vehicle => _vehicle ?? (_vehicle = Reader.CreateVehicle);
@@ -124,20 +135,105 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		protected override DataSourceType SourceType { get; }
 		public bool SavedInDeclarationMode { get; }
 		public string JobName { get; }
-		
+
 		public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle;
 		public IXMLJobDataReader Reader { protected get; set; }
-		public IXMLPrimaryVehicleBusInputData InputData { get; }
+		public virtual IXMLPrimaryVehicleBusInputData InputData { get; }
+		
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "HEV-Px_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider,
+			string fileName) : base(node,inputProvider, fileName)
+		{ }
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "HEV-Sx_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider,
+			string fileName) : base(node, inputProvider, fileName)
+		{ }
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
 
+	public class XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "HEV-IEPC-S_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider,
+			string fileName) : base(node, inputProvider, fileName)
+		{ }
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "PEV_Ex_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider,
+			string fileName) : base(node, inputProvider, fileName)
+		{ }
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "IEPC_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01(XmlNode node, IXMLPrimaryVehicleBusInputData inputProvider,
+			string fileName) : base(node, inputProvider, fileName)
+		{ }
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+	}
+	// ---------------------------------------------------------------------------------------
+
 	public class XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01 :
-			XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01
+			XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01
 	{
 		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/XMLDeclarationMultistageInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs
index 14c1eaecd0480908eab71bb61be8e7b0ad856c92..6970ca1c2dfa1e1fcab036c424795e69a16cdc2b 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationMultistageInputData.cs
@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public IManufacturingStageInputData ConsolidateManufacturingStage => _concolidateManfacturingStage ?? (_concolidateManfacturingStage = Reader.ConsolidateManufacturingStage);
 
-		public VectoSimulationJobType JobType => VectoSimulationJobType.ConventionalVehicle;
+		public VectoSimulationJobType JobType => ConsolidateManufacturingStage.Vehicle.VehicleType;
 
 		public bool InputComplete => Reader.InputComplete;
 
@@ -153,8 +153,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		{
 			return ResultsInputData.Results.FirstOrDefault(
 				x => x.VehicleGroup == vehicleClass &&
-					(x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission &&
-					x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase));
+					(x.SimulationParameter.Payload - payload).IsEqual(0, 1) && x.Mission == mission 
+					// && x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase)
+					);
 		}
 
 		public XmlNode ResultsNode => GetNode(XMLNames.Report_Results);
@@ -217,19 +218,26 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 	public class XMLDeclarationVIFInputData : IMultistageVIFInputData
 	{
-		private readonly IMultistageBusInputDataProvider _multistageJobInputData;
+		private readonly IMultistepBusInputDataProvider _multistageJobInputData;
 		private readonly IVehicleDeclarationInputData _vehicleInput;
 
-		public XMLDeclarationVIFInputData(IMultistageBusInputDataProvider multistageJobInputData,
-			IVehicleDeclarationInputData vehicleInput)
+		public XMLDeclarationVIFInputData(IMultistepBusInputDataProvider multistageJobInputData,
+			IVehicleDeclarationInputData vehicleInput) : this(multistageJobInputData, vehicleInput, false) { }
+
+		public XMLDeclarationVIFInputData(IMultistepBusInputDataProvider multistageJobInputData,
+		IVehicleDeclarationInputData vehicleInput, bool runSimulation)
 		{
 			_multistageJobInputData = multistageJobInputData;
 			_vehicleInput = vehicleInput;
+			_simulateResultingVif = runSimulation;
 		}
 
 		public IVehicleDeclarationInputData VehicleInputData => _vehicleInput;
 
-		public IMultistageBusInputDataProvider MultistageJobInputData => _multistageJobInputData;
+		public IMultistepBusInputDataProvider MultistageJobInputData => _multistageJobInputData;
+
+		private readonly bool _simulateResultingVif;
+		bool IMultistageVIFInputData.SimulateResultingVIF => _simulateResultingVif;
 
 		public DataSource DataSource { get; }
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs
index 21ae0bdaed5b9af7f160bd03ddaa1ff917a57e64..68546d42827cca2fc83d8f7cb7952457f28c12a4 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPrimaryVehicleBusResultsInputDataProviderV01.cs
@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		private IResult GetResult(XmlNode xmlNode)
 		{
 			var resultStatus = GetAttribute(xmlNode, XMLNames.Result_Status);
-			var vehicleGroup = GetString(XMLNames.Report_Vehicle_VehicleGroup, xmlNode);
+			var vehicleGroup = GetString(XMLNames.Report_Results_PrimaryVehicleSubgroup, xmlNode);
 			var mission = GetString(XMLNames.Report_Result_Mission, xmlNode).ParseEnum<MissionType>();
 			var simulationNode = GetNode(XMLNames.Report_ResultEntry_SimulationParameters, xmlNode);
 			var simulationParams = GetSimulationParameter(simulationNode);
@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 				TotalVehicleMass = GetString(XMLNames.Report_ResultEntry_TotalVehicleMass, xmlNode).ToDouble().SI<Kilogram>(),
 				Payload = GetString(XMLNames.Report_Result_Payload, xmlNode).ToDouble().SI<Kilogram>(),
 				PassengerCount = GetString(XMLNames.Bus_PassengerCount, xmlNode).ToDouble(),
-				FuelMode = GetString(XMLNames.Report_Result_FuelMode, xmlNode)
+				//FuelMode = GetString(XMLNames.Report_Result_FuelMode, xmlNode)
 			};
 		}
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs
index a3706df1d1704be79922b6355423e94ab8599393..6081463d19d37025fe2f4e697b666ff285d2e49b 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTorqueConverterDataProvider.cs
@@ -94,7 +94,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 = "TorqueConverterDataPIFType";
+		public new const string XSD_TYPE = "TorqueConverterDataVIFType";
 
 		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/XMLDeclarationTyreDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs
index 7b2dfa10639d032fbf52ba1bf731bff6b92c2252..94364961bee7ed9cc3ac2d6295fa474d82d7ff8e 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationTyreDataProvider.cs
@@ -75,7 +75,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public virtual Newton TyreTestLoad => _fzIso ?? (_fzIso = GetDouble(XMLNames.AxleWheels_Axles_Axle_FzISO).SI<Newton>());
 
-		public virtual string FuelEfficiencyClass => DeclarationData.Wheels.TyreClass.Lookup(RollResistanceCoefficient);
+		public virtual string FuelEfficiencyClass => null;// DeclarationData.Wheels.TyreClass.Lookup(RollResistanceCoefficient);
+
+		#endregion
+
+		#region Implementation of IXMLTyreDeclarationInputData
+
+		public XmlNode GetXmlNode => BaseNode;
 
 		#endregion
 	}
@@ -116,7 +122,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 	public class XMLDeclarationTyreDataProviderV23 : XMLDeclarationTyreDataProviderV10
 	{
-		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V23;
 
 		//public new const string XSD_TYPE = "TyreComponentDeclarationType";
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 43d1ac73300e541ac0d9354cd1abab13c3acbeaf..3b37daaa2bb96fe54a149f2b1b9e7a6963baaa79 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -38,6 +38,7 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader;
 using TUGraz.VectoCore.InputData.Impl;
@@ -178,9 +179,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public virtual bool ZeroEmissionVehicle => XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_ZeroEmissionVehicle));
 
-		public virtual bool HybridElectricHDV => XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_HybridElectricHDV));
+		public virtual bool HybridElectricHDV => ElementExists(XMLNames.Vehicle_HybridElectricHDV) 
+			? XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_HybridElectricHDV)) 
+			: false;
 
-		public virtual bool DualFuelVehicle => XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_DualFuelVehicle));
+		public virtual bool DualFuelVehicle => ElementExists(XMLNames.Vehicle_DualFuelVehicle) 
+			? XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_DualFuelVehicle)) 
+			: false;
 
 		public virtual Watt MaxNetPower1 =>
 			ElementExists(XMLNames.Vehicle_MaxNetPower1)
@@ -231,11 +236,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public virtual IVehicleComponentsDeclaration Components => _components ?? (_components = ComponentReader.ComponentInputData);
 		
 		public virtual string VehicleTypeApprovalNumber => ElementExists(XMLNames.VehicleTypeApprovalNumber) ? GetString(XMLNames.Vehicle_TypeApprovalNumber) : null;
-		public virtual ArchitectureID ArchitectureID => ArchitectureIDHelper.Parse(GetString(XMLNames.Vehicle_ArchitectureID));
-		public virtual bool OvcHev => GetBool(XMLNames.Vehicle_OvcHev);
+		public virtual ArchitectureID ArchitectureID => ElementExists(XMLNames.Vehicle_ArchitectureID) ? ArchitectureIDHelper.Parse(GetString(XMLNames.Vehicle_ArchitectureID)) : ArchitectureID.UNKNOWN;
+		public virtual bool OvcHev => ElementExists(XMLNames.Vehicle_OvcHev) && GetBool(XMLNames.Vehicle_OvcHev);
 		public virtual Watt MaxChargingPower => ElementExists(XMLNames.Vehicle_MaxChargingPower) ?
 			XmlConvert.ToInt32(GetString(XMLNames.Vehicle_MaxChargingPower)).SI<Watt>() : null;
 
+		public virtual VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; }
+
 		#region Implementation of IAdvancedDriverAssistantSystemDeclarationInputData
 
 		#endregion
@@ -253,6 +260,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 	public class XMLDeclarationVehicleDataProviderV20 : XMLDeclarationVehicleDataProviderV10
 	{
+
 		/*
 		 * use default values for new parameters introduced in 2019/318 (amendment of 2017/2400
 		 */
@@ -287,6 +295,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override Watt MaxNetPower2 => null;
 
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; }
 		public class ADASDefaultValues : IAdvancedDriverAssistantSystemDeclarationInputData
 		{
 			#region Implementation of IAdvancedDriverAssistantSystemDeclarationInputData
@@ -341,6 +350,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		}
 
 		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; }
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -417,6 +428,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public override IPTOTransmissionInputData PTOTransmissionInputData => null;
 
 		#endregion
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; }
 	}
 
 
@@ -448,12 +461,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 	// ---------------------------------------------------------------------------------------
 
 
-	public class XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01 : AbstractCommonComponentType, IXMLDeclarationVehicleData
+	public class XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01 : AbstractCommonComponentType, IXMLDeclarationVehicleData
 	{
 
 		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public const string XSD_TYPE = "VehiclePIFType";
+		public const string XSD_TYPE = "ConventionalVehicleVIFType";
 
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
@@ -463,7 +476,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		private XmlElement _componentNode;
 		private IVehicleComponentsDeclaration _components;
 		
-		public XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01(
+		public XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01(
 			IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile)
 			: base(xmlNode, sourceFile)
 		{
@@ -472,12 +485,13 @@ 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
 
+		public virtual string PowertrainPositionPrefix => "-";
+
 
 		#region IXMLDeclarationVehicleData interface
 
@@ -537,16 +551,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public virtual ConsumerTechnology? DoorDriveTechnology => ConsumerTechnology.Unknown;
 
 		public virtual VehicleDeclarationType VehicleDeclarationType { get; }
-		public Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ElectricMotorTorqueLimits { get; }
-		public TableData BoostingLimitations { get; }
-
+		public virtual Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ElectricMotorTorqueLimits { get; }
+		public virtual TableData BoostingLimitations { get; }
 		public virtual string VehicleTypeApprovalNumber { get; }
-
-
 		public virtual IVehicleComponentsDeclaration Components => _components ?? (_components = ComponentReader.ComponentInputData);
-		public ArchitectureID ArchitectureID { get; }
-		public bool OvcHev { get; }
-		public Watt MaxChargingPower { get; }
+		public virtual ArchitectureID ArchitectureID => ElementExists(XMLNames.Vehicle_ArchitectureID) ? ArchitectureIDHelper.Parse(GetString(XMLNames.Vehicle_ArchitectureID)) : ArchitectureID.UNKNOWN;
+		public virtual bool OvcHev => ElementExists(XMLNames.Vehicle_OvcHev) && GetBool(XMLNames.Vehicle_OvcHev);
+		public virtual Watt MaxChargingPower => ElementExists(XMLNames.Vehicle_MaxChargingPower) ? GetDouble(XMLNames.Vehicle_MaxChargingPower).SI<Watt>() : null;
 
 
 		#region  Non seeded Properties
@@ -615,16 +626,117 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 			return torqueLimits;
 		}
+
+		public virtual VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01
+	{
+
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "HEV-Px_VehicleVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { }
+		
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ParallelHybridVehicle; }
+
+		public override string PowertrainPositionPrefix => "P";
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01
+	{
+
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "HEV-Sx_VehicleVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { }
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.SerialHybridVehicle; }
+
+		public override string PowertrainPositionPrefix => "E";
 	}
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01
+	public class XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01
 	{
 
 		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 = "HEV-IEPC-S_VehicleVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { }
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.SerialHybridVehicle; }
+
+		public override string PowertrainPositionPrefix => "S";
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01
+	{
+
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "PEV_Ex_VehicleVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { }
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.BatteryElectricVehicle; }
+
+		public override bool OvcHev => true;
+
+		public override string PowertrainPositionPrefix => "E";
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01
+	{
+
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "IEPC_VehicleVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode xmlNode, string sourceFile) : base(busJobData, xmlNode, sourceFile) { }
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.BatteryElectricVehicle; }
+
+		public override bool OvcHev => true;
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01 : XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01
+	{
+
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Exempted_VehicleVIFType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE =
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
@@ -641,8 +753,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override Watt MaxNetPower1 => GetDouble("SumNetPower").SI<Watt>();
 
-
 		#endregion
+
+		public override VectoSimulationJobType VehicleType { get => VectoSimulationJobType.ConventionalVehicle; }
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -697,7 +810,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ElectricMotorTorqueLimits
 			=> ElementExists(XMLNames.ElectricMotorTorqueLimits) ? ReadElectricMotorTorqueLimits() : null;
-		
+
+		#region Overrides of XMLDeclarationVehicleDataProviderV20
+
+		public override VectoSimulationJobType VehicleType
+		{
+			get => throw new NotImplementedException($"not implemented in {this.GetType()}");
+		}
+
+		#endregion
+
 		private Dictionary<PowertrainPosition, List<Tuple<Volt, TableData>>> ReadElectricMotorTorqueLimits()
 		{
 			var torqueLimitNodes = GetNodes(XMLNames.ElectricMotorTorqueLimits);
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs
index 6a73d928db4c734bbbc058fbead8467010dc0b0b..365a218186703a42bb0727f04b815bc356e21ab2 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMachinesDeclarationInputDataProvider.cs
@@ -17,7 +17,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 		public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE);
 
-		private IXMLDeclarationVehicleData _vehicle;
+		protected IXMLDeclarationVehicleData _vehicle;
 		private IList<ElectricMachineEntry<IElectricMotorDeclarationInputData>> _entries;
 
 		public XMLElectricMachinesDeclarationInputDataProvider(
@@ -35,7 +35,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		#endregion
 
-		private List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries()
+		protected virtual List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries()
 		{
 			var machineEntry = new ElectricMachineEntry<IElectricMotorDeclarationInputData> {
 				Position = PowertrainPositionHelper.Parse(((AbstractXMLVehicleDataProviderV24)_vehicle).PowertrainPositionPrefix,
@@ -53,7 +53,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			return new List<ElectricMachineEntry<IElectricMotorDeclarationInputData>>{machineEntry};
 		}
 
-		private void SetGearRatios(ElectricMachineEntry<IElectricMotorDeclarationInputData> machineEntry)
+		protected void SetGearRatios(ElectricMachineEntry<IElectricMotorDeclarationInputData> machineEntry)
 		{ 
 			var gearRatios = GetNode(XMLNames.ElectricMachine_P2_5GearRatios, null, false);
 			if (gearRatios != null) {
@@ -134,4 +134,37 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			});
 
 		#endregion
-	} }
+	}
+
+	public class XMLDeclarationElectricMachinesDataProviderV01 : XMLElectricMachinesDeclarationInputDataProvider
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "ElectricMachineType";
+		public const string XSD_GEN_TYPE = "ElectricMachineGENType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE);
+
+		public XMLDeclarationElectricMachinesDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		protected override List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries()
+		{
+			var machineEntry = new ElectricMachineEntry<IElectricMotorDeclarationInputData> {
+				Position = PowertrainPositionHelper.Parse(((XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01)_vehicle).PowertrainPositionPrefix,
+														GetString(XMLNames.ElectricMachine_PowertrainPosition)),
+				Count = XmlConvert.ToInt32(GetString(XMLNames.ElectricMachine_Count)),
+				ElectricMachine = ElectricMachineSystemReader.CreateElectricMachineSystem(GetNode(XMLNames.ElectricMachineSystem)),
+			};
+
+			if (ElementExists("ADC"))
+				machineEntry.ADC = ElectricMachineSystemReader.ADCInputData;
+
+			if (ElementExists(XMLNames.ElectricMachine_P2_5GearRatios))
+				SetGearRatios(machineEntry);
+
+			return new List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> { machineEntry };
+		}
+	}
+
+}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs
index 5b4e004570209e971071e75e546138deab6ff35f..a8d5bd96a4643142a9dd42f38f7d0e3d2988fa74 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricMotorDeclarationInputDataProvider.cs
@@ -107,6 +107,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 				voltageLevels.Add(new XMLElectricMotorIEPCIInputDataProviderV23(null, voltageLevelNode, null));
 			}
 
+			if (voltageLevels.Count > 1) {
+				voltageLevels = voltageLevels.OrderBy(x => x.VoltageLevel.Value()).ToList();
+			}
+
 			return voltageLevels;
 		}
 
@@ -186,7 +190,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public virtual TableData Conditioning => ElementExists(XMLNames.Conditioning) 
 			? ReadConditioning() : null;
 		
-		public virtual double OverloadRecoveryFactor { get; }
 
 		#endregion
 
@@ -464,4 +467,59 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		#endregion
 	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLElectricMotorDeclarationInputDataProviderV01 : XMLCommonElectricMotorDeclarationInputData,
+		IXMLElectricMotorDeclarationInputData
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "ElectricMachineSystemDataDeclarationType";
+
+		public static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		private IList<IElectricMotorVoltageLevel> _voltageLevels;
+
+		public XMLElectricMotorDeclarationInputDataProviderV01(
+			XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile)
+		{
+			SourceType = DataSourceType.XMLEmbedded;
+		}
+
+		#region Implementation of IElectricMotorDeclarationInputData
+
+		public bool DcDcConverterIncluded => GetBool(XMLNames.ElectricMachine_DcDcConverterIncluded);
+
+		public string IHPCType => GetString(XMLNames.ElectricMachine_IHPCType);
+
+		public IList<IElectricMotorVoltageLevel> VoltageLevels => 
+			_voltageLevels ?? (_voltageLevels = GetVoltageLevels());
+		public TableData DragCurve => ReadDragCurve();
+		public TableData Conditioning => ElementExists(XMLNames.Conditioning)
+			? ReadConditioning() : null;
+
+		#endregion
+
+		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+		protected override DataSourceType SourceType { get; }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLElectricMotorIEPCIInputDataProviderV01 : XMLElectricMotorIEPCIInputDataProviderV23
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "IEPCDataDeclarationType";
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public XMLElectricMotorIEPCIInputDataProviderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+		#region Overrides of XMLElectricMotorIEPCIInputDataProviderV23
+
+		protected override void ValidateGearCount()
+		{
+		}
+
+		#endregion
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs
index 17f31db33e864065fbfb885246932bca6c58027f..d2555cb1c639422a6b3902d2c376f57cb5aee1ad 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs
@@ -11,7 +11,7 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 {
-	public class XMLElectricStorageSystemDeclarationInputData : AbstractCommonComponentType,
+	public class XMLElectricStorageSystemDeclarationInputDataV24 : AbstractCommonComponentType,
 		IXMLElectricStorageSystemDeclarationInputData
 	{
 		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
@@ -21,7 +21,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		private IList<IElectricStorageDeclarationInputData> _electricStorageElements;
 		private IXMLDeclarationVehicleData _vehicle;
 		
-		public XMLElectricStorageSystemDeclarationInputData(
+		public XMLElectricStorageSystemDeclarationInputDataV24(
 			IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
 			: base(componentNode, sourceFile)
 		{
@@ -84,14 +84,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLBatteryPackDeclarationDeclarationInputData : AbstractCommonComponentType,
+	public class XMLBatteryPackDeclarationDeclarationInputDataV24 : AbstractCommonComponentType,
 		IXMLBatteryPackDeclarationInputData
 	{
 		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 		public const string XSD_TYPE = "REESSBatteryType";
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
-		public XMLBatteryPackDeclarationDeclarationInputData(XmlNode componentNode, string sourceFile) 
+		public XMLBatteryPackDeclarationDeclarationInputDataV24(XmlNode componentNode, string sourceFile) 
 			: base(componentNode, sourceFile)
 		{
 			SourceType = DataSourceType.XMLEmbedded;
@@ -151,16 +151,29 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		#endregion
 	}
-	
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLBatteryPackDeclarationDeclarationInputDataV01 : XMLBatteryPackDeclarationDeclarationInputDataV24
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "REESSBatteryType";
+
+		public static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLBatteryPackDeclarationDeclarationInputDataV01(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { }
+	}
+
 	// ---------------------------------------------------------------------------------------
-	
-	public class XMLSuperCapDeclarationInputData : AbstractCommonComponentType, IXMLSuperCapDeclarationInputData
+
+	public class XMLSuperCapDeclarationInputDataV24 : AbstractCommonComponentType, IXMLSuperCapDeclarationInputData
 	{
 		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 		public const string XSD_TYPE = "REESSCapacitorType";
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 		
-		public XMLSuperCapDeclarationInputData(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile)
+		public XMLSuperCapDeclarationInputDataV24(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile)
 		{
 			SourceType = DataSourceType.XMLEmbedded;
 		}
@@ -174,7 +187,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		#region Implementation of ISuperCapDeclarationInputData
 
 		public Farad Capacity => GetDouble(XMLNames.Capacitor_Capacitance).SI<Farad>();
-		public Ohm InternalResistance => GetDouble(XMLNames.Capacitor_InternalResistance).SI<Ohm>() / 1000;
+		public Ohm InternalResistance => GetDouble(XMLNames.Capacitor_InternalResistance).SI(Unit.SI.Milli.Ohm).Cast<Ohm>();
 		public Volt MinVoltage => GetDouble(XMLNames.Capacitor_MinVoltage).SI<Volt>();
 		public Volt MaxVoltage => GetDouble(XMLNames.Capacitor_MaxVoltage).SI<Volt>();
 		public Ampere MaxCurrentCharge => GetDouble(XMLNames.Capacitor_MaxChargingCurrent).SI<Ampere>();
@@ -193,4 +206,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		#endregion
 	}
+
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLSuperCapDeclarationInputDataV01 : XMLSuperCapDeclarationInputDataV24
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "REESSCapacitorType";
+
+		public static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLSuperCapDeclarationInputDataV01(XmlNode componentNode, string sourceFile) : base(componentNode, sourceFile) { }
+	}
+
+	//===================
+
+		public class XMLElectricStorageSystemDeclarationInputDataV01 : XMLElectricStorageSystemDeclarationInputDataV24
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "ElectricEnergyStorageType";
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+
+		public XMLElectricStorageSystemDeclarationInputDataV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs
index 44a39085ca37faef4c22000be90398cc123d6091..c5db2049232e61b5f3bd9117d603d0243cac5af7 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLGearData.cs
@@ -133,7 +133,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 = "TransmissionGearPIFType";
+		public new const string XSD_TYPE = "TransmissionGearVIFType";
 
 		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/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs
index 11204f01839578431c2017c4d3239517e9271415..f1fbdf90a1d4ad1df564d496d38f2267b15047ff 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs
@@ -202,18 +202,24 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		public XMLDeclarationHevCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLDeclarationPeVompletedBusDataProviderV24 : AbstractXMLDeclarationCompletedBusDataProviderV24
+	public class XMLDeclarationPEVCompletedBusDataProviderV24 : AbstractXMLDeclarationCompletedBusDataProviderV24
 	{
 		public new const string XSD_TYPE = "Vehicle_PEV_CompletedBusDeclarationType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE =
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
-		public XMLDeclarationPeVompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+		public XMLDeclarationPEVCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+
+		public override bool OvcHev => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -226,6 +232,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		public XMLDeclarationIepcCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+
+		public override bool OvcHev => true;
+
+		public override bool HybridElectricHDV => false;
+
 	}
 
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs
index a4458e285e0f9ff508e73d65816e882b172033d8..c04f4fd92a9b6f4d3068389b7dd4e24946f3f450 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationExemptedVehicleDataProvider.cs
@@ -11,11 +11,11 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 {
-	public abstract class AbtractXMLDeclarationExemptedVehicleDataProviderV24 : XMLDeclarationVehicleDataProviderV20
+	public abstract class AbstractXMLDeclarationExemptedVehicleDataProviderV24 : XMLDeclarationVehicleDataProviderV20
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 
-		public AbtractXMLDeclarationExemptedVehicleDataProviderV24(
+		public AbstractXMLDeclarationExemptedVehicleDataProviderV24(
 			IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile)
 		{
 			SourceType = DataSourceType.XMLEmbedded;
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		#endregion
 
-		public override VehicleCategory VehicleCategory => VehicleCategory.HeavyBusPrimaryVehicle;
+		public override VehicleCategory VehicleCategory => VehicleCategoryHelper.Parse(GetString(XMLNames.ChassisConfiguration));
 
 		public override bool ExemptedVehicle => true;
 
@@ -45,7 +45,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override bool VocationalVehicle => false;
 
-		public override bool? SleeperCab => false;
+		public override bool? SleeperCab =>
+			ElementExists(XMLNames.Vehicle_SleeperCab) && GetBool(XMLNames.Vehicle_SleeperCab);
 
 		public override TankSystem? TankSystem => null;
 
@@ -78,10 +79,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override double RetarderRatio => 0;
 
 		public override IPTOTransmissionInputData PTOTransmissionInputData => null;
+
+		public override Kilogram CurbMassChassis => GetDouble(XMLNames.CorrectedActualMass).SI<Kilogram>();
 	}
 
 	// ---------------------------------------------------------------------------------------
-	public class XMLDeclarationExemptedHeavyLorryDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24
+	public class XMLDeclarationExemptedHeavyLorryDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 
@@ -90,12 +93,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public new static readonly string QUALIFIED_XSD_TYPE =
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
-		public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+		public XMLDeclarationExemptedHeavyLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
+			: base(jobData, xmlNode, sourceFile) { }
+
+
+		#region Overrides of XMLDeclarationVehicleDataProviderV10
+
+	
+
+		#endregion
 	}
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLDeclarationExemptedMediumLorryDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24
+	public class XMLDeclarationExemptedMediumLorryDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 
@@ -109,7 +120,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLDeclarationExemptedPrimaryBusDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24
+	public class XMLDeclarationExemptedPrimaryBusDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 
@@ -129,7 +140,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLDeclarationExemptedCompletedBusDataProviderV24 : AbtractXMLDeclarationExemptedVehicleDataProviderV24
+	public class XMLDeclarationExemptedCompletedBusDataProviderV24 : AbstractXMLDeclarationExemptedVehicleDataProviderV24
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 		public new const string XSD_TYPE = "Vehicle_Exempted_CompletedBusDeclarationType";
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs
index 172959b3d5df9b65ecaaea8c99ab67c7807d2581..4b0bed4c08717bf7660f452e89d37fadcbf696aa 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs
@@ -38,6 +38,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 				: (TankSystem?)null;
 
 		#endregion
+
+
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.ConventionalVehicle;
+		}
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -81,6 +87,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 				: null;
 
 		#endregion
+
+		public override bool HybridElectricHDV => true;
+
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.ParallelHybridVehicle;
+		}
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -108,6 +122,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
 
 		#endregion
+
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.SerialHybridVehicle;
+		}
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -138,9 +160,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override CubicMeter CargoVolume => null;
 
+		public override bool OvcHev => true;
+
 		#endregion
 
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
+
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.BatteryElectricVehicle;
+		}
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -161,12 +190,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
 
-		
-		
+		public override bool OvcHev => true;
 
 		#endregion
 
-
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.BatteryElectricVehicle;
+		}
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -205,6 +236,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override TableData BoostingLimitations => null;
 
 		#endregion
+
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.SerialHybridVehicle;
+		}
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs
index 5f6c85d56a8ac17b84ed42561efc30d6455522fc..643a30e3e60bec57021347944db07143d268e837 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs
@@ -71,6 +71,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public XMLDeclarationConventionalMediumLorryVehicleDataProviderV24(
 			IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode,
 			sourceFile) { }
+
+		#region Overrides of AbstractXMLVehicleDataProviderV24
+
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ConventionalVehicle;
+
+		#endregion
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -85,6 +91,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public XMLDeclarationHevPxMediumLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
 			: base(jobData, xmlNode, sourceFile) { }
 
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ParallelHybridVehicle;
+
 		#region Overrides of XMLDeclarationHevPxHeavyLorryDataProviderV24
 
 		public override string PowertrainPositionPrefix => "P";
@@ -107,6 +115,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override XmlElement PTONode => null;
 
 		#endregion
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -123,6 +134,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		#endregion
 
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle;
 		public XMLDeclarationHevSxMediumLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
 			: base(jobData, xmlNode, sourceFile) { }
 
@@ -134,6 +146,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override XmlElement PTONode => null;
 
 		#endregion
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -150,6 +165,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		#endregion
 
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle;
+
 		public XMLDeclarationPevMediumLorryExDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
 			: base(jobData, xmlNode, sourceFile) { }
 
@@ -166,6 +183,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
 
+		public override bool OvcHev => true;
+
 		#endregion
 	}
 
@@ -181,6 +200,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public XMLDeclarationIepcMediumLorryDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
 			: base(jobData, xmlNode, sourceFile) { }
 
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle;
 
 		#region Overrides of XMLDeclarationVehicleDataProviderV10
 
@@ -195,6 +215,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override Kilogram GrossVehicleMassRating => GetDouble(XMLNames.TPMLM).SI<Kilogram>();
 
+		public override bool OvcHev => true;
+
+
 		#endregion
 	}
 
@@ -228,6 +251,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override XmlElement PTONode => null;
 
 		#endregion
+
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle;
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs
index df61c5b5071b21c2fa029a09eab91bdb0e3ede71..a4186e40a265f790d222fd81a96a5426fd6f9d66 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs
@@ -83,6 +83,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		protected override DataSourceType SourceType { get; }
 
 		#endregion
+		public override VectoSimulationJobType VehicleType
+		{
+			get => VectoSimulationJobType.ConventionalVehicle;
+		}
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -110,6 +114,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public XMLDeclarationHevPxPrimaryBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile)
 			: base(jobData, xmlNode, sourceFile) { }
+
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ParallelHybridVehicle;
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -130,6 +139,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 			: base(jobData, xmlNode, sourceFile) { }
 
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
+
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle;
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -154,6 +168,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
 
 		#endregion
+
+		public override bool OvcHev => true;
+
+
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle;
 	}
 
 
@@ -175,7 +194,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override bool Articulated => GetBool(XMLNames.Vehicle_Articulated);
 
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.BatteryElectricVehicle;
+
 		#endregion
+
+		public override bool OvcHev => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -199,8 +223,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
 
+		#region Overrides of AbstractXMLVehicleDataProviderV24
+
+		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle;
 
 		#endregion
+
+		#endregion
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs
index 37de4917517342fc4abe7c4f7159064a273332af..eb247dd05d26dabb1f4bbd620e299af4527bddd0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLDeclarationInputData.cs
@@ -48,7 +48,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces
 		XmlNode ApplicationInformationNode { get; }
 	}
 
-	public interface IXMLMultistageInputDataProvider : IMultistageBusInputDataProvider, IXMLResource
+	public interface IXMLMultistageInputDataProvider : IMultistepBusInputDataProvider, IXMLResource
 	{
 		IXMLDeclarationMultistageVehicleInputDataReader Reader { set; }
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs
index b31986822a02a0653f13b7e2b324ce76e2b06cba..79ed20d1a651d249c367b6a87e24b227988af2f3 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Interfaces/IXMLTyreDeclarationInputData.cs
@@ -29,9 +29,13 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using System.Xml;
 using TUGraz.VectoCommon.InputData;
 
 namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces
 {
-	public interface IXMLTyreDeclarationInputData : ITyreDeclarationInputData, IXMLResource { }
+	public interface IXMLTyreDeclarationInputData : ITyreDeclarationInputData, IXMLResource
+	{
+		XmlNode GetXmlNode { get; }
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs
index 8f61766998e747ae0ca2b542dbf3a8f650fe4b6e..359aced15d0c743a61d9ecc0bb9e385134afcef0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataMultistageV01InjectModule.cs
@@ -30,43 +30,182 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 			Bind<IXMLPrimaryVehicleBusInputData>().To<XMLDeclarationMultistagePrimaryVehicleInputDataV01>()
 				.Named(XMLDeclarationMultistagePrimaryVehicleInputDataV01.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLDeclarationPrimaryBusAuxiliariesDataProviderV01>()
-				.Named(XMLDeclarationPrimaryBusAuxiliariesDataProviderV01.QUALIFIED_XSD_TYPE);
+			Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01>()
+				.Named(XMLPrimaryBusAuxiliaries_Conventional_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01>()
+				.Named(XMLPrimaryBusAuxiliaries_HEV_P_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01>()
+				.Named(XMLPrimaryBusAuxiliaries_HEV_S_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_PEV_DataProviderV01>()
+				.Named(XMLPrimaryBusAuxiliaries_PEV_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLBusAuxiliariesDeclarationData>().To<XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01>()
+				.Named(XMLPrimaryBusAuxiliaries_IEPC_DataProviderV01.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLDeclarationPrimaryVehicleBusInputDataReader>().To<XMLMultistagePrimaryVehicleReaderV01>()
 				.Named(XMLMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
 			
-			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01>()
-				.Named(XMLDeclarationMultistagePrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01>()
+				.Named(XMLDeclarationMultistage_Conventional_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01>()
+				.Named(XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01>()
+				.Named(XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01>()
+				.Named(XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01>()
+				.Named(XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
 
-            Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01>()
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01>()
+				.Named(XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLPrimaryVehicleBusJobInputData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01>()
                 .Named(XMLDeclarationMultistageExemptedPrimaryVehicleBusJobInputDataProviderV01.QUALIFIED_XSD_TYPE);
 
-            Bind<IXMLJobDataReader>().To<XMLJobDataMultistagePrimaryVehicleReaderV01>()
-				.Named(XMLJobDataMultistagePrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
+            Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01>()
+				.Named(XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01>()
+				.Named(XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01>()
+				.Named(XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01>()
+				.Named(XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01>()
+				.Named(XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLJobDataReader>().To<XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01>()
+				.Named(XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLJobDataReader>().To<XMLJobDataMultistageExemptedPrimaryVehicleReaderV01>()
 				.Named(XMLJobDataMultistageExemptedPrimaryVehicleReaderV01.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01>()
-				.Named(XMLDeclarationMultistagePrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01>()
+				.Named(XMLDeclarationMultistage_Conventional_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01>()
+				.Named(XMLDeclarationMultistage_HEV_Px_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01>()
+				.Named(XMLDeclarationMultistage_HEV_Sx_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01>()
+				.Named(XMLDeclarationMultistage_HEV_IEPC_S_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01>()
+				.Named(XMLDeclarationMultistage_PEV_Ex_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01>()
+				.Named(XMLDeclarationMultistage_PEV_IEPC_PrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01>()
 				.Named(XMLDeclarationMultistageExemptedPrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
 			// -----------------------------------
 
-			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>()
-				.Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.QUALIFIED_XSD_TYPE);
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLGearboxReader>().To<XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01.GEARBOX_READER_QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLGearboxReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>()
-				.Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.GEARBOX_READER_QUALIFIED_XSD_TYPE);
+			Bind<IXMLAxlesReader>().To<XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01>()
+				.Named(XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01.AXLES_READER_QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLAxlesReader>().To<XMLMultistagePrimaryVehicleBusComponentReaderV01>()
-				.Named(XMLMultistagePrimaryVehicleBusComponentReaderV01.AXLES_READER_QUALIFIED_XSD_TYPE);
+			Bind<IXMLElectricMachineSystemReader>().To<XMLElectricMachineSystemReaderV01>().Named(XMLElectricMachineSystemReaderV01.QUALIFIED_XSD_TYPE);
+			Bind<IXMLElectricMachineSystemReader>().To<XMLElectricMachineSystemReaderV01>().Named(XMLElectricMachineSystemReaderV01.QUALIFIED_GEN_XSD_TYPE);
+
+			Bind<IXMLElectricStorageSystemDeclarationInputData>().To<XMLElectricStorageSystemDeclarationInputDataV01>()
+				.Named(XMLElectricStorageSystemDeclarationInputDataV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLREESSReader>().To<XMLREESSReaderV01>().Named(XMLREESSReaderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLBatteryPackDeclarationInputData>().To<XMLBatteryPackDeclarationDeclarationInputDataV01>()
+				.Named(XMLBatteryPackDeclarationDeclarationInputDataV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLSuperCapDeclarationInputData>().To<XMLSuperCapDeclarationInputDataV01>()
+				.Named(XMLSuperCapDeclarationInputDataV01.QUALIFIED_XSD_TYPE);
+
+			//Bind<IXMLADCDeclarationInputData>().To<XMLADCDeclarationInputDataV23>()
+			//	.Named(XMLADCDeclarationInputDataV23.QUALIFIED_XSD_TYPE);
+
+
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_Conventional_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_Px_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S2_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S3_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_S4_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_HEV_IEPC_S_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E2_DataProviderV01.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLVehicleComponentsDeclaration>()
-				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01>()
-				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBusDataProviderV01.QUALIFIED_XSD_TYPE);
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E3_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_E4_DataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLVehicleComponentsDeclaration>()
+				.To<XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01>()
+				.Named(XMLDeclarationComponentsMultistagePrimaryVehicleBus_PEV_IEPC_DataProviderV01.QUALIFIED_XSD_TYPE);
 
 			// -----------------------------------
 
@@ -98,6 +237,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 			Bind<IXMLResultsInputData>().To<XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01>()
 				.Named(XMLDeclarationMultistagePrimaryVehicleBusResultsInputDataProviderV01.QUALIFIED_XSD_TYPE);
 
+            Bind<IXMLElectricMachinesDeclarationInputData>().To<XMLDeclarationElectricMachinesDataProviderV01>().Named(
+                XMLDeclarationElectricMachinesDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLElectricMachinesDeclarationInputData>().To<XMLDeclarationElectricMachinesDataProviderV01>().Named(
+				XMLDeclarationElectricMachinesDataProviderV01.QUALIFIED_GEN_XSD_TYPE);
+
+			Bind<IXMLElectricMotorDeclarationInputData>().To<XMLElectricMotorDeclarationInputDataProviderV01>()
+                .Named(XMLElectricMotorDeclarationInputDataProviderV01.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLIEPCInputData>().To<XMLElectricMotorIEPCIInputDataProviderV01>()
+				.Named(XMLElectricMotorIEPCIInputDataProviderV01.QUALIFIED_XSD_TYPE);
 
 			// -----------------------------------
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs
index 6d3098666294a5f40584badcc167690c1dbea1c8..4a05a67e5ed1e15bbc742316fc9b5ad996c45f5a 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV24InjectModule.cs
@@ -19,11 +19,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 
 			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>()
 				.Named(XMLDeclarationConventionalCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE);
-			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>()
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationHevCompletedBusDataProviderV24>()
 				.Named(XMLDeclarationHevCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE);
-			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>()
-				.Named(XMLDeclarationPeVompletedBusDataProviderV24.QUALIFIED_XSD_TYPE);
-			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationConventionalCompletedBusDataProviderV24>()
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationPEVCompletedBusDataProviderV24>()
+				.Named(XMLDeclarationPEVCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE);
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationIepcCompletedBusDataProviderV24>()
 				.Named(XMLDeclarationIepcCompletedBusDataProviderV24.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationExemptedCompletedBusDataProviderV24>()
@@ -315,14 +315,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 			Bind<IXMLIEPCInputData>().To<XMLElectricMotorIepciStandardInputDataProviderV23>()
 				.Named(XMLElectricMotorIepciStandardInputDataProviderV23.QUALIFIED_XSD_TYPE);
 			
-			Bind<IXMLElectricStorageSystemDeclarationInputData>().To<XMLElectricStorageSystemDeclarationInputData>()
-				.Named(XMLElectricStorageSystemDeclarationInputData.QUALIFIED_XSD_TYPE);
+			Bind<IXMLElectricStorageSystemDeclarationInputData>().To<XMLElectricStorageSystemDeclarationInputDataV24>()
+				.Named(XMLElectricStorageSystemDeclarationInputDataV24.QUALIFIED_XSD_TYPE);
 			
-			Bind<IXMLBatteryPackDeclarationInputData>().To<XMLBatteryPackDeclarationDeclarationInputData>()
-				.Named(XMLBatteryPackDeclarationDeclarationInputData.QUALIFIED_XSD_TYPE);
+			Bind<IXMLBatteryPackDeclarationInputData>().To<XMLBatteryPackDeclarationDeclarationInputDataV24>()
+				.Named(XMLBatteryPackDeclarationDeclarationInputDataV24.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLSuperCapDeclarationInputData>().To<XMLSuperCapDeclarationInputData>()
-				.Named(XMLSuperCapDeclarationInputData.QUALIFIED_XSD_TYPE);
+			Bind<IXMLSuperCapDeclarationInputData>().To<XMLSuperCapDeclarationInputDataV24>()
+				.Named(XMLSuperCapDeclarationInputDataV24.QUALIFIED_XSD_TYPE);
 
 			Bind<IXMLADCDeclarationInputData>().To<XMLADCDeclarationInputDataV23>()
 				.Named(XMLADCDeclarationInputDataV23.QUALIFIED_XSD_TYPE);
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV26InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV26InjectModule.cs
deleted file mode 100644
index 228888aa42a97cd10366bc0f4517e962434b795e..0000000000000000000000000000000000000000
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV26InjectModule.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using Ninject.Modules;
-using TUGraz.VectoCommon.InputData;
-using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
-using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
-using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader;
-using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl;
-
-namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules {
-	public class XMLDeclarationInputDataV26InjectModule : NinjectModule
-	{
-		#region Overrides of NinjectModule
-
-		public override void Load()
-		{
-			
-
-		}
-
-		#endregion
-	}
-}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs
index cc6f795b7e7f2509428bda2e85fca9b4e41a896a..8115e26038546b04ea2c9a2cb52841a91f48f584 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationReaderInjectModule.cs
@@ -52,7 +52,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
 				new XMLDeclarationInputDataV22InjectModule(),
 				new XMLDeclarationInputDataV221InjectModule(),
 				new XMLDeclarationInputDataV23InjectModule(),
-				new XMLDeclarationInputDataV26InjectModule(),
 				new XMLDeclarationInputDataV24InjectModule(),
 				new XMLDeclarationInputDataMultistageV01InjectModule(), 
 			});
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs
index 16c5fdc36b9dc5ca1e97b79cbbc6549ada8cf8a9..8242415347b83143109bdf0aa82030101349cf0d 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/AbstractComponentReader.cs
@@ -50,12 +50,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			ParentComponent = parent;
 		}
 
-		protected virtual T CreateComponent<T>(
-			string component, Func<string, XmlNode, string, T> componentCreator, bool createDummy = false)
+		protected virtual XmlNode GetComponentNode(string component)
 		{
 			var componentNode = BaseNode.LocalName == component
 				? BaseNode
 				: BaseNode.SelectSingleNode(XMLHelper.QueryLocalName(component));
+
+			return componentNode;
+		}
+
+		protected virtual T CreateComponent<T>(
+			string component, Func<string, XmlNode, string, T> componentCreator, bool createDummy = false)
+		{
+			var componentNode = GetComponentNode(component);
 			var dataNode =
 				componentNode?.SelectSingleNode($"./*[local-name()='{XMLNames.ComponentDataWrapper}']");
 			if (componentNode != null) {
@@ -67,6 +74,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 				return componentCreator(version, componentNode, ParentComponent.DataSource.SourceFile);
 			}
 
+
+
 			if (createDummy) {
 				try {
 					return componentCreator(null, null, null);
@@ -75,6 +84,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 				}
 			}
 
+
+
 			throw new VectoException("Component {0} not found!", component);
 		}
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs
index 1718297bc6925d871ae745363c36d3c9637407a9..f0fbde21e29c2a6ddf564843bf2020252e249139 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs
@@ -120,7 +120,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 			(_electricStorageSystemInputData  = GetElectricEnergyStorageEntries());
 
 		public virtual IIEPCDeclarationInputData IEPCInputData => _iepcDeclarationInputData ?? 
-														(_iepcDeclarationInputData = CreateComponent( XMLNames.IEPC_Component, IEPCCreator));
+														(_iepcDeclarationInputData = GetComponentNode(XMLNames.IEPC_Component) != null ? CreateComponent( XMLNames.IEPC_Component, IEPCCreator) : null);
 
 		public virtual ITransmissionInputData CreateGear(XmlNode gearNode)
 		{
@@ -558,13 +558,61 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 	// ---------------------------------------------------------------------------------------
 
+	public class XMLElectricMachineSystemReaderV01 : AbstractComponentReader, IXMLElectricMachineSystemReader
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "ElectricMachineType";
+		public const string XSD_GEN_TYPE = "ElectricMachineGENType";
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public static readonly string QUALIFIED_GEN_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_GEN_TYPE);
+
+		[Inject]
+		public IDeclarationInjectFactory Factory { protected get; set; }
+
+		public XMLElectricMachineSystemReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode,
+			string sourceFile) : base(vehicle, componentNode)
+		{
+
+		}
+
+		#region Implementation of IXMLElectricMotorReader
+
+		public virtual IElectricMotorDeclarationInputData CreateElectricMachineSystem(XmlNode electricMachineSystem)
+		{
+			return CreateComponent(XMLNames.ElectricMachineSystem, ElectricMachinesCreator);
+		}
+
+		public virtual IADCDeclarationInputData ADCInputData {
+			get {
+				return CreateComponent("ADC", ADCCreator);
+			}
+		}
+
+
+		protected virtual IADCDeclarationInputData ADCCreator(string version,
+			XmlNode componentNode, string sourcefile)
+		{
+			return Factory.CreateADCDeclarationInputData(version, componentNode, sourcefile);
+		}
+
+		protected virtual IElectricMotorDeclarationInputData ElectricMachinesCreator(string version,
+			XmlNode componentNode, string sourcefile)
+		{
+			return Factory.CreateElectricMotorDeclarationInputData(version, componentNode, sourcefile);
+		}
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+
 	public class XMLREESSReaderV24 : AbstractComponentReader, IXMLREESSReader
 	{
 		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
 		public const string XSD_TYPE = "ElectricEnergyStorageType";
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
-		[Inject] public IDeclarationInjectFactory Factory { protected get; set; }
+		[Inject] public virtual IDeclarationInjectFactory Factory { protected get; set; }
 
 		public XMLREESSReaderV24(IXMLDeclarationVehicleData vehicle, XmlNode componentNode,
 			string sourceFile) : base(vehicle, componentNode) { }
@@ -604,14 +652,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 	}
 
 	// ---------------------------------------------------------------------------------------
+	public class XMLREESSReaderV01 : XMLREESSReaderV24
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+		public const string XSD_TYPE = "ElectricEnergyStorageType";
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
-	public class XMLMultistagePrimaryVehicleBusComponentReaderV01 : XMLComponentReaderV20
+		
+		public XMLREESSReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentNode,
+			string sourceFile) : base(vehicle, componentNode, sourceFile) { }
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01 : XMLComponentReaderV20
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public new const string XSD_TYPE = "VehicleComponentsPIFType";
-		public new const string GEARBOX_READER_TYPE = "TransmissionDataPIFType";
-		public new const string AXLES_READER_TYPE = "AxleWheelsDataPIFType";
+		public new const string XSD_TYPE = "Vehicle_Conventional_ComponentsVIFType";
+		public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
 		
 		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 		public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
@@ -619,7 +680,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 		protected IBusAuxiliariesDeclarationData _busAuxInputData;
 
-		public XMLMultistagePrimaryVehicleBusComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode)
+		public XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode)
 			: base(vehicle, componentsNode) { }
 
 		public override IGearboxDeclarationInputData GearboxInputData => _gearboxInputData ?? (_gearboxInputData = CreateComponent(XMLNames.Component_Transmission, GearboxCreator));
@@ -638,6 +699,190 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		}
 	}
 
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-Px_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_HEV_Px_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base (vehicle, componentsNode) {}
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-S2_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_HEV_S2_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-S3_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_HEV_S3_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-S4_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_HEV_S4_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+
+		#region Overrides of XMLComponentReaderV10
+
+		public override IAxleGearInputData AxleGearInputData => null;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_HEV-IEPC-S_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_HEV_IEPC_S_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+
+		#region Overrides of XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+
+		public override IGearboxDeclarationInputData GearboxInputData => null;
+
+		#endregion
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-E2_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_PEV_E2_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-E3_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_PEV_E3_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-E4_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_PEV_E4_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+	}
+
+	// ---------------------------------------------------------------------------------------
+	public class XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01 : XMLMultistagePrimaryVehicleBus_Conventional_ComponentReaderV01
+	{
+		public new static readonly XNamespace NAMESPACE_URI =
+			XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public new const string XSD_TYPE = "Vehicle_PEV-IEPC_ComponentsVIFType";
+		//public new const string GEARBOX_READER_TYPE = "TransmissionDataVIFType";
+		//public new const string AXLES_READER_TYPE = "AxleWheelsDataVIFType";
+
+		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
+
+		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
+
+		public XMLMultistagePrimaryVehicleBus_PEV_IEPC_ComponentReaderV01(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode) : base(vehicle, componentsNode) { }
+	}
+
 	// ---------------------------------------------------------------------------------------
 
 	public class XMLPrimaryBusHEVPxDeclarationComponentReaderV201 : XMLComponentReaderV10
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 31443709b435892ab6860cd2b8f78e8f7fd68ba0..c8bbb71626a7033efe1130ec1dd60246cce4b780 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs
@@ -487,6 +487,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		{
 			_primaryVehicle = primaryVehicle;
 		}
+		public VectoSimulationJobType VehicleType { get => _primaryVehicle.Vehicle.VehicleType; }
 
 		#region ManufacturingStage mandatory properties
 
@@ -591,27 +592,61 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 				////return _manufacturingStages.Any(x => x.Vehicle.ExemptedVehicle);
 			}
 		}
-		public VehicleCategory VehicleCategory { get; }
-		public AxleConfiguration AxleConfiguration { get; }
+		public VehicleCategory VehicleCategory
+		{
+			get
+			{
+				if (ExemptedVehicle) {
+					return IsInputDataCompleteExempted(VectoSimulationJobType.ConventionalVehicle, false) 
+						? VehicleCategory.HeavyBusCompletedVehicle
+						: VehicleCategory.HeavyBusInterimVehicle;
+				}
+				return VehicleDeclarationType == VehicleDeclarationType.final
+					? VehicleCategory.HeavyBusCompletedVehicle
+					: VehicleCategory.HeavyBusInterimVehicle;
+			}
+		}
+
+		#region Properties taken from primary vehicle
+		public AxleConfiguration AxleConfiguration => _primaryVehicle.Vehicle.AxleConfiguration;
 		public IList<ITorqueLimitInputData> TorqueLimits { get; }
+		public bool HybridElectricHDV => _primaryVehicle.Vehicle.HybridElectricHDV;
+
+		public bool ZeroEmissionVehicle => _primaryVehicle.Vehicle.ZeroEmissionVehicle;
+
+		public bool VocationalVehicle => _primaryVehicle.Vehicle.VocationalVehicle;
+		public bool? SleeperCab => _primaryVehicle.Vehicle.SleeperCab;
+
+		public bool DualFuelVehicle => _primaryVehicle.Vehicle.DualFuelVehicle;
+
+		public bool OvcHev => _primaryVehicle.Vehicle.OvcHev;
+
+		public PerSecond EngineIdleSpeed => _primaryVehicle.Vehicle.EngineIdleSpeed;
+
+		public Watt MaxNetPower1 => _primaryVehicle.Vehicle.MaxNetPower1;
+		public Watt MaxNetPower2 => _primaryVehicle.Vehicle.MaxNetPower2;
+		public string ExemptedTechnology => _primaryVehicle.Vehicle.ExemptedTechnology;
+
+		public ArchitectureID ArchitectureID => _primaryVehicle.Vehicle.ArchitectureID;
 
-		public PerSecond EngineIdleSpeed { get; }
-		public bool VocationalVehicle { get; }
-		public bool? SleeperCab { get; }
-		public bool ZeroEmissionVehicle { get; }
-		public bool HybridElectricHDV { get; }
-		public bool DualFuelVehicle { get; }
-		public Watt MaxNetPower1 { get; }
-		public Watt MaxNetPower2 { get; }
-		public string ExemptedTechnology { get; }
-
-		public CubicMeter CargoVolume { get; }
+		public Watt MaxChargingPower => _primaryVehicle.Vehicle.MaxChargingPower;
+
+        #endregion
+
+
+
+
+
+
+
+
+        public CubicMeter CargoVolume { get; }
 		public bool Articulated { get; }
 
 		public XmlNode XMLSource { get; }
-		public ArchitectureID ArchitectureID { get; }
-		public bool OvcHev { get; }
-		public Watt MaxChargingPower { get; }
+		
+
+
 
 		#endregion
 
@@ -868,7 +903,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 		private bool PrimaryGearboxIsAT()
 		{
-			switch (_primaryVehicleData.Components.GearboxInputData.Type) {
+			switch (_primaryVehicleData.Components.GearboxInputData?.Type) {
 				case GearboxType.ATPowerSplit:
 				case GearboxType.ATSerial:
 					return true;
@@ -1028,6 +1063,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		public SquareMeter TransferredAirDragArea => AirdragEntry?.TransferredAirDragArea;
 
 		public SquareMeter AirDragArea_0 => AirdragEntry.AirDragArea_0;
+		
+		public XmlNode XMLSource => AirdragEntry.XMLSource;
 
 		public DataSource DataSource => AirdragEntry?.DataSource;
 		public bool SavedInDeclarationMode { get; }
@@ -1071,6 +1108,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		private ConsolidateElectricConsumerData _consolidateElectricConsumerData;
 		private ConsolidatedHVACBusAuxiliariesData _consolidatedHVACBusAuxiliariesData;
 		private XmlNode _xmlNode;
+		private IList<string> _consolidateSteeringPumpData;
 
 
 		public ConsolidatedBusAuxiliariesData(IEnumerable<IManufacturingStageInputData> manufacturingStages)
@@ -1180,10 +1218,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		}
 
 	}
+	
 
 	// ---------------------------------------------------------------------------------------
 
-	public class ConsolidateElectricConsumerData : ConsolidatedDataBase, IElectricConsumersDeclarationData
+		public class ConsolidateElectricConsumerData : ConsolidatedDataBase, IElectricConsumersDeclarationData
 	{
 		public ConsolidateElectricConsumerData(IEnumerable<IManufacturingStageInputData> manufacturingStages)
 			: base(manufacturingStages) { }
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 52d4631c79bfe8d3da587b5e276c413af565dc2a..7abb3d9dfbe0f5541353a31baf57f4f25a01fdae 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLJobDataReader.cs
@@ -137,11 +137,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 	// ---------------------------------------------------------------------------------------
 	
-	public class XMLJobDataMultistagePrimaryVehicleReaderV01 : AbstractComponentReader, IXMLJobDataReader
+	public class XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01 : AbstractComponentReader, IXMLJobDataReader
 	{
 		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
 
-		public const string XSD_TYPE = "VehiclePIFType";
+		public const string XSD_TYPE = "ConventionalVehicleVIFType";
 
 		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
@@ -153,7 +153,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 		private readonly IXMLPrimaryVehicleBusJobInputData _primaryBusJobData;
 
-		public XMLJobDataMultistagePrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
+		public XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
 			: base(busJobData, jobNode)
 		{
 			_primaryBusJobData = busJobData;
@@ -173,11 +173,86 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 	// ---------------------------------------------------------------------------------------
 
-	public class XMLJobDataMultistageExemptedPrimaryVehicleReaderV01 : XMLJobDataMultistagePrimaryVehicleReaderV01
+	public class XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "HEV-Px_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLJobDataMultistage_HEV_Px_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
+			: base(busJobData, jobNode)
+		{ }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "HEV-Sx_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLJobDataMultistage_HEV_Sx_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
+			: base(busJobData, jobNode)
+		{ }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "HEV-IEPC-S_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLJobDataMultistage_HEV_IEPC_S_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
+			: base(busJobData, jobNode)
+		{ }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "PEV_Ex_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLJobDataMultistage_PEV_Ex_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
+			: base(busJobData, jobNode)
+		{ }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01
+	{
+		public static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_MULTISTAGE_BUS_VEHICLE_NAMESPACE_VO1;
+
+		public const string XSD_TYPE = "IEPC_VehicleVIFType";
+
+		public static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+
+		public XMLJobDataMultistage_PEV_IEPC_PrimaryVehicleReaderV01(IXMLPrimaryVehicleBusJobInputData busJobData, XmlNode jobNode)
+			: base(busJobData, jobNode)
+		{ }
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLJobDataMultistageExemptedPrimaryVehicleReaderV01 : XMLJobDataMultistage_Conventional_PrimaryVehicleReaderV01
 	{
 		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/XMLInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
index 6b4c37b2b4a7601c03a34488db1b79393d9e5667..0a144792ccb442b556c992178fb3ad4566311877 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
@@ -155,7 +155,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 			}
 		}
 
-		private IMultistageBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
+		protected virtual IMultistepBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
 		{
 			var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType);
 			try {
@@ -167,7 +167,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 			}
 		}
 
-		private IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source)
+		protected virtual IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source)
 		{
 			var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType);
 
@@ -176,7 +176,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 			return input;
 		}
 
-		private IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source)
+		protected virtual IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source)
 		{
 			var versionNumber = XMLHelper.GetXsdType(xmlDoc.DocumentElement?.SchemaInfo.SchemaType);
 			try {
diff --git a/VectoCore/VectoCore/InputData/Impl/InputData.cs b/VectoCore/VectoCore/InputData/Impl/InputData.cs
index e3a7d4c85dfe044c14a3dad93e055fc48597a4c4..903a0d7ffe3656de5604285dbf323ec0b26dfabe 100644
--- a/VectoCore/VectoCore/InputData/Impl/InputData.cs
+++ b/VectoCore/VectoCore/InputData/Impl/InputData.cs
@@ -284,7 +284,7 @@ namespace TUGraz.VectoCore.InputData.Impl
 		public Kilogram TotalVehicleMass { get; internal set; }
 		public Kilogram Payload { get; internal set; }
 		public double PassengerCount { get; internal set; }
-		public string FuelMode { get; internal set; }
+		//public string FuelMode { get; internal set; }
 	}
 
 	public class ApplicationInformation : IApplicationInformation
diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs
index ac3b230f9ed4ad3710a0cc62dbfce276a1595ebc..26ed7e131ef7253f6869037009847f5a968fb5dc 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/BatterySOCReader.cs
@@ -2,6 +2,7 @@
 using System.IO;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery;
@@ -50,4 +51,21 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData {
 			public const string BatteryVoltage = "V";
 		}
 	}
+
+	public static class BatteryHelper
+	{
+		public static WattSecond TotalUsableCapacityInSimulation(this IBatteryPackDeclarationInputData batteryData)
+		{
+			var tmp = BatterySOCReader.Create(batteryData.VoltageCurve);
+			var voltage = tmp.Lookup(((batteryData.MinSOC ?? 0) + (batteryData.MaxSOC ?? 1)) / 2.0);
+			return batteryData.Capacity * voltage;
+		}
+
+		public static WattSecond TotalStorageCapacity(this IBatteryPackDeclarationInputData batteryData)
+		{
+			var tmp = BatterySOCReader.Create(batteryData.VoltageCurve);
+			var voltage = tmp.Lookup(((batteryData.MinSOC ?? 0) + (batteryData.MaxSOC ?? 1)) / 2.0);
+			return batteryData.Capacity * voltage;
+		}
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
index b2d437bb2d471ae5387a829f6757d700d2a0b5a4..b11c599c0695fa580b9b2254e5113d525004d290 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
@@ -168,8 +168,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				Current = spPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
 			};
 
-			var fanPower = DeclarationData.Fan.LookupElectricalPowerDemand(
-				vehicleClass, mission.MissionType, busAuxPrimary.FanTechnology);
+			var fanPower = vehicleData.VehicleType == VectoSimulationJobType.BatteryElectricVehicle
+				? 0.SI<Watt>()
+				: DeclarationData.Fan.LookupElectricalPowerDemand(
+					vehicleClass, mission.MissionType, busAuxPrimary.FanTechnology);
 			retVal[Constants.Auxiliaries.IDs.Fan] = new ElectricConsumerEntry {
 				ActiveDuringEngineStopStandstill = false,
 				ActiveDuringEngineStopDriving = false,
@@ -183,9 +185,14 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			IVehicleDeclarationInputData completedVehicle)
 		{
 			return new PneumaticUserInputsConfig {
-				CompressorMap = DeclarationData.BusAuxiliaries.GetCompressorMap(primaryBusAuxiliaries.PneumaticSupply.CompressorSize, primaryBusAuxiliaries.PneumaticSupply.Clutch),
+				CompressorMap = completedVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle
+					? null
+					: DeclarationData.BusAuxiliaries.GetCompressorMap(
+						primaryBusAuxiliaries.PneumaticSupply.CompressorSize,
+						primaryBusAuxiliaries.PneumaticSupply.Clutch),
 				CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency,
-				CompressorGearRatio = primaryBusAuxiliaries.PneumaticSupply.Ratio,
+				CompressorGearRatio = completedVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle
+					?  0 : primaryBusAuxiliaries.PneumaticSupply.Ratio,
 				SmartAirCompression = primaryBusAuxiliaries.PneumaticSupply.SmartAirCompression,
 				SmartRegeneration = primaryBusAuxiliaries.PneumaticSupply.SmartRegeneration,
 				KneelingHeight = VectoMath.Max(0.SI<Meter>(),
@@ -345,6 +352,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			Mission mission)
 		{
 			var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration;
+			if (!hvacConfiguration.HasValue || hvacConfiguration.IsOneOf(BusHVACSystemConfiguration.Configuration0, BusHVACSystemConfiguration.Unknown )) {
+				throw new VectoException(
+					$"HVAC Configuration {hvacConfiguration.ToXmlFormat()} is invalid for final step");
+			}
+
 			var correctionLengthDrivetrainVolume = DeclarationData.BusAuxiliaries.CorrectionLengthDrivetrainVolume(
 				completedVehicle.VehicleCode, completedVehicle.LowEntry, primaryVehicle.AxleConfiguration.NumAxles(),
 				primaryVehicle.Articulated);
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs
index d4895ea0363ba2a54b1f941e3d0fe50cfd503419..45f045e6f4807422299308d2936e76e721fbe85e 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterMultistageBus.cs
@@ -50,7 +50,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			var retVal = GetDefaultElectricalUserConfig();
 
 			var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries;
-			retVal.AlternatorType = primaryBusAuxiliaries.ElectricSupply.AlternatorTechnology;
+			retVal.AlternatorType = primaryVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle
+				? AlternatorType.None
+				: primaryBusAuxiliaries.ElectricSupply.AlternatorTechnology;
 			retVal.ElectricalConsumers = currentDemand;
 
 			retVal.AlternatorMap = new SimpleAlternator(
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
index 3a64be695e9cc6e04c6715e7a44513dafe6c6440..dbf110ae2245df035c2951433021b0d21131f1dd 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/AbstractDeclarationVectoRunDataFactory.cs
@@ -40,14 +40,18 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
 		protected ShiftStrategyParameters _gearshiftData;
 
 		protected AbstractDeclarationVectoRunDataFactory(
-			IDeclarationInputDataProvider dataProvider, IDeclarationReport report)
+			IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true)
 		{
 			InputDataProvider = dataProvider;
-			
-			if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle)){
-				throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation.");
+
+			if (checkJobType) {
+				if (dataProvider.JobInputData.JobType.IsOneOf(BatteryElectricVehicle, ParallelHybridVehicle, SerialHybridVehicle))
+				{
+					throw new VectoSimulationException("Electric and Hybrid Vehicles are not supported in Declaration Mode. Aborting Simulation.");
+				}
 			}
-			Report = report;
+           
+            Report = report;
 
 			_allowVocational = true;
 			//try {
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
index baeba8a41c51a797cccec0fc376049139df02c27..7d9a3523e5079a18b21af8309ed0bfc1b1f022fd 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedMultistageBusVectoRunDataFactory.cs
@@ -18,7 +18,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 {
 	public class DeclarationModeCompletedMultistageBusVectoRunDataFactory : LoggingObject, IVectoRunDataFactory
 	{
-		protected readonly IMultistageBusInputDataProvider InputDataProvider;
+		protected readonly IMultistepBusInputDataProvider InputDataProvider;
 		protected IDeclarationReport Report;
 
 		protected Segment _segmentCompletedBus;
@@ -34,7 +34,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		protected DeclarationDataAdapterCompletedBusGeneric DataAdapterGeneric = new DeclarationDataAdapterCompletedBusGeneric();
 
 		public DeclarationModeCompletedMultistageBusVectoRunDataFactory(
-			IMultistageBusInputDataProvider dataProvider, IDeclarationReport report)
+			IMultistepBusInputDataProvider dataProvider, IDeclarationReport report)
 		{
 
 			InputDataProvider = dataProvider;
@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			Report.InitializeReport(powertrainConfig, new List<List<FuelData.Entry>>());
 		}
 
-		private VectoRunData GetExemptedVectoRunData()
+		protected virtual VectoRunData GetExemptedVectoRunData()
 		{
 			return new VectoRunData() {
 				Exempted = true,
@@ -92,7 +92,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				Report = Report,
 				Mission = new Mission() {
 					MissionType = MissionType.ExemptedMission
-				}
+				},
+				InputData = InputDataProvider
 			};
 		}
 
@@ -147,63 +148,71 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		}
 
 
-		private IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted()
+		protected virtual IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted()
 		{
-			var engineModes = InputDataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData.EngineModes;
+			if (InputDataProvider.JobInputData.PrimaryVehicle.Vehicle.VehicleType ==
+				VectoSimulationJobType.BatteryElectricVehicle) {
+				foreach (var vectoRunData in CreateVectoRunDataForMissions(0, ""))
+					yield return vectoRunData;
+			} else {
+				var engineModes = InputDataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData
+					?.EngineModes;
+
+				for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) {
+					var fuelMode = "single fuel mode";
+					if (engineModes[modeIdx].Fuels.Count > 1) {
+						fuelMode = "dual fuel mode";
+					}
 
-			for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++)
-			{
-				var fuelMode = "single fuel mode";
-				if (engineModes[modeIdx].Fuels.Count > 1)
-				{
-					fuelMode = "dual fuel mode";
+					foreach (var vectoRunData in CreateVectoRunDataForMissions(modeIdx, fuelMode))
+						yield return vectoRunData;
 				}
-				foreach (var mission in _segmentCompletedBus.Missions)
-				{
-					foreach (var loading in mission.Loadings)
-					{
-						var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx);
-						if (simulationRunData != null)
-						{
-							yield return simulationRunData;
-						}
-
-						var primarySegment = GetPrimarySegment(PrimaryVehicle);
-						var primaryMission = primarySegment.Missions.Where(
-							m => {
-								return m.BusParameter.DoubleDecker ==
-										CompletedVehicle.VehicleCode.IsDoubleDeckerBus() &&
-										m.MissionType == mission.MissionType &&
-										m.BusParameter.FloorType == CompletedVehicle.VehicleCode.GetFloorType();
-							}).First();
-						simulationRunData = CreateVectoRunDataGeneric(
-							primaryMission,
-							new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(loading.Key, primaryMission.Loadings[loading.Key]),
-							primarySegment, modeIdx);
-
-						var primaryResult = InputDataProvider.JobInputData.PrimaryVehicle.GetResult(
+			}
+		}
+
+		private IEnumerable<VectoRunData> CreateVectoRunDataForMissions(int modeIdx, string fuelMode)
+		{
+			foreach (var mission in _segmentCompletedBus.Missions) {
+				foreach (var loading in mission.Loadings) {
+					var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx);
+					if (simulationRunData != null) {
+						yield return simulationRunData;
+					}
+
+					var primarySegment = GetPrimarySegment(PrimaryVehicle);
+					var primaryMission = primarySegment.Missions.Where(
+						m => {
+							return m.BusParameter.DoubleDecker ==
+									CompletedVehicle.VehicleCode.IsDoubleDeckerBus() &&
+									m.MissionType == mission.MissionType &&
+									m.BusParameter.FloorType == CompletedVehicle.VehicleCode.GetFloorType();
+						}).First();
+					simulationRunData = CreateVectoRunDataGeneric(
+						primaryMission,
+						new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(loading.Key,
+							primaryMission.Loadings[loading.Key]),
+						primarySegment, modeIdx);
+
+					var primaryResult = InputDataProvider.JobInputData.PrimaryVehicle.GetResult(
+						simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode,
+						simulationRunData.VehicleData.Loading);
+					if (primaryResult == null || !primaryResult.ResultStatus.Equals("success")) {
+						throw new VectoException(
+							"Failed to find results in PrimaryVehicleReport for vehicle group: {0},  mission: {1}, fuel mode: '{2}', payload: {3}. Make sure PIF and completed vehicle data match!",
 							simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode,
 							simulationRunData.VehicleData.Loading);
-						if (primaryResult == null || !primaryResult.ResultStatus.Equals("success"))
-						{
-							throw new VectoException(
-								"Failed to find results in PrimaryVehicleReport for vehicle group: {0},  mission: {1}, fuel mode: '{2}', payload: {3}. Make sure PIF and completed vehicle data match!",
-								simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode,
-								simulationRunData.VehicleData.Loading);
-						}
-
-						if (primaryResult.ResultStatus != "success")
-						{
-							throw new VectoException(
-								"Simulation results in PrimaryVehicleReport for vehicle group: {0},  mission: {1}, fuel mode: '{2}', payload: {3} not finished successfully.",
-								simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode,
-								simulationRunData.VehicleData.Loading);
-						}
-
-						simulationRunData.PrimaryResult = primaryResult;
+					}
 
-						yield return simulationRunData;
+					if (primaryResult.ResultStatus != "success") {
+						throw new VectoException(
+							"Simulation results in PrimaryVehicleReport for vehicle group: {0},  mission: {1}, fuel mode: '{2}', payload: {3} not finished successfully.",
+							simulationRunData.Mission.BusParameter.BusGroup, simulationRunData.Mission.MissionType, fuelMode,
+							simulationRunData.VehicleData.Loading);
 					}
+
+					simulationRunData.PrimaryResult = primaryResult;
+
+					yield return simulationRunData;
 				}
 			}
 		}
@@ -235,7 +244,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		}
 
 
-		protected VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx)
+		protected virtual VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx)
 		{
 			var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
 			
@@ -274,7 +283,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		}
 
 		
-		protected VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx)
+		protected virtual VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx)
 		{
 			var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
 			
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
index d07214774fe8ad549d74b8855be47d178cf83cd4..3952f390b4ec0d3238481a12ac4068c903507c16 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeHeavyLorryVectoRunDataFactory.cs
@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		DeclarationDataAdapterHeavyLorry _dao = new DeclarationDataAdapterHeavyLorry();
 
 		internal DeclarationModeTruckVectoRunDataFactory(
-			IDeclarationInputDataProvider dataProvider, IDeclarationReport report) : base(dataProvider, report)
+			IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true) : base(dataProvider, report, checkJobType)
 		{ }
 
 		#region Overrides of AbstractDeclarationVectoRunDataFactory
@@ -97,6 +97,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			//if (InitException != null) {
 			//	throw InitException;
 			//}
+			
+
+
+
+
 
 			if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) {
 				yield return CreateVectoRunData(InputDataProvider.JobInputData.Vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>());
@@ -110,19 +115,50 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		
 
 		private IEnumerable<VectoRunData> VectoRunDataTruckNonExempted()
+		{
+			switch (InputDataProvider.JobInputData.JobType) {
+				case VectoSimulationJobType.ConventionalVehicle:
+				case VectoSimulationJobType.ParallelHybridVehicle:
+				case VectoSimulationJobType.SerialHybridVehicle:
+					return VectoRunDataConventionalTruckNonExempted();
+				case VectoSimulationJobType.BatteryElectricVehicle:
+					return VectoRunDataBatteryElectricVehicle();
+				case VectoSimulationJobType.EngineOnlySimulation:
+					break;
+				default:
+					throw new ArgumentOutOfRangeException();
+			}
+			return VectoRunDataConventionalTruckNonExempted();
+
+		}
+
+		private IEnumerable<VectoRunData> VectoRunDataBatteryElectricVehicle()
+		{
+			var vehicle = InputDataProvider.JobInputData.Vehicle;
+			foreach (var mission in _segment.Missions) {
+				foreach (var loading in mission.Loadings)
+				{
+					var simulationRunData = CreateVectoRunData(vehicle, 0, mission, loading);
+					yield return simulationRunData;
+				}
+				
+			}
+		}
+
+		private IEnumerable<VectoRunData> VectoRunDataConventionalTruckNonExempted()
 		{
 			var vehicle = InputDataProvider.JobInputData.Vehicle;
 
 			var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData;
 			var engineModes = engine.EngineModes;
 
-			for(var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) {
-				
+			for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) {
 				foreach (var mission in _segment.Missions) {
 					if (mission.MissionType.IsEMS() &&
 						engine.RatedPowerDeclared.IsSmaller(DeclarationData.MinEnginePowerForEMS)) {
 						continue;
 					}
+
 					foreach (var loading in mission.Loadings) {
 						var simulationRunData = CreateVectoRunData(vehicle, modeIdx, mission, loading);
 						yield return simulationRunData;
@@ -136,13 +172,16 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
 		{
 			if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) {
-				return new VectoRunData {
+				var runData =  new VectoRunData {
+					InputData = InputDataProvider,
 					Exempted = true,
 					Report = Report,
 					Mission = new Mission() { MissionType = MissionType.ExemptedMission },
 					VehicleData = DataAdapter.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, new Segment(), null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(LoadingType.ReferenceLoad, Tuple.Create<Kilogram, double?>(0.SI<Kilogram>(), null)), _allowVocational),
 					InputDataHash = InputDataProvider.XMLHash
 				};
+				runData.VehicleData.InputData = vehicle;
+				return runData;
 			}
 
 			var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData;
@@ -180,9 +219,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				InputDataHash = InputDataProvider.XMLHash,
 				SimulationType = SimulationType.DistanceCycle,
 				GearshiftParameters = _gearshiftData,
+				InputData = InputDataProvider
 			};
 			simulationRunData.EngineData.FuelMode = modeIdx;
 			simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
+			simulationRunData.VehicleData.InputData = vehicle;
 			return simulationRunData;
 		}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs
index b4dfa81ff8cb72c4ff9f5ddfa89d4bcf764dba5d..5e162563ef680f08e2841efecbebecd7f8d3b627 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModePrimaryBusVectoRunDataFactory.cs
@@ -18,8 +18,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 	{
 		protected DeclarationDataAdapterPrimaryBus _dao = new DeclarationDataAdapterPrimaryBus();
 
-		public DeclarationModePrimaryBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report) :
-			base(dataProvider, report)
+		public DeclarationModePrimaryBusVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, IDeclarationReport report, bool checkJobType = true) :
+			base(dataProvider, report, checkJobType)
 		{ }
 
 		#region Overrides of AbstractDeclarationVectoRunDataFactory
@@ -66,6 +66,38 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		}
 
 		private IEnumerable<VectoRunData> VectoRunDataHeavyBusPrimary()
+		{
+			switch (InputDataProvider.JobInputData.JobType) {
+				case VectoSimulationJobType.ConventionalVehicle:
+				case VectoSimulationJobType.ParallelHybridVehicle:
+				case VectoSimulationJobType.SerialHybridVehicle:
+					return VectoRunDataConventionalHeavyBusPrimaryNonExempted();
+				case VectoSimulationJobType.BatteryElectricVehicle:
+					return VectoRunDataBatteryElectricHeavyBusPrimaryNonExempted();
+				case VectoSimulationJobType.EngineOnlySimulation:
+					break;
+				default:
+					throw new ArgumentOutOfRangeException();
+			}
+			return VectoRunDataConventionalHeavyBusPrimaryNonExempted();
+		}
+
+		private IEnumerable<VectoRunData> VectoRunDataBatteryElectricHeavyBusPrimaryNonExempted()
+		{
+			var vehicle = InputDataProvider.JobInputData.Vehicle;
+			foreach (var mission in _segment.Missions) {
+				foreach (var loading in mission.Loadings) {
+					var simulationRunData = CreateVectoRunData(vehicle, 0, mission, loading);
+					if (simulationRunData == null) {
+						continue;
+					}
+					yield return simulationRunData;
+				}
+
+			}
+		}
+
+		private IEnumerable<VectoRunData> VectoRunDataConventionalHeavyBusPrimaryNonExempted()
 		{
 			var vehicle = InputDataProvider.JobInputData.Vehicle;
 			var engine = vehicle.Components.EngineInputData;
diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs
index a6c47b6b84b75c9f92564085bf40ef196e24571f..26fa6f62844dccc2c4f5e98bab5faf1cccd5990d 100644
--- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryFactory.cs
@@ -8,6 +8,9 @@ using TUGraz.VectoCore.OutputData;
 
 namespace TUGraz.VectoCore.InputData.Reader
 {
+	
+
+
     public class VectoRunDataFactoryFactory : IVectoRunDataFactoryFactory
 	{
 		/// <summary>
diff --git a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs
index 7bc75be024efa0c23b34e5d4f3ab1bfbf586a264..7aecb1906a63f80f66a5fa3b1f878b6acf34057c 100644
--- a/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs
+++ b/VectoCore/VectoCore/InputData/Reader/VectoRunDataFactoryNinjectModule.cs
@@ -7,7 +7,7 @@ using Ninject.Modules;
 
 namespace TUGraz.VectoCore.InputData.Reader
 {
-    class VectoRunDataFactoryNinjectModule : NinjectModule
+    public class VectoRunDataFactoryNinjectModule : NinjectModule
     {
 		#region Overrides of NinjectModule
 
diff --git a/VectoCore/VectoCore/JsonKeys.Designer.cs b/VectoCore/VectoCore/JsonKeys.Designer.cs
index 62ae58c6222f7ef7d2a7e7e7c5efb4582399f3af..2920ff7eedba8af3a186a9ee81881785f014a8c5 100644
--- a/VectoCore/VectoCore/JsonKeys.Designer.cs
+++ b/VectoCore/VectoCore/JsonKeys.Designer.cs
@@ -69,6 +69,15 @@ namespace TUGraz.VectoCore {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to RunSimulation.
+        /// </summary>
+        internal static string BUS_RunSimulation {
+            get {
+                return ResourceManager.GetString("BUS_RunSimulation", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Completed.
         /// </summary>
diff --git a/VectoCore/VectoCore/JsonKeys.resx b/VectoCore/VectoCore/JsonKeys.resx
index 04560f85bea6e606998446aeebf62bd79aff605c..ea3d993adcf2ed1492bb780021e799e173ef55e6 100644
--- a/VectoCore/VectoCore/JsonKeys.resx
+++ b/VectoCore/VectoCore/JsonKeys.resx
@@ -483,4 +483,7 @@
   <data name="JsonHeader_Date" xml:space="preserve">
     <value>Date</value>
   </data>
+<data name="BUS_RunSimulation" xml:space="preserve">
+	<value>RunSimulation</value>
+</data>
 </root>
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index cebc43f320d6d5180068379690145a14cdb57579..2b593d99bf07c3f629dfedea82157584a1933ad1 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -137,6 +137,56 @@ namespace TUGraz.VectoCore.Models.Declaration
 						grossVehicleWeight - curbWeight).Value() / 100, 0) * 100).SI<Kilogram>();
 		}
 
+		public static VehicleClass GetVehicleGroupGroup(IVehicleDeclarationInputData vehicleData)
+		{
+			switch (vehicleData.VehicleCategory) {
+				case VehicleCategory.Van:
+				case VehicleCategory.RigidTruck:
+				case VehicleCategory.Tractor:
+					var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory,
+						vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating, vehicleData.CurbMassChassis,
+						vehicleData.VocationalVehicle);
+					return truckSegment.VehicleClass;
+				case VehicleCategory.HeavyBusPrimaryVehicle:
+					var primarySegment = DeclarationData.PrimaryBusSegments.Lookup(vehicleData.VehicleCategory,
+						vehicleData.AxleConfiguration, vehicleData.Articulated);
+					return primarySegment.VehicleClass;
+				case VehicleCategory.HeavyBusCompletedVehicle:
+					var segment = DeclarationData.CompletedBusSegments.Lookup(vehicleData.AxleConfiguration.NumAxles(),
+						vehicleData.VehicleCode,
+						vehicleData.RegisteredClass, vehicleData.NumberPassengerSeatsLowerDeck, vehicleData.Height,
+						vehicleData.LowEntry);
+					return segment.VehicleClass;
+			}
+
+			throw new VectoException("No Group found for vehicle");
+		}
+
+		public static WeightingGroup GetVehicleGroupCO2StandardsGroup(IVehicleDeclarationInputData vehicleData)
+		{
+			switch (vehicleData.VehicleCategory) {
+				case VehicleCategory.Van:
+				case VehicleCategory.RigidTruck:
+				case VehicleCategory.Tractor:
+					var vehicleGroup = GetVehicleGroupGroup(vehicleData);
+					var propulsionPower = (vehicleData.Components?.EngineInputData?.RatedPowerDeclared ?? 0.SI<Watt>()) +
+										(vehicleData.Components?.ElectricMachines?.Entries
+											.Where(x => x.Position != PowertrainPosition.GEN)
+											.Sum(x => x.ElectricMachine.R85RatedPower * x.Count) ?? 0.SI<Watt>()) +
+										(vehicleData.Components?.IEPC?.R85RatedPower ?? 0.SI<Watt>()) + 
+										(vehicleData.MaxNetPower1 ?? 0.SI<Watt>()); 
+					var co2Group = WeightingGroup.Lookup(vehicleGroup, vehicleData.SleeperCab ?? false, propulsionPower);
+					return co2Group;
+				default:
+					return Declaration.WeightingGroup.Unknown;
+			}
+			//throw new VectoException("No CO2 Group found for vehicle");
+		}
+
+		public static WeightingGroup GetVehicleGroupCO2StandardsGroup(IMultistepBusInputDataProvider multiStageInputDataProvider)
+		{
+			return Declaration.WeightingGroup.Unknown;
+		}
 
 
 
@@ -1155,5 +1205,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 				public const bool EngineStopStartDefault = false;
 			}
 		}
+
+
 	}
 }
diff --git a/VectoCore/VectoCore/Models/Declaration/Mission.cs b/VectoCore/VectoCore/Models/Declaration/Mission.cs
index 592ca44b1ed91bdd30216fa4c721a4d14d7d07c4..77120162563488effacd4f269612c7608db34769 100644
--- a/VectoCore/VectoCore/Models/Declaration/Mission.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Mission.cs
@@ -58,8 +58,28 @@ namespace TUGraz.VectoCore.Models.Declaration
 
 		public Kilogram BodyCurbWeight { get; internal set; }
 
+		private Stream _cycleFile;
+		private object _cycleLock = new object();
 		[JsonIgnore]
-		public Stream CycleFile { get; internal set; }
+		public Stream CycleFile
+		{
+			get
+			{
+				lock (_cycleLock) {
+					var memoryStream = new MemoryStream();
+					_cycleFile.CopyTo(memoryStream);
+					memoryStream.Position = 0;
+					_cycleFile.Seek(0, SeekOrigin.Begin);
+					return memoryStream;
+				}
+			}
+			internal set
+			{
+				lock (_cycleLock) {
+					_cycleFile = value;
+				}
+			}
+		}
 
 		public IList<MissionTrailer> Trailer { get; internal set; }
 
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
index 9dcc8106abe58d9e487cd6f037ec8ed83fc7c1e8..91a78f96b37a8f5480c6f937b7443a89bb9848f8 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -160,6 +160,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 		// container to pass genset data from powertrain to post-processing, not filled by dataadapter/rundatafactory
 		public GenSetData GenSet { get; set; }
+		[JsonIgnore]
+		public IDeclarationInputDataProvider InputData { get; internal set; }
 
 		public class AuxData
 		{
diff --git a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs
index 878c80f6a2e27397a3cd2bf22ecfe8385b7a0dfc..216be6c25d0a0c5efdc444b8ace49d7c6da4e8c8 100644
--- a/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/ISimulatorFactory.cs
@@ -44,13 +44,15 @@ namespace TUGraz.VectoCore.Models.Simulation
 		bool Validate { get; set; }
 		SummaryDataContainer SumData { get; set; }
 		int JobNumber { get; set; }
-		IVectoRunDataFactory DataReader { get; }
+		IVectoRunDataFactory RunDataFactory { get; }
 		ISimulatorFactory FollowUpSimulatorFactory { get; }
 		IOutputDataWriter ReportWriter { get; }
 		bool SerializeVectoRunData { get; set; }
 
 		bool CreateFollowUpSimulatorFactory { get; set; }
 
+
+
 		/// <summary>
 		/// Creates powertrain and initializes it with the component's data.
 		/// </summary>
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
index 611fcfedbeaec3b22e34c04b1bd94010d53aaede..8b583724387d32d70b3c492f56aca95c51300818 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs
@@ -61,7 +61,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl {
 			return new ResponseCycleFinished(this);
 		}
 
-		private void CheckValidInput()
+		protected virtual void CheckValidInput()
 		{
 			if (Container.RunData.MultistageRun) {
 				return;
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
index 75c7e3e7f131c0cf441e6ac640683b87375a9e84..f86537721f1e1632699272eaf3f4a30e59fecace 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
@@ -362,13 +362,17 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			try {
 				_runContainerMap.TryGetValue(runContainerId, out var runContainer);
 				var additionalSimulatorFactory = runContainer?.GetFollowUpSimulatorFactory();
-				if (additionalSimulatorFactory == null)
+				if (additionalSimulatorFactory == null) {
 					return;
+				}
+					
 
 				AddRuns(additionalSimulatorFactory);
 				Execute(_multithreaded);
 			} catch (Exception ex) {
+				
 				Log.Error(ex.Message);
+				throw;
 			}
 			
 		}
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 9a40b6810639974ccaa54a4db2b3f2405e37ff0f..7c95e3401ef4cce19cecc8d394d0d9aa65f44566 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -31,6 +31,7 @@
 
 using System;
 using System.Collections.Generic;
+using System.Diagnostics;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
@@ -56,6 +57,23 @@ using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels;
 
 namespace TUGraz.VectoCore.Models.Simulation.Impl
 {
+	//public interface IPowertrainBuilderFactory
+	//{
+	//	PowertrainBuilder GetPowerTrainBuilder(IModalDataContainer modData, WriteSumData sumWriter = null);
+
+	//}
+
+	//public class PowertrainBuilderFactory : IPowertrainBuilderFactory
+	//{
+	//	#region Implementation of IPowertrainBuilderFactory
+
+	//	public PowertrainBuilder GetPowerTrainBuilder(IModalDataContainer modData, WriteSumData sumWriter = null)
+	//	{
+	//		return new PowertrainBuilder(modData, sumWriter);
+	//	}
+
+	//	#endregion
+	//}
 	/// <summary>
 	/// Provides Methods to build a simulator with a powertrain step by step.
 	/// </summary>
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs
index df9125aa06538519d6197b3c7b5b041cc12cce25..8389d72c48b82112bee2b7cafa42eccbe44f6c3f 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/IFollowUpSimulatorFactoryCreator.cs
@@ -46,9 +46,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 
 	public class InterimAfterPrimaryFactoryCreator : FollowUpSimulatorFactoryCreator
 	{
-		private readonly TempFileOutputWriter _currentStageOutputDataWriter = null;
+		protected readonly TempFileOutputWriter _currentStageOutputDataWriter = null;
 		private readonly IOutputDataWriter _originalReportWriter = null;
-		private readonly IDeclarationReport _currentStageDeclarationReport = null;
+		protected IDeclarationReport _currentStageDeclarationReport = null;
 		private readonly IXMLInputDataReader _inputDataReader;
 		private readonly IMultistagePrimaryAndStageInputDataProvider _originalStageInputData;
 		private readonly IDeclarationReport _originalDeclarationReport;
@@ -69,7 +69,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 				new TempFileOutputWriter(originalReportWriter, ReportType.DeclarationReportManufacturerXML)
 				;
 			_currentStageDeclarationReport =
-				new XMLDeclarationReportPrimaryVehicle(_currentStageOutputDataWriter, true);
+				new XMLDeclarationReportPrimaryVehicle(_currentStageOutputDataWriter);
 			_currentStageInputData = originalStageInputData.PrimaryVehicle;
 
 		}
@@ -82,11 +82,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		{
 			//Prepare inputdata for next simulation step
 			var primaryInputData = _inputDataReader.CreateDeclaration(_currentStageOutputDataWriter
-				.GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()) as IMultistageBusInputDataProvider;
+				.GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader()) as IMultistepBusInputDataProvider;
 			Debug.Assert(primaryInputData != null);
 			var stageInputData = _originalStageInputData.StageInputData;
 
-			var nextStageInput = new XMLDeclarationVIFInputData(primaryInputData, stageInputData);
+			var nextStageInput = new XMLDeclarationVIFInputData(primaryInputData, stageInputData, _originalStageInputData.SimulateResultingVIF);
 
 			var manStagesCount =
 				nextStageInput.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? -1;
@@ -132,9 +132,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		}
 		public override ISimulatorFactory GetNextFactory()
 		{
+			if (!_originalInputData.SimulateResultingVIF) {
+				return null;
+			}
 			var output = _xmlInputDataReader.CreateDeclaration(
-				XmlReader.Create(CurrentStageOutputDataWriter.MultistageXmlReport.ToString().ToStream())) as IMultistageBusInputDataProvider;
-			var nextStageInput = new XMLDeclarationVIFInputData(output, null);
+				XmlReader.Create(CurrentStageOutputDataWriter.MultistageXmlReport.ToString().ToStream())) as IMultistepBusInputDataProvider;
+			var nextStageInput = new XMLDeclarationVIFInputData(output, null, true);
 
 			return _simulatorFactoryFactory.Factory(ExecutionMode.Declaration, nextStageInput, CurrentStageOutputDataWriter, null, null,
 				_validate);
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
index 4e9575202b4a331766666f4ec81a8e07a172997d..dcee463d4eea0a0ef5a7fb687eae4fe98d595218 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
@@ -38,6 +38,7 @@ using System.Threading;
 using System.Xml;
 using Newtonsoft.Json;
 using Ninject;
+using NLog.LayoutRenderers;
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
@@ -70,22 +71,15 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		protected bool _simulate = true;
 
 
+
 		public ISimulatorFactory FollowUpSimulatorFactory
 		{
 			get
 			{
-				//if (!CreateFollowUpSimulatorFactory)
-				//	return null;
+			
 
-				if (_followUpSimulatorFactoryCreator != null) {
-					var retVal = _followUpSimulatorFactoryCreator.GetNextFactory();
-					retVal.SerializeVectoRunData = SerializeVectoRunData;
+				return _followUpSimulatorFactoryCreator?.GetNextFactory();
 
-					return retVal;
-				} else {
-					return null;
-				}
-				//return _followingSimulatorFactoryCreator?.Invoke();
 
 			}
 		}
@@ -94,7 +88,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		protected readonly ExecutionMode _mode;
 
 
-		#region Constructors and Factory Methods to instantiate Instances of SimulatorFactory without NInject (should only be used in Testcases that are not updated yet)
+#region Constructors and Factory Methods to instantiate Instances of SimulatorFactory without NInject (should only be used in Testcases that are not updated yet)
 
 		[Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)]
 		public static ISimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, IDeclarationReport declarationReport = null, IVTPReport vtpReport=null, bool validate = true)
@@ -127,7 +121,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		}
 
 
-		#endregion
+#endregion
 
 
 
@@ -136,7 +130,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 
 		public bool Validate { get; set; }
 
-		public IVectoRunDataFactory DataReader { get; protected set; }
+		public IVectoRunDataFactory RunDataFactory { get; protected set; }
 
 		public SummaryDataContainer SumData { get; set; }
 
@@ -161,15 +155,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			if (!_simulate) {
 				yield break;
 			}
-			foreach (var data in DataReader.NextRun()) {
+			foreach (var data in RunDataFactory.NextRun()) {
 				var current = i++;
 				var d = data;
 				data.JobRunId = current;
-				yield return data.Exempted || data.MultistageRun ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz);
+				yield return (data.Exempted || data.MultistageRun) ? GetExemptedRun(data) : GetNonExemptedRun(data, current, d, ref warning1Hz);
 			}
 		}
 
-		private IVectoRun GetExemptedRun(VectoRunData data)
+
+		protected virtual IVectoRun GetExemptedRun(VectoRunData data)
 		{
 			if (data.Report != null) {
 				data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data);
@@ -181,7 +176,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			});
 		}
 
-		private IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz)
+		protected virtual IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz)
 		{
 			var addReportResult = PrepareReport(data);
 			if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) {
@@ -280,16 +275,17 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			return run;
 		}
 
-		private static Action<ModalDataContainer> PrepareReport(VectoRunData data)
+		protected static Action<ModalDataContainer> PrepareReport(VectoRunData data)
 		{
 			if (data.Report != null) {
-				data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData.FuelMode, data);
+				data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data);
 			}
 			Action<ModalDataContainer> addReportResult = modData => {
 				if (data.Report != null) {
-					data.Report.AddResult(data.Loading, data.Mission, data.EngineData.FuelMode, data, modData);
+					data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData);
 				}
 			};
+			
 			return addReportResult;
 		}
 	}
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
index c376f56987254e3ebc4f08069285e9ae1ba30378..503c1aae973845b91d4fe498e948264abe40b0bf 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
@@ -5,6 +5,7 @@ using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.InputData.Reader.Impl;
 using TUGraz.VectoCore.OutputData;
 using TUGraz.VectoCore.OutputData.FileIO;
@@ -14,12 +15,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 {
     public class SimulatorFactoryDeclaration : SimulatorFactory
     {
-		private readonly IXMLInputDataReader _xmlInputDataReader;
-		private readonly ISimulatorFactoryFactory _simFactoryFactory;
+		protected readonly IXMLInputDataReader _xmlInputDataReader;
+		protected readonly ISimulatorFactoryFactory _simFactoryFactory;
 		private IInputDataProvider _currentStageInputData;
 		private IDeclarationReport _currentStageDeclarationReport;
 		private IVTPReport _currentStageVTPReport;
-		private readonly IXMLDeclarationReportFactory _xmlDeclarationReportFactory;
+		protected readonly IXMLDeclarationReportFactory _xmlDeclarationReportFactory;
 
 
 		public SimulatorFactoryDeclaration(IInputDataProvider dataProvider, 
@@ -51,8 +52,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 
 			_simulate = CanBeSimulated(dataProvider);
 			if (_simulate) {
-				//CreateDeclarationDataReader(_currentStageInputData, _currentStageDeclarationReport, _currentStageVTPReport);
-				DataReader = runDataFactoryFactory.CreateDeclarationRunDataFactory(_currentStageInputData, _currentStageDeclarationReport,
+				RunDataFactory = runDataFactoryFactory.CreateDeclarationRunDataFactory(_currentStageInputData, _currentStageDeclarationReport,
 					_currentStageVTPReport);
 			} else {
 				System.Diagnostics.Debug.Assert(_followUpSimulatorFactoryCreator == null,
@@ -60,12 +60,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			}
 		}
 
-		private void CreateReport()
-		{
-			if (_currentStageDeclarationReport != null && _currentStageInputData != null) {
-
-			}
-		}
 
 
 		/// <summary>
@@ -91,15 +85,15 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			ISimulatorFactoryFactory simulatorFactoryFactory, 
 			IXMLDeclarationReportFactory xmlDeclarationReportFactory,
 			IVectoRunDataFactoryFactory runDataFactoryFactory) : this(
-			dataProvider: dataProvider, 
-			declarationReport: null,
-			writer: writer,
-			vtpReport: null, 
-			validate: validate,
-			xmlInputDataReader: xmlInputDataReader, 
-			simulatorFactoryFactory: simulatorFactoryFactory,
-			xmlDeclarationReportFactory: xmlDeclarationReportFactory,
-			runDataFactoryFactory: runDataFactoryFactory)
+				dataProvider: dataProvider, 
+				declarationReport: null,
+				writer: writer,
+				vtpReport: null, 
+				validate: validate,
+				xmlInputDataReader: xmlInputDataReader, 
+				simulatorFactoryFactory: simulatorFactoryFactory,
+				xmlDeclarationReportFactory: xmlDeclarationReportFactory,
+				runDataFactoryFactory: runDataFactoryFactory)
 		{
 
 		}
@@ -123,7 +117,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 			return true;
 		}
 
-		private IFollowUpSimulatorFactoryCreator CreateFollowUpFactoryCreator(IInputDataProvider currentStageInputData, IDeclarationReport currentStageDeclarationReport)
+		protected virtual IFollowUpSimulatorFactoryCreator CreateFollowUpFactoryCreator(IInputDataProvider currentStageInputData, IDeclarationReport currentStageDeclarationReport)
 		{
 			switch (currentStageInputData) {
 				case IMultistagePrimaryAndStageInputDataProvider multistagePrimaryAndStageInputDataProvider:
@@ -152,66 +146,25 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		{
 			switch (dataProvider) {
 				case IVTPDeclarationInputDataProvider vtpProvider: {
-					DataReader = CreateRunDataReader(vtpProvider, vtpReport);
+					RunDataFactory = CreateRunDataReader(vtpProvider, vtpReport);
 					return;
 				}
 				case ISingleBusInputDataProvider singleBusProvider: {
-					DataReader = CreateRunDataReader(singleBusProvider, declarationReport);
+					RunDataFactory = CreateRunDataReader(singleBusProvider, declarationReport);
 					return;
 				}
 				case IDeclarationInputDataProvider declDataProvider: {
-					DataReader = CreateRunDataReader(declDataProvider, declarationReport);
+					RunDataFactory = CreateRunDataReader(declDataProvider, declarationReport);
 					return;
 				}
 				case IMultistageVIFInputData multistageVifInputData: {
-					DataReader = CreateRunDataReader(multistageVifInputData, declarationReport);
+					RunDataFactory = CreateRunDataReader(multistageVifInputData, declarationReport);
 					return;
 				}
 				case IMultistagePrimaryAndStageInputDataProvider multiStagePrimaryAndStageInputData: {
 
-					throw new VectoException("Why are we here ? ");
-					
-                        //Create Temporary Writer to hold the files only in Memory
-#pragma warning disable 162
-						var tempOutputWriter = new TempFileOutputWriter(ReportWriter, ReportType.DeclarationReportManufacturerXML);
-                        var originalReportWriter = ReportWriter;
-                        ReportWriter = tempOutputWriter;
-                        var tempPrimaryReport = new XMLDeclarationReportPrimaryVehicle(tempOutputWriter, true);
-
-
-                        DataReader = CreateRunDataReader(multiStagePrimaryAndStageInputData.PrimaryVehicle, tempPrimaryReport);
-
-
-                        CreateFollowUpSimulatorFactory = true;
-                        Func<ISimulatorFactory> _followingSimulatorFactoryCreator = () =>
-                        {
-                            try
-                            {
-                                var primaryInputData = _xmlInputDataReader.CreateDeclaration(tempOutputWriter
-                                    .GetDocument(ReportType.DeclarationReportPrimaryVehicleXML).CreateReader());
-
-                                var vifInputData = new XMLDeclarationVIFInputData(
-                                    primaryInputData as IMultistageBusInputDataProvider,
-                                    multiStagePrimaryAndStageInputData.StageInputData);
-
-                                var manStagesCount =
-                                    vifInputData.MultistageJobInputData.JobInputData.ManufacturingStages?.Count ?? -1;
-
-                                originalReportWriter.NumberOfManufacturingStages = manStagesCount;
-
-                                return _simFactoryFactory.Factory(_mode, vifInputData, originalReportWriter, null,
-                                    vtpReport, Validate);
-                            }
-                            catch (Exception ex)
-                            {
-                                Log.Error($"Failed to create additional Simulation run: {ex.Message}");
-                                return null;
-                            }
-                        };
-                        return;
-#pragma warning restore 162
-
-					}
+					throw new VectoException("Simulation should be split up in separate steps");
+				}
 				default:
 					throw new VectoException("Unknown InputData for Declaration Mode!");
 			}
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs
index 61aaef20da4ffca41c726ea4f3b684b98b0b8a01..6b195d204525f8720c805573138126a773a599cc 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryEngineering.cs
@@ -17,16 +17,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		{
 			switch (dataProvider) {
 				case IVTPEngineeringInputDataProvider vtpProvider when vtpProvider.JobInputData.Vehicle.VehicleCategory.IsLorry():
-					DataReader = new EngineeringVTPModeVectoRunDataFactoryLorries(vtpProvider);
+					RunDataFactory = new EngineeringVTPModeVectoRunDataFactoryLorries(vtpProvider);
 					return;
 				case IVTPEngineeringInputDataProvider vtpProvider when vtpProvider.JobInputData.Vehicle.VehicleCategory.IsBus():
-					DataReader = new EngineeringVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider);
+					RunDataFactory = new EngineeringVTPModeVectoRunDataFactoryHeavyBusPrimary(vtpProvider);
 					return;
 				case IEngineeringInputDataProvider engDataProvider when engDataProvider.JobInputData.JobType == VectoSimulationJobType.EngineOnlySimulation:
-					DataReader = new EngineOnlyVectoRunDataFactory(engDataProvider);
+					RunDataFactory = new EngineOnlyVectoRunDataFactory(engDataProvider);
 					return;
 				case IEngineeringInputDataProvider engDataProvider:
-					DataReader = new EngineeringModeVectoRunDataFactory(engDataProvider);
+					RunDataFactory = new EngineeringModeVectoRunDataFactory(engDataProvider);
 					return;
 				default:
 					throw new VectoException("Unknown InputData for Engineering Mode!");
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
index 641291ebdc124d5466451eda4f32b3586f70cc4a..c32d35109c6bc1b0c369e8516d2f78ad83940bd3 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VectoRun.cs
@@ -81,6 +81,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 		public IVehicleContainer GetContainer() => Container;
 
+		public virtual bool CalculateAggregateValues()
+		{
+			return !(GetContainer().RunData.Exempted || GetContainer().RunData.MultistageRun);
+		}
 		public void Run()
 		{
 			if (Container.RunStatus != Status.Pending) {
@@ -119,7 +123,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 						Container.AbsTime = AbsTime;
 					}
 				} while (response is ResponseSuccess);
-				if (!(GetContainer().RunData.Exempted || GetContainer().RunData.MultistageRun)) {
+				if (CalculateAggregateValues()) {
 					//foreach (var fuel in GetContainer().RunData.EngineData.Fuels) {
 						// calculate vehicleline correction here in local thread context because writing sum-data and
 						// report afterwards is synchronized
@@ -165,12 +169,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				throw ex;
 			}
 
-			if (Container.RunData.Exempted || Container.RunData.MultistageRun)
-				Container.RunStatus = Status.Success;
-			else if (CyclePort.Progress < 1)
-				Container.RunStatus = response is ResponseBatteryEmpty ? Status.REESSEmpty : Status.Aborted;
-			else
+			if (CheckCyclePortProgress()) {
+				if (CyclePort.Progress < 1) {
+					Container.RunStatus = response is ResponseBatteryEmpty ? Status.REESSEmpty : Status.Aborted;
+				} else {
+					Container.RunStatus = Status.Success;
+				}
+			} else {
 				Container.RunStatus = Status.Success;
+			}
+
 			Container.FinishSimulationRun();
 			WritingResultsDone = true;
 			if (Progress.IsSmaller(1, 1e-9)) {
@@ -188,6 +196,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			Log.Info("VectoJob finished.");
 		}
 
+		protected virtual bool CheckCyclePortProgress()
+		{
+			return !Container.RunData.Exempted && !Container.RunData.MultistageRun;
+		}
+
 		public bool PostProcessingDone { get; protected set; }
 
 		public bool WritingResultsDone { get; protected set; }
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
index fe62e55f65acf41484adabd86441a9fd720f3986..1c3f3fc8c8d11448dfa84152f9c23a4f11839fba 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
@@ -33,6 +33,7 @@ using System;
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.Linq;
+using System.Runtime.CompilerServices;
 using System.Xml;
 using System.Xml.Linq;
 using Newtonsoft.Json;
@@ -45,8 +46,11 @@ using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Utils;
 
+
+
 namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 {
+   
 	[CustomValidation(typeof(AirdragData), "ValidateAirDragData")]
 	public class AirdragData : SimulationComponentData
 	{
@@ -234,6 +238,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		public ADASData ADAS { get; internal set; }
 		public bool VocationalVehicle { get; internal set; }
 
+		public bool Ocv { get; internal set; }
+
 		public class ADASData
 		{
 			public bool EngineStopStart { get; internal set; }
diff --git a/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs b/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs
index 3f0baeffc70462b2e8adc5a16c6b7e6a2b631675..3ea6c57d0560151765e54711886ded5b7af82d18 100644
--- a/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs
+++ b/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs
@@ -29,15 +29,22 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
 using Ninject.Modules;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
 using TUGraz.VectoCore.OutputData.XML.ComponentWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
 using TUGraz.VectoCore.OutputData.XML.Engineering;
-using TUGraz.VectoCore.OutputData.XML.GroupWriter;
 
+using TUGraz.VectoCore.OutputData.XML.GroupWriter;
 namespace TUGraz.VectoCore
 {
 	public abstract class AbstractNinjectModule : NinjectModule
@@ -53,26 +60,65 @@ namespace TUGraz.VectoCore
 
 	public class VectoNinjectModule : AbstractNinjectModule
 	{
+		private readonly bool _mockup;
+
 		#region Overrides of NinjectModule
+		
+
+		public VectoNinjectModule()
+		{
+			
+		}
+		
+	
 
 		public override void Load()
 		{
+			
 			LoadModule<XMLInputDataNinjectModule>();
 
 			LoadModule<XMLEngineeringWriterInjectModule>();
 
 			LoadModule<SimulatorFactoryNinjectModule>();
 
-			LoadModule<XMLDeclarationReportFactoryNinjectModule>();
+			LoadModule<XMLDeclarationReportFactoryNinjectModule>();	
 
 			LoadModule<VectoRunDataFactoryNinjectModule>();
 
 			LoadModule<GroupWriterNinjectModule>();
 
 			LoadModule<ComponentWriterNinjectModule>();
+
+			LoadModule<SimulatorFactoryNinjectModule>();
+
+			LoadModule<MRFNinjectModule>();
+			LoadModule<CIFNinjectModule>();
+			LoadModule<VIFNinjectModule>();
+			
+
+
+#if (MOCKUP)  //TODO: add second constant for release
+			var compiledModuleLoaderPlugin = new CompiledModuleLoaderPlugin(Kernel, new AssemblyNameRetriever());
+			var assembly = Assembly.LoadFile(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),"VectoMockup.dll"));
+			//var assembly = Assembly.LoadFile("VectoMockup.dll");
+			Kernel.Load(new Assembly[]{assembly});
+			
+
+
+
+
+
+#endif
+
+
+
+
+
 		}
 
-		#endregion
+		
+
+#endregion
 
 		
 	}
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index 3aeb1536c52b7d2a9368df914bd1bbc29d44af6f..5db62cfb67e531771d59e24060fcaf8c23106dcf 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -156,7 +156,7 @@ namespace TUGraz.VectoCore.OutputData
 					Mission = mission.MissionType,
 					LoadingType = loadingType,
 					FuelMode = fuelMode,
-					FuelData = runData.EngineData.Fuels.Select(x => x.FuelData).ToList(),
+					FuelData = runData.EngineData?.Fuels.Select(x => x.FuelData).ToList(),
 					Payload = runData.VehicleData.Loading,
 					TotalVehicleMass = runData.VehicleData.TotalVehicleMass,
 					CargoVolume = runData.VehicleData.CargoVolume,
@@ -164,8 +164,10 @@ namespace TUGraz.VectoCore.OutputData
 					//runData.VehicleData.VehicleClass,
 					PassengerCount = runData.VehicleData.PassengerCount
 				};
-
-				Results.Add(entry);
+				lock (Results) {
+					Results.Add(entry);
+                }
+				
 				DoStoreResult(entry, runData, modData);
 			}
 
@@ -174,9 +176,12 @@ namespace TUGraz.VectoCore.OutputData
 
 		protected virtual IEnumerable<T> OrderedResults
 		{
-			get {
-				return Results.OrderBy(x => x.VehicleClass).ThenBy(x => x.FuelMode).ThenBy(x => x.Mission)
-							.ThenBy(x => x.LoadingType);
+			get
+			{
+				lock (Results) {
+					return Results.OrderBy(x => x.VehicleClass).ThenBy(x => x.FuelMode).ThenBy(x => x.Mission)
+						.ThenBy(x => x.LoadingType);
+				}
 			}
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
index fe7610ff63b029939cfe5177626a32331bd82e9e..5e651491b8a7a92734e095fe247bfdff7789ea08 100644
--- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
@@ -711,7 +711,10 @@ namespace TUGraz.VectoCore.OutputData
 				}
 			}
 
-			_addReportResult(this);
+			if (_addReportResult != null) {
+				_addReportResult(this);
+			}
+			
 		}
 
 		private IList<string> GetOutputColumns()
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..968edce4bf5a2a09853757644463b83c614f0958
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.SimulationComponent;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoHashing;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9
+{
+	public abstract class AbstractCustomerReport : IXMLCustomerReport
+	{
+		protected readonly ICustomerInformationFileFactory _cifFactory;
+		protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput");
+
+		public static XNamespace Cif_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9");
+		public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#");
+
+
+		protected XElement Vehicle { get; set; }
+		protected XElement Results { get; set; }
+
+		protected XElement InputDataIntegrity { get; set; }
+
+		public abstract string OutputDataType { get; }
+
+		protected bool _ovc = false;
+		protected AbstractCustomerReport(ICustomerInformationFileFactory cifFactory)
+		{
+			_cifFactory = cifFactory;
+
+			// MQ: write dummy result element for testcases (2022-07-13)
+			Results = new  XElement(Cif_0_9 + "Results",
+				new XElement(Cif_0_9 + "Status", "success"),
+				new XElement(Cif_0_9 + "ExemptedVehicle"));
+		}
+
+
+		public abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData);
+
+		#region Implementation of IXMLCustomerReport
+
+		public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			InitializeVehicleData(modelData.InputData);
+			_ovc = modelData.VehicleData.Ocv;
+			Results = new XElement(Cif_0_9 + "Results");
+			InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature,
+				modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash));
+		}
+
+		public XDocument Report { get; protected set; }
+
+		private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
+		public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			results.Add(resultValue);
+
+		}
+
+		public void GenerateReport(XElement resultSignature)
+		{
+			var retVal = new XDocument(new XElement(Cif + "VectoCustomerInformation",
+					new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+					new XAttribute(XNamespace.Xmlns + "cif", Cif.NamespaceName),
+					new XAttribute(XNamespace.Xmlns + "cif0.9", Cif_0_9.NamespaceName),
+					new XAttribute("xmlns", Cif_0_9),
+					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation",
+						$"{Cif.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputCustomer.xsd"),
+
+					new XElement(Cif + XMLNames.Report_DataWrap,
+						new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
+						GetReportContents(resultSignature)
+					)
+				)
+			);
+
+			var stream = new MemoryStream();
+			var writer = new StreamWriter(stream);
+			writer.Write(retVal);
+			writer.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
+			var h = VectoHash.Load(stream);
+			Report = h.AddHash();
+		}
+
+		protected virtual IList<XElement> GetReportContents(XElement resultSignature)
+		{
+			return new[] {
+				Vehicle,
+				InputDataIntegrity,
+				new XElement(Cif_0_9 + XMLNames.Report_ManufacturerRecord_Signature, resultSignature),
+				Results,
+				XMLHelper.GetApplicationInfo(Cif_0_9)
+			};
+		}
+
+		#endregion
+
+
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6435bfe621cbedb293badd70008ba7fa38735fe4
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs
@@ -0,0 +1,425 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+using Ninject.Activation;
+using Ninject.Extensions.ContextPreservation;
+using Ninject.Extensions.Factory;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils.Ninject;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9
+{
+    internal class CIFNinjectModule : MRFNinjectModule
+    {
+		#region Overrides of VectoNinjectModule
+
+		public override void Load()
+		{
+			LoadModule<ContextPreservationModule>();
+			Bind<ICustomerInformationFileFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(
+				nameCombinationMethod, 6, 6, typeof(ICustomerInformationFileFactory).GetMethod(nameof(ICustomerInformationFileFactory
+					.GetCustomerReport)))).InSingletonScope();
+
+			#region Lorry CIF
+			Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC, false,true, false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+			#region MediumLorryCIF
+
+			Bind<IXMLCustomerReport>().To<ConventionalLorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_PxLorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S2_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S3_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4, false, false, false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod(
+				ToParams(VehicleCategoryHelper.Van, VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC, false, true, false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E3_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E4_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<Exempted_Lorry_CIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.Van,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+			#endregion
+
+			#endregion
+
+			#region CompletedBUsCIF
+
+			Bind<IXMLCustomerReport>().To<Conventional_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_Px_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S2_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S3_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<HEV_S4_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+
+			Bind<IXMLCustomerReport>().To<HEV_IEPC_S_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E2_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E3_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_E4_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<PEV_IEPC_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLCustomerReport>().To<Exempted_CompletedBusCIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+			#endregion
+
+			#region VehicleTypes
+			Bind<IXmlTypeWriter>().To<CIFConventionalLorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalLorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEVPx_LorryVehicleWriter>().When(AccessedViaCIFFactory);
+
+			Bind<IXmlTypeWriter>().To<CIF_HEVPx_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_PxLorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_S2_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S2_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_S3_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S3_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_S4_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S4_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_IEPC_S_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_IEPC_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_E2_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E2_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_E3_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E3_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_E4_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E4_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_IEPC_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_IEPC_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_Exempted_LorryVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExempted_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_Conventional_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventional_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_Px_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_Px_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_IHPC_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_IHPC_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_S2_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S2_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_S3_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S3_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_S4_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_S4_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_HEV_IEPC_S_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_IEPC_S_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_E2_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E2_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_E3_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E3_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_E4_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_E4_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_PEV_IEPC_CompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_IEPC_CompletedBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<CIF_ExemptedCompletedBusVehicleWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExemptedCompletedBusVehicleType());
+			#endregion
+
+			#region VehicleGroups
+			Bind<IReportVehicleOutputGroup>().To<GeneralVehicleOutputSequenceGroupCif>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetGeneralVehicleSequenceGroupWriter());
+			Bind<IReportCompletedBusOutputGroup>().To<GeneralVehicleOutputSequenceGroupCif>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetGeneralVehicleSequenceGroupWriterCompletedBus());
+
+			Bind<IReportOutputGroup>().To<LorryGeneralVehicleSequenceGroupCIF>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetLorryGeneralVehicleSequenceGroupWriter());
+			Bind<IReportOutputGroup>().To<ConventionalLorryVehicleSequenceGroupCIF>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalLorryVehicleSequenceGroupWriter());
+			Bind<IReportOutputGroup>().To<HEV_LorryVehicleTypeGroupCIF>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_LorryVehicleTypeGroup());
+			Bind<IReportOutputGroup>().To<HEV_LorryVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_LorryVehicleSequenceGroupWriter());
+			Bind<IReportOutputGroup>().To<PEV_LorryVehicleTypeGroupCIF>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_LorryVehicleTypeGroup());
+			Bind<IReportOutputGroup>().To<PEV_LorryVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_LorryVehicleSequenceGroupWriter());
+			Bind<IReportOutputGroup>().To<CompletedBusVehicleTypeGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetCompletedBusVehicleTypeGroup());
+			Bind<IReportOutputGroup>().To<PEVCompletedBusVehicleTypeGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEVCompletedBusVehicleTypeGroup());
+			Bind<IReportOutputGroup>().To<ExemptedCompletedBusVehicleTypeGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetExemptedCompletedBusVehicleTypeGroup());
+
+			Bind<IReportOutputGroup>().To<HEV_CompletedBusVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_CompletedBusVehicleSequenceGroupWriter());
+			Bind<IReportOutputGroup>().To<PEV_CompletedBusVehicleSequenceGroupWriter>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_CompletedBusVehicleSequenceGroupWriter());
+			Bind<IReportOutputGroup>().To<ConventionalCompletedBusVehicleSequenceGroupCIF>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalCompletedBusVehicleSequenceGroupWriter());
+
+			#endregion
+			#region ComponentGroups
+			Bind<IReportOutputGroup>().To<EngineGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetEngineGroup());
+			Bind<IReportOutputGroup>().To<TransmissionGroupWithGearbox>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroup());
+			Bind<IReportOutputGroup>().To<TransmissionGroupWithoutGearbox>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroupNoGearbox());
+			Bind<IReportOutputGroup>().To<IEPCTransmissionGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetIEPCTransmissionGroup());
+			Bind<IReportOutputGroup>().To<AxleWheelsGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetAxleWheelsGroup());
+			Bind<IReportOutputGroup>().To<ElectricMachineGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetElectricMachineGroup());
+			Bind<IReportOutputGroup>().To<REESSGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetREESSGroup());
+			Bind<IReportOutputGroup>().To<LorryAuxGroup>().When(AccessedViaCIFFactory).
+				NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetLorryAuxGroup());
+			Bind<IReportOutputGroup>().To<ConventionalCompletedBusAuxGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalCompletedBusAuxGroup());
+			Bind<IReportOutputGroup>().To<HEV_Px_IHPCompletedBusAuxGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_Px_IHPC_CompletedBusAuxGroup());
+			Bind<IReportOutputGroup>().To<HEV_Sx_CompletedBusAuxGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEV_Sx_CompletedBusAuxGroup());
+			Bind<IReportOutputGroup>().To<PEVCompletedBusAuxGroup>().When(AccessedViaCIFFactory)
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEV_CompletedBusAuxGroup());
+
+
+			#endregion
+
+			#region ADAS
+			Bind<ICIFAdasType>().To<CIFConventionalAdasType>()
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetConventionalADASType());
+			Bind<ICIFAdasType>().To<CIFHevAdasType>()
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetHEVADASType());
+			Bind<ICIFAdasType>().To<CIFPevAdasType>()
+				.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetPEVADASType());
+
+			#endregion ADAS
+
+
+		}
+
+		private bool AccessedViaCIFFactory(IRequest request)
+		{
+			if (request.ParentRequest == null) {
+				return false;
+			}
+			return typeof(ICustomerInformationFileFactory).IsAssignableFrom(request.ParentRequest.Service);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs
new file mode 100644
index 0000000000000000000000000000000000000000..5f5ce5e906a320ad773578b46e929541cc7d6d15
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/AbstractCIFGroupWriter.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter
+{
+    public abstract class AbstractCIFGroupWriter : IReportOutputGroup
+    {
+		//protected XNamespace _mrf = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9";
+		protected XNamespace _cif = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9";
+		protected readonly ICustomerInformationFileFactory _cifFactory;
+
+		protected AbstractCIFGroupWriter(ICustomerInformationFileFactory cifFactory)
+		{
+			_cifFactory = cifFactory;
+		}
+
+		#region Implementation of IMRFGroupWriter
+
+		public abstract IList<XElement> GetElements(IDeclarationInputDataProvider inputData);
+
+		#endregion
+
+		protected virtual IVehicleDeclarationInputData GetVehicle(IDeclarationInputDataProvider inputData)
+		{
+			if (inputData is IMultistepBusInputDataProvider multistep) {
+				return multistep.JobInputData.PrimaryVehicle.Vehicle;
+			} else {
+				return inputData.JobInputData.Vehicle;
+			}
+		}
+	}
+
+	public abstract class AbstractCifXmlType
+	{
+		protected XNamespace _cif = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9";
+		protected readonly ICustomerInformationFileFactory _cifFactory;
+
+		protected AbstractCifXmlType(ICustomerInformationFileFactory cifFactory)
+		{
+			_cifFactory = cifFactory;
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/CIFAdasTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/CIFAdasTypes.cs
new file mode 100644
index 0000000000000000000000000000000000000000..144fb1f962f77dc83ad0a8e8463d6f0322131335
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/CIFAdasTypes.cs
@@ -0,0 +1,69 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+    public interface ICIFAdasType
+    {
+        XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas);
+    }
+
+    internal class CIFConventionalAdasType : AbstractCifXmlType, ICIFAdasType
+	{
+		public CIFConventionalAdasType(ICustomerInformationFileFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMRFComponentWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData)
+		{
+			return new XElement(_cif + XMLNames.Vehicle_ADAS,
+				new XElement(_cif + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart),
+				new XElement(_cif + "EcoRollWithoutEngineStopStart",
+					inputData.EcoRoll == EcoRollType.WithoutEngineStop),
+				new XElement(_cif + "EcoRollWithEngineStopStart",
+					inputData.EcoRoll == EcoRollType.WithEngineStop),
+				new XElement(_cif + XMLNames.Vehicle_ADAS_PCC,
+					inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None));
+		}
+
+		#endregion
+
+		
+	}
+
+	internal class CIFHevAdasType : AbstractCifXmlType, ICIFAdasType
+	{
+		public CIFHevAdasType(ICustomerInformationFileFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData)
+		{
+			return new XElement(_cif + XMLNames.Vehicle_ADAS, 
+				new XElement(_cif + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart),
+				new XElement(_cif + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None)
+				);
+		}
+
+		#endregion
+	}
+
+	internal class CIFPevAdasType : AbstractCifXmlType, ICIFAdasType
+	{
+		public CIFPevAdasType(ICustomerInformationFileFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData)
+		{
+			return new XElement(_cif + XMLNames.Vehicle_ADAS,
+				new XElement(_cif + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None)
+			);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d2d0ac0c483eaeda79ff69bf322c84b9ca00d8fc
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs
@@ -0,0 +1,404 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter
+{
+    public class EngineGroup : AbstractCIFGroupWriter
+    {
+		public EngineGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = GetVehicle(inputData);
+			var engine = vehicle.Components.EngineInputData;
+
+			var fuelTypesXElement = new XElement(_cif + XMLNames.Report_Vehicle_FuelTypes);
+
+			var fuelTypes = new HashSet<FuelType>();
+            foreach (var engineMode in engine.EngineModes)
+            {
+				foreach (var fuel in engineMode.Fuels) {
+					fuelTypes.Add(fuel.FuelType);
+				}
+			}
+			var sortedFuels = fuelTypes.ToList();
+			sortedFuels.Sort((fuelType1, fuelType2) => fuelType1.CompareTo(fuelType2));
+
+			sortedFuels.ForEach(type => fuelTypesXElement.Add(new XElement(_cif + XMLNames.Engine_FuelType, type.ToXMLFormat())));
+
+			return new List<XElement>() {
+				new XElement(_cif + "EngineRatedPower", engine.RatedPowerDeclared.ValueAsUnit("kW")),
+				new XElement(_cif + "EngineCapacity", engine.Displacement.ValueAsUnit("ltr", 1)),
+				fuelTypesXElement
+			};
+		}
+
+		#endregion
+	}
+
+
+	public class TransmissionGroupWithGearbox : AbstractCIFGroupWriter
+	{
+		public TransmissionGroupWithGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = GetVehicle(inputData);
+			var gearbox = vehicle.Components.GearboxInputData;
+
+			return new List<XElement>() {
+				new XElement(_cif + "TransmissionValues", gearbox.CertificationMethod.ToXMLFormat()),
+				new XElement(_cif + XMLNames.Gearbox_TransmissionType, gearbox.Type.ToXMLFormat()),
+				new XElement(_cif + "NrOfGears", gearbox.Gears.Count)
+			};
+		}
+
+		#endregion
+	}
+
+	public class TransmissionGroupWithoutGearbox : AbstractCIFGroupWriter
+	{
+		public TransmissionGroupWithoutGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			//var vehicle = GetVehicle(inputData);
+			//var gearbox = vehicle.Components.GearboxInputData;
+			return new List<XElement>() {
+				new XElement(_cif + "NrOfGears", 1)
+			};
+		}
+
+		#endregion
+	}
+
+	public class IEPCTransmissionGroup : AbstractCIFGroupWriter
+	{
+		public IEPCTransmissionGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+            var vehicle = GetVehicle(inputData);
+            var iepc = vehicle.Components.IEPC;
+
+            return new List<XElement>() {
+				new XElement(_cif + "NrOfGears", iepc.Gears.Count)
+			};
+		}
+
+		#endregion
+	}
+
+	public class AxleWheelsGroup : AbstractCIFGroupWriter
+	{
+		public AxleWheelsGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = GetVehicle(inputData);
+			var axleWheels = vehicle.Components.AxleWheels;
+			double averageRRC = 0;
+			var result = new List<XElement>();
+			int axleCount = 0;
+			
+			foreach (var axle in axleWheels.AxlesDeclaration) {
+				averageRRC += axle.Tyre.RollResistanceCoefficient;
+				result.Add(new XElement(_cif + XMLNames.AxleWheels_Axles_Axle, 
+					new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, ++axleCount),
+					new XElement(_cif + XMLNames.Report_Tyre_TyreDimension, axle.Tyre.Dimension),
+					new XElement(_cif + "FuelEfficiencyClass", axle.Tyre.FuelEfficiencyClass),
+					new XElement(_cif + XMLNames.Report_Tyre_TyreCertificationNumber, axle.Tyre.CertificationNumber)));
+			}
+			averageRRC /= axleWheels.AxlesDeclaration.Count;
+			result.Insert(0, new XElement(_cif + "AverageRRC", averageRRC.ToXMLFormat(4)));
+
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class LorryAuxGroup : AbstractCIFGroupWriter
+	{
+		public LorryAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			return new List<XElement>() {
+				new XElement(_cif + "SteeringPumpTechnology",
+					inputData.JobInputData.Vehicle.Components.AuxiliaryInputData.Auxiliaries
+						.Single(aux => aux.Type == AuxiliaryType.SteeringPump).Technology.Join())
+			};
+		}
+
+		#endregion
+	}
+
+	public class ElectricMachineGroup : AbstractCIFGroupWriter
+	{
+		public ElectricMachineGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			Watt totalRatedPropulsionPower = null;
+			IList<IElectricMotorVoltageLevel> voltageLevels = null;
+			var vehicle = GetVehicle(inputData);
+			if (vehicle.ArchitectureID == ArchitectureID.S_IEPC || vehicle.ArchitectureID == ArchitectureID.E_IEPC) {
+				totalRatedPropulsionPower = vehicle.Components.IEPC.R85RatedPower;
+				voltageLevels = vehicle.Components.IEPC.VoltageLevels.ToList();
+
+			} else {
+				voltageLevels = new List<IElectricMotorVoltageLevel>();
+				var propulsionElectricMachines = vehicle.Components.ElectricMachines.Entries
+					.Where(e => e.Position != PowertrainPosition.GEN);
+				totalRatedPropulsionPower = propulsionElectricMachines.Sum((e => e.ElectricMachine.R85RatedPower * e.Count));
+				var groupedVoltageLevels = propulsionElectricMachines
+					.SelectMany(electricMachine => electricMachine.ElectricMachine.VoltageLevels).GroupBy((level => level.VoltageLevel));
+				foreach (IGrouping<Volt, IElectricMotorVoltageLevel> electricMotorVoltageLevels in groupedVoltageLevels) {
+					voltageLevels.Add(electricMotorVoltageLevels.MaxBy(level => level.ContinuousTorqueSpeed * level.ContinuousTorque));
+				}
+			}
+
+			result.Add(new XElement(_cif + "TotalRatedPropulsionPower", totalRatedPropulsionPower.ValueAsUnit("kW", 0)));
+
+			var voltageLevelsXElement = new XElement(_cif + "VoltageLevels");
+			result.Add(voltageLevelsXElement);
+
+			foreach (var electricMotorVoltageLevel in voltageLevels) {
+				var voltageLevel = new XElement(_cif + XMLNames.ElectricMachine_VoltageLevel,
+					voltageLevels.Count > 1
+						? new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0))
+						: null,
+					new XElement(_cif + "MaxContinuousPropulsionPower",
+						(electricMotorVoltageLevel.ContinuousTorque * electricMotorVoltageLevel.ContinuousTorqueSpeed)
+						.ValueAsUnit("kW", 0)));
+
+				voltageLevelsXElement.Add(voltageLevel);
+			}
+
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class REESSGroup : AbstractCIFGroupWriter
+	{
+		public REESSGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = GetVehicle(inputData);
+			var reess = vehicle.Components.ElectricStorage;
+			var batteries = reess.ElectricStorageElements
+				.Where(es => es.REESSPack.StorageType == REESSType.Battery)
+				.Select(es => es.REESSPack as IBatteryPackDeclarationInputData).ToArray();
+			var capacitors = reess.ElectricStorageElements.Where(es => es.REESSPack.StorageType == REESSType.SuperCap)
+				.Select(es => es.REESSPack as ISuperCapDeclarationInputData).ToArray();
+
+			var totalStorageCapacity =
+				(batteries.Length > 0 ? batteries.Sum(bp => bp.TotalStorageCapacity()) : 0.SI<WattSecond>()) +
+				(capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<WattSecond>());
+			var totalUsableCapacity = (batteries.Length > 0
+										? batteries.Sum(bp => bp.TotalUsableCapacityInSimulation())
+										: 0.SI<WattSecond>()) +
+									(capacitors.Length > 0
+										? capacitors.Sum(cap => GetTotalUsableCapacityInSimulation(cap))
+										: 0.SI<WattSecond>());
+
+			return new List<XElement>() {
+				new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("kWh", 0)),
+				new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("kWh", 0))
+			};
+		}
+
+		private WattSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap)
+		{
+			return GetStorageCapacity(cap) * 0.8;
+		}
+
+		private WattSecond GetStorageCapacity(ISuperCapDeclarationInputData cap)
+		{
+            var voltageRange = cap.MaxVoltage - cap.MinVoltage;
+            //var avgVoltage = (cap.MaxVoltage + cap.MinVoltage) / 2.0;
+			return cap.Capacity * voltageRange * voltageRange / 2.0;
+		}
+
+		#endregion
+	}
+
+	public class ConventionalCompletedBusAuxGroup : AbstractCIFGroupWriter
+	{
+		public ConventionalCompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var multistage = inputData as IMultistepBusInputDataProvider;
+			if (multistage == null) {
+				throw new VectoException("BusAuxGroupWriter requires MultistepInputData");
+			}
+
+			var completedBusAux = multistage.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries;
+			var primaryBusAux = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.BusAuxiliaries;
+			var retVal = new List<XElement>();
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_SteeringPump, GetSteeringPumpTech(completedBusAux, primaryBusAux)));
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_ElectricSystem, GetElectricSystem(completedBusAux, primaryBusAux)));
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_PneumaticSystem, GetPneumaticSystem(completedBusAux, primaryBusAux)));
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_HVAC, GetHVAC(completedBusAux, primaryBusAux)));
+			return retVal;
+			
+		}
+
+		protected virtual IList<XElement> GetPneumaticSystem(
+			IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			return new[] {
+				new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem,
+					primaryBusAux.PneumaticSupply.SmartAirCompression),
+				new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem,
+					primaryBusAux.PneumaticSupply.SmartRegeneration)
+			};
+		}
+
+		protected virtual IList<XElement> GetElectricSystem(
+			IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			var retVal = new List<XElement>() {
+				new XElement(_cif + "AlternatorTechnology", primaryBusAux.ElectricSupply.AlternatorTechnology.ToXMLFormat())
+			};
+			if (primaryBusAux.ElectricSupply.AlternatorTechnology == AlternatorType.Smart) {
+				retVal.Add(new XElement(_cif + "MaxAlternatorPower",
+					primaryBusAux.ElectricSupply.Alternators.Sum(x => x.RatedCurrent * x.RatedVoltage).ValueAsUnit("kW", 0)));
+				retVal.Add(new XElement(_cif + "ElectricStorageCapacity",
+					primaryBusAux.ElectricSupply.ElectricStorage.Sum(x => x.ElectricStorageCapacity).ValueAsUnit("kWh", 0)));
+			}
+
+			return retVal;
+		}
+
+		protected virtual IList<XElement> GetSteeringPumpTech(
+			IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			return primaryBusAux.SteeringPumpTechnology.Select(x => new XElement(_cif + XMLNames.BusAux_Technology, x))
+				.ToArray();
+		}
+
+		protected virtual IList<XElement> GetHVAC(IBusAuxiliariesDeclarationData completedBusAux,
+			IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			return new[] {
+				new XElement(_cif + XMLNames.Bus_SystemConfiguration,
+					completedBusAux.HVACAux.SystemConfiguration.ToXmlFormat()),
+				new XElement(_cif + "AuxiliaryHeaterPower",
+					completedBusAux.HVACAux.AuxHeaterPower.ValueAsUnit("kW", 0)),
+				new XElement(_cif + XMLNames.Bus_DoubleGlazing, completedBusAux.HVACAux.DoubleGlazing)
+			};
+		}
+
+		#endregion
+	}
+
+	public class HEV_Px_IHPCompletedBusAuxGroup : ConventionalCompletedBusAuxGroup
+	{
+		public HEV_Px_IHPCompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+	}
+
+	//public class HEV_Px_IHPCompleteHEV_Sx_CompletedBusAuxGroupdBusAuxGroup : ConventionalCompletedBusAuxGroup
+	//{
+	//	public HEV_Px_IHPCompleteHEV_Sx_CompletedBusAuxGroupdBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+	//}
+
+	public class HEV_Sx_CompletedBusAuxGroup : ConventionalCompletedBusAuxGroup
+	{
+		public HEV_Sx_CompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		protected override IList<XElement> GetPneumaticSystem(
+			IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			return new[] {
+				//new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem,
+				//	primaryBusAux.PneumaticSupply.SmartAirCompression),
+				new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem,
+					primaryBusAux.PneumaticSupply.SmartRegeneration)
+			};
+		}
+	}
+
+	public class PEVCompletedBusAuxGroup : ConventionalCompletedBusAuxGroup
+	{
+		public PEVCompletedBusAuxGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of ConventionalCompletedBusAuxGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var multistage = inputData as IMultistepBusInputDataProvider;
+			if (multistage == null) {
+				throw new VectoException("BusAuxGroupWriter requires MultistepInputData");
+			}
+
+			var completedBusAux = multistage.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries;
+			var primaryBusAux = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.BusAuxiliaries;
+			var retVal = new List<XElement>();
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_SteeringPump, GetSteeringPumpTech(completedBusAux, primaryBusAux)));
+			//retVal.Add(new XElement(_cif + XMLNames.BusAux_ElectricSystem, GetElectricSystem(completedBusAux, primaryBusAux)));
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_PneumaticSystem, GetPneumaticSystem(completedBusAux, primaryBusAux)));
+			retVal.Add(new XElement(_cif + XMLNames.BusAux_HVAC, GetHVAC(completedBusAux, primaryBusAux)));
+			return retVal;
+
+		}
+
+		protected override IList<XElement> GetElectricSystem(IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			return new XElement[] { };
+		}
+
+		protected override IList<XElement> GetPneumaticSystem(
+			IBusAuxiliariesDeclarationData completedBusAux, IBusAuxiliariesDeclarationData primaryBusAux)
+		{
+			return new[] {
+				//new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem,
+				//	primaryBusAux.PneumaticSupply.SmartAirCompression),
+				new XElement(_cif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem,
+					primaryBusAux.PneumaticSupply.SmartRegeneration)
+			};
+		}
+
+		#endregion
+	}
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs
new file mode 100644
index 0000000000000000000000000000000000000000..119a65fa87fd35049ec05668ab9c63d7934d3609
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs
@@ -0,0 +1,448 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter
+{
+    public class GeneralVehicleOutputSequenceGroupCif : AbstractCIFGroupWriter, IReportVehicleOutputGroup, IReportCompletedBusOutputGroup
+	{
+		public GeneralVehicleOutputSequenceGroupCif(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			return GetElements(inputData.JobInputData.Vehicle);
+		}
+
+		#endregion
+
+		#region Implementation of IReportVehicleOutputGroup
+
+		public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData)
+		{
+			var result = new List<XElement>() {
+				new XElement(_cif + XMLNames.Vehicle_VIN, vehicleData.VIN),
+				new XElement(_cif + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()),
+				new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()),
+				new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(vehicleData.GrossVehicleMassRating, "kg")),
+				new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()),
+				new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
+
+			};
+			return result;
+		}
+
+		#endregion
+
+		#region Implementation of IReportCompletedBusOutputGroup
+
+		public IList<XElement> GetElements(IMultistepBusInputDataProvider multiStageInputDataProvider)
+		{
+			var consolidatedVehicleData = multiStageInputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			var primary = multiStageInputDataProvider.JobInputData.PrimaryVehicle.Vehicle;
+			var result = new List<XElement>() {
+				new XElement(_cif + XMLNames.Vehicle_VIN, consolidatedVehicleData.VIN),
+				new XElement(_cif + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()),
+				new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, primary.AxleConfiguration.ToXMLFormat()),
+				new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(consolidatedVehicleData.GrossVehicleMassRating, "kg")),
+				new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).GetClassNumber()),
+				new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(multiStageInputDataProvider).ToXMLFormat()),
+			};
+			return result;
+		}
+
+		#endregion
+	}
+
+
+	public class LorryGeneralVehicleSequenceGroupCIF : AbstractCIFGroupWriter
+	{
+		public LorryGeneralVehicleSequenceGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>() {
+				new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer),
+				new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress),
+				new XElement(_cif + XMLNames.Component_Model, vehicleData.Model),
+				!vehicleData.VehicleTypeApprovalNumber.IsNullOrEmpty() 
+					? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, vehicleData.VehicleTypeApprovalNumber)
+					: null,
+				//new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, !vehicleData.VehicleTypeApprovalNumber.IsNullOrEmpty() 
+				//	? vehicleData.VehicleTypeApprovalNumber 
+				//	: null),
+				new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ValueAsUnit("kg")),
+				new XElement(_cif + XMLNames.Vehicle_VocationalVehicle, vehicleData.VocationalVehicle),
+				new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab),
+				new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle),
+				new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV)
+			};
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class ConventionalLorryVehicleSequenceGroupCIF : AbstractCIFGroupWriter
+	{
+		public ConventionalLorryVehicleSequenceGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var dualFuel = vehicleData.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1);
+			return new List<XElement>() {
+				new XElement(_cif + "WasteHeatRecovery",
+					vehicleData.Components.EngineInputData.WHRType != WHRType.None),
+				new XElement(_cif + XMLNames.Vehicle_DualFuelVehicle, dualFuel)
+			};
+		}
+
+		#endregion
+	}
+
+	public class ConventionalCompletedBusVehicleSequenceGroupCIF : AbstractCIFGroupWriter
+	{
+		public ConventionalCompletedBusVehicleSequenceGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var multistep = inputData as IMultistepBusInputDataProvider;
+			if (multistep == null) {
+				throw new VectoException("Completed Bus CIF requires bus input data");
+			}
+			var vehicleData = multistep.JobInputData.PrimaryVehicle.Vehicle;
+			var dualFuel = vehicleData.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1);
+			return new List<XElement>() {
+				new XElement(_cif + "WasteHeatRecovery",
+					vehicleData.Components.EngineInputData.WHRType != WHRType.None),
+				new XElement(_cif + XMLNames.Vehicle_DualFuelVehicle, dualFuel)
+			};
+		}
+
+		#endregion
+	}
+
+	public class HEV_LorryVehicleTypeGroupCIF : AbstractCIFGroupWriter
+	{
+		public HEV_LorryVehicleTypeGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			result.AddRange(_cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(inputData.JobInputData.Vehicle));
+			result.AddRange(_cifFactory.GetLorryGeneralVehicleSequenceGroupWriter().GetElements(inputData));
+			result.AddRange(_cifFactory.GetHEV_LorryVehicleSequenceGroupWriter().GetElements(inputData));
+
+			return result;
+		}
+
+		#endregion
+	}
+	public class PEV_LorryVehicleTypeGroupCIF : AbstractCIFGroupWriter
+	{
+		public PEV_LorryVehicleTypeGroupCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			result.AddRange(_cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(inputData.JobInputData.Vehicle));
+			result.AddRange(_cifFactory.GetLorryGeneralVehicleSequenceGroupWriter().GetElements(inputData));
+			result.AddRange(_cifFactory.GetPEV_LorryVehicleSequenceGroupWriter().GetElements(inputData));
+
+			return result;
+		}
+
+		#endregion
+	}
+
+
+	public class HEV_LorryVehicleSequenceGroupWriter : AbstractCIFGroupWriter
+	{
+		public HEV_LorryVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			var ovCc = inputData.JobInputData.Vehicle.OvcHev;
+			result.AddRange(_cifFactory.GetConventionalLorryVehicleSequenceGroupWriter().GetElements(inputData));
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var ihpc = vehicleData.Components?.GearboxInputData?.Type == GearboxType.IHPC;
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + "HEVArchitecture", ihpc ? GearboxType.IHPC.ToXMLFormat() : vehicleData.ArchitectureID.GetLabel()),
+				new XElement(_cif + "OffVehicleChargingCapability", ovCc)
+			});
+			if (ovCc) {
+				result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1)));
+			}
+			return result;
+		}
+
+		#endregion
+	}
+
+
+	public class PEV_LorryVehicleSequenceGroupWriter : AbstractCIFGroupWriter
+	{
+		public PEV_LorryVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			var vehicle = GetVehicle(inputData);
+			var ovCc = vehicle.OvcHev;
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + "PEVArchitecture", vehicle.ArchitectureID.GetLabel()),
+				new XElement(_cif + "OffVehicleChargingCapability", ovCc)
+			});
+			return result;
+		}
+
+		#endregion
+	}
+
+
+	public class HEV_CompletedBusVehicleSequenceGroupWriter : AbstractCIFGroupWriter
+	{
+		public HEV_CompletedBusVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var multistep = inputData as IMultistepBusInputDataProvider;
+			if (multistep == null) {
+				throw new VectoException("Completed Bus CIF requires bus input data");
+			}
+			var result = new List<XElement>();
+			var ovCc = multistep.JobInputData.PrimaryVehicle.Vehicle.OvcHev;
+			//result.AddRange(_cifFactory.GetConventionalCompletedBusVehicleSequenceGroupWriter().GetElements(inputData));
+			var vehicleData = multistep.JobInputData.PrimaryVehicle.Vehicle;
+			var ihpc = vehicleData.Components?.GearboxInputData?.Type == GearboxType.IHPC;
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + "HEVArchitecture", ihpc ? GearboxType.IHPC.ToXMLFormat() : multistep.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID.GetLabel()),
+				new XElement(_cif + "OffVehicleChargingCapability", ovCc)
+			});
+			if (ovCc) {
+				result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", multistep.JobInputData.PrimaryVehicle.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1)));
+			}
+			return result;
+		}
+
+		#endregion
+	}
+
+
+	public class PEV_CompletedBusVehicleSequenceGroupWriter : AbstractCIFGroupWriter
+	{
+		public PEV_CompletedBusVehicleSequenceGroupWriter(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var multistep = inputData as IMultistepBusInputDataProvider;
+			if (multistep == null) {
+				throw new VectoException("Completed Bus CIF requires bus input data");
+			}
+			var result = new List<XElement>();
+			var ovCc = multistep.JobInputData.PrimaryVehicle.Vehicle.OvcHev;
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + "PEVArchitecture",  multistep.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID.GetLabel()),
+				new XElement(_cif + "OffVehicleChargingCapability", ovCc)
+			});
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class CompletedBusVehicleTypeGroup : AbstractCIFGroupWriter
+	{
+		private XElement GetManufacturerAndAddress(string manufacturer, string manufacturerAddress, int stepCount)
+		{
+			return new XElement(_cif + "Step",
+				new XAttribute(XMLNames.ManufacturingStep_StepCount, stepCount),
+				new XElement(_cif + XMLNames.Component_Manufacturer, manufacturer),
+				new XElement(_cif + XMLNames.Component_ManufacturerAddress, manufacturerAddress));
+		}
+		public CompletedBusVehicleTypeGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var completedBusData = inputData as IMultistepBusInputDataProvider;
+			if (completedBusData == null) {
+				throw new ArgumentException(
+					$"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			var result = new List<XElement>();
+			result.AddRange(
+				_cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus().GetElements(completedBusData));
+			result.Add(GetManufacturers(completedBusData));
+
+
+	
+			var consolidatedVehicle = completedBusData.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			var dualFuel = completedBusData.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1);
+
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + XMLNames.Component_Model, consolidatedVehicle.Model),
+				new XElement(_cif + XMLNames.CorrectedActualMass, consolidatedVehicle.CurbMassChassis.ValueAsUnit("kg", 0)),
+				new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicle.ZeroEmissionVehicle),
+				new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, consolidatedVehicle.HybridElectricHDV),
+				new XElement(_cif + "WasteHeatRecovery", completedBusData.JobInputData.PrimaryVehicle.Vehicle.Components.EngineInputData.WHRType != WHRType.None),
+				new XElement(_cif + XMLNames.Vehicle_DualFuelVehicle, dualFuel),
+				new XElement(_cif + XMLNames.Vehicle_RegisteredClass, consolidatedVehicle.RegisteredClass.ToXMLFormat()),
+				new XElement(_cif + "TotalNumberOfPassengers", consolidatedVehicle.NumberPassengerSeatsLowerDeck 
+																+ consolidatedVehicle.NumberPassengerSeatsUpperDeck 
+																+ consolidatedVehicle.NumberPassengersStandingLowerDeck 
+																+ consolidatedVehicle.NumberPassengersStandingUpperDeck),
+				!consolidatedVehicle.VehicleTypeApprovalNumber.IsNullOrEmpty() ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, consolidatedVehicle.VehicleTypeApprovalNumber) : null
+			});
+
+			return result;
+		}
+
+		protected XElement GetManufacturers(IMultistepBusInputDataProvider completedBusData)
+		{
+			var manufacturers = new XElement(_cif + "Manufacturers",
+				GetManufacturerAndAddress(completedBusData.JobInputData.PrimaryVehicle.Vehicle.Manufacturer,
+					completedBusData.JobInputData.PrimaryVehicle.Vehicle.ManufacturerAddress, 1));
+			foreach (var step in completedBusData.JobInputData.ManufacturingStages) {
+				manufacturers.Add(GetManufacturerAndAddress(step.Vehicle.Manufacturer, step.Vehicle.ManufacturerAddress,
+					step.StepCount));
+			}
+
+			return manufacturers;
+		}
+
+		#endregion
+	}
+
+	public class PEVCompletedBusVehicleTypeGroup : AbstractCIFGroupWriter
+	{
+		private XElement GetManufacturerAndAddress(string manufacturer, string manufacturerAddress, int stepCount)
+		{
+			return new XElement(_cif + "Step",
+				new XAttribute(XMLNames.ManufacturingStep_StepCount, stepCount),
+				new XElement(_cif + XMLNames.Component_Manufacturer, manufacturer),
+				new XElement(_cif + XMLNames.Component_ManufacturerAddress, manufacturerAddress));
+		}
+		public PEVCompletedBusVehicleTypeGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCIFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var completedBusData = inputData as IMultistepBusInputDataProvider;
+			if (completedBusData == null) {
+				throw new ArgumentException(
+					$"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			var result = new List<XElement>();
+			result.AddRange(
+				_cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus().GetElements(completedBusData));
+			result.Add(GetManufacturers(completedBusData));
+
+
+
+			var consolidatedVehicle = completedBusData.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + XMLNames.Component_Model, consolidatedVehicle.Model),
+				new XElement(_cif + XMLNames.CorrectedActualMass, consolidatedVehicle.CurbMassChassis.ValueAsUnit("kg", 0)),
+				new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicle.ZeroEmissionVehicle),
+				new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, consolidatedVehicle.HybridElectricHDV),
+				new XElement(_cif + XMLNames.Vehicle_RegisteredClass, consolidatedVehicle.RegisteredClass.ToXMLFormat()),
+				new XElement(_cif + "TotalNumberOfPassengers", consolidatedVehicle.NumberPassengerSeatsLowerDeck
+																+ consolidatedVehicle.NumberPassengerSeatsUpperDeck
+																+ consolidatedVehicle.NumberPassengersStandingLowerDeck
+																+ consolidatedVehicle.NumberPassengersStandingUpperDeck),
+				!consolidatedVehicle.VehicleTypeApprovalNumber.IsNullOrEmpty() ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, consolidatedVehicle.VehicleTypeApprovalNumber) : null
+			});
+
+			return result;
+		}
+
+		private XElement GetManufacturers(IMultistepBusInputDataProvider completedBusData)
+		{
+			var manufacturers = new XElement(_cif + "Manufacturers",
+				GetManufacturerAndAddress(completedBusData.JobInputData.PrimaryVehicle.Vehicle.Manufacturer,
+					completedBusData.JobInputData.PrimaryVehicle.Vehicle.ManufacturerAddress, 1));
+			foreach (var step in completedBusData.JobInputData.ManufacturingStages) {
+				manufacturers.Add(GetManufacturerAndAddress(step.Vehicle.Manufacturer, step.Vehicle.ManufacturerAddress,
+					step.StepCount));
+			}
+
+			return manufacturers;
+		}
+
+		#endregion
+	}
+
+
+	public class ExemptedCompletedBusVehicleTypeGroup : CompletedBusVehicleTypeGroup
+	{
+		public ExemptedCompletedBusVehicleTypeGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var completedBusData = inputData as IMultistepBusInputDataProvider;
+			if (completedBusData == null) {
+				throw new ArgumentException(
+					$"{nameof(inputData)} must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			var result = new List<XElement>();
+			result.AddRange(
+				_cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus().GetElements(completedBusData));
+			result.Add(GetManufacturers(completedBusData));
+
+
+
+			var consolidatedVehicle = completedBusData.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			result.AddRange(new List<XElement>() {
+				new XElement(_cif + XMLNames.Component_Model, consolidatedVehicle.Model),
+				new XElement(_cif + XMLNames.CorrectedActualMass, consolidatedVehicle.CurbMassChassis.ValueAsUnit("kg", 0)),
+				new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicle.ZeroEmissionVehicle),
+				new XElement(_cif + XMLNames.Vehicle_RegisteredClass, consolidatedVehicle.RegisteredClass.ToXMLFormat()),
+				new XElement(_cif + "TotalNumberOfPassengers", consolidatedVehicle.NumberPassengerSeatsLowerDeck
+																+ consolidatedVehicle.NumberPassengerSeatsUpperDeck
+																+ consolidatedVehicle.NumberPassengersStandingLowerDeck
+																+ consolidatedVehicle.NumberPassengersStandingUpperDeck),
+				!consolidatedVehicle.VehicleTypeApprovalNumber.IsNullOrEmpty() ? new XElement(_cif + XMLNames.VehicleTypeApprovalNumber, consolidatedVehicle.VehicleTypeApprovalNumber) : null
+			});
+
+			return result;
+		}
+
+	}
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..9cdd1052abf33c4ee387bf759cff64bfd1a398a6
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs
@@ -0,0 +1,665 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter
+{
+	public abstract class VehicleWriter : IXmlTypeWriter
+	{
+		protected readonly ICustomerInformationFileFactory _cifFactory;
+		//protected readonly IManufacturerReportFactory _mrfFactory;
+		protected XNamespace _cif = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		public VehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory)
+		{
+			_cifFactory = cifFactory;
+			//_mrfFactory = mrfFactory;
+		}
+
+
+		#region Implementation of IXmlTypeWriter
+
+		public abstract XElement GetElement(IDeclarationInputDataProvider inputData);
+
+		#endregion
+
+
+		protected XElement GetRetarder(IDeclarationInputDataProvider inputData)
+		{
+			IRetarderInputData retarder;
+			if (inputData is IMultistepBusInputDataProvider multistage) {
+				retarder = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.RetarderInputData;
+			} else {
+				retarder = inputData.JobInputData.Vehicle.Components.RetarderInputData;
+			}
+			return new XElement(_cif + XMLNames.Component_Retarder,
+				retarder.Type != RetarderType.None);
+		}
+
+		protected XElement GetAxleRatio(IDeclarationInputDataProvider inputData, bool optional = false)
+		{
+			IAxleGearInputData axlegear;
+			if (inputData is IMultistepBusInputDataProvider multistage) {
+				axlegear = multistage.JobInputData.PrimaryVehicle.Vehicle.Components.AxleGearInputData;
+			} else {
+				axlegear = inputData.JobInputData.Vehicle.Components.AxleGearInputData;
+			}
+			if (!optional || (axlegear != null)) {
+				return new XElement(_cif + "AxleRatio", axlegear.Ratio.ToXMLFormat(3));
+			} else {
+				return null;
+			}
+			
+		}
+		
+	}
+
+
+	public class CIFConventionalLorryVehicleWriter : VehicleWriter
+	{
+		public CIFConventionalLorryVehicleWriter(ICustomerInformationFileFactory cifFactory,
+			IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory)
+		{
+
+		}
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+					_cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(inputData.JobInputData.Vehicle),
+					_cifFactory.GetLorryGeneralVehicleSequenceGroupWriter().GetElements(inputData),
+					_cifFactory.GetConventionalLorryVehicleSequenceGroupWriter().GetElements(inputData),
+					_cifFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+					_cifFactory.GetEngineGroup().GetElements(inputData),
+					_cifFactory.GetTransmissionGroup().GetElements(inputData),
+					GetRetarder(inputData),
+					GetAxleRatio(inputData),
+					_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+					_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+
+
+			
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEVPx_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_HEVPx_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_S2_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_HEV_S2_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_S3_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_HEV_S3_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_S4_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_HEV_S4_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_IEPC_S_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_HEV_IEPC_S_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetHEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData, true),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_E2_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_PEV_E2_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_E3_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_PEV_E3_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_E4_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_PEV_E4_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_IEPC_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_PEV_IEPC_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetPEV_LorryVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData, true),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetLorryAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_Exempted_LorryVehicleWriter : VehicleWriter
+	{
+		public CIF_Exempted_LorryVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				
+				new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer),
+				new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress),
+				new XElement(_cif + XMLNames.Component_Model, vehicleData.Model),
+				_cifFactory.GetGeneralVehicleSequenceGroupWriter().GetElements(vehicleData),
+
+                new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ToXMLFormat(0)),
+				new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab),
+				new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle),
+				new XElement(_cif + "VehicleTechnologyExempted", vehicleData.ExemptedTechnology)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_Conventional_CompletedBusVehicleWriter : VehicleWriter
+	{
+		public CIF_Conventional_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "Conventional_CompletedBusVehicleType"),
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetConventionalADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), 
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+				
+				_cifFactory.GetConventionalCompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_Px_CompletedBusVehicleWriter : VehicleWriter
+	{
+		public CIF_HEV_Px_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV_Px_IHPC_CompletedBusVehicleType"),
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"), 
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetHEV_Px_IHPC_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_IHPC_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_HEV_IHPC_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+	}
+
+	public class CIF_HEV_S2_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_HEV_S2_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S2_CompletedBusVehicleType"),
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_S3_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_HEV_S3_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+		
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S3_CompletedBusVehicleType"),
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_S4_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_HEV_S4_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S4_CompletedBusVehicleType"),
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_HEV_IEPC_S_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_HEV_IEPC_S_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV_S4_CompletedBusVehicleType"),
+				_cifFactory.GetCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetHEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetHEV_Sx_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_E2_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_PEV_E2_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_E2_CompletedBusVehicleType"),
+				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_E3_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_PEV_E3_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_E3_CompletedBusVehicleType"),
+				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_E4_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_PEV_E4_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_E4_CompletedBusVehicleType"),
+				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
+				//GetRetarder(inputData),
+				//GetAxleRatio(inputData),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class CIF_PEV_IEPC_CompletedBusVehicleWriter : CIF_HEV_Px_CompletedBusVehicleWriter
+	{
+		public CIF_PEV_IEPC_CompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_IEPC_CompletedBusVehicleType"),
+				_cifFactory.GetPEVCompletedBusVehicleTypeGroup().GetElements(inputData),
+				_cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+				_cifFactory.GetPEVADASType().GetXmlType(((IMultistepBusInputDataProvider)inputData)
+					.JobInputData
+					.ConsolidateManufacturingStage.Vehicle.ADAS).WithXName(_cif + "ADAS"),
+				//_cifFactory.GetEngineGroup().GetElements(inputData),
+				_cifFactory.GetElectricMachineGroup().GetElements(inputData),
+				_cifFactory.GetREESSGroup().GetElements(inputData),
+				_cifFactory.GetIEPCTransmissionGroup().GetElements(inputData),
+				GetRetarder(inputData),
+				GetAxleRatio(inputData, true),
+				_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
+
+				_cifFactory.GetPEV_CompletedBusAuxGroup().GetElements(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+
+	public class CIF_ExemptedCompletedBusVehicleWriter : VehicleWriter
+	{
+		public CIF_ExemptedCompletedBusVehicleWriter(ICustomerInformationFileFactory cifFactory, IManufacturerReportFactory mrfFactory) : base(cifFactory, mrfFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_cif + XMLNames.Component_Vehicle,
+				_cifFactory.GetExemptedCompletedBusVehicleTypeGroup().GetElements(inputData)
+				//_cifFactory.GetConveCompletedBusVehicleSequenceGroupWriter().GetElements(inputData),
+			);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e01d3d70a410e1defd8902b7f3ab6245fe5c09d4
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CustomerInformationFile/CustomerInformationFile.cs
@@ -0,0 +1,416 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile
+{
+    public abstract class CustomerInformationFile : AbstractCustomerReport
+    {
+        public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9");
+		
+        protected CustomerInformationFile(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+	}
+
+    #region LorryCIF
+    public class ConventionalLorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_ConventionalLorryOutputType;
+		public ConventionalLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetConventionalLorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class HEV_PxLorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_Px_LorryOutputType;
+		public HEV_PxLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_PxLorryVehicleType().GetElement(inputData);
+		}
+		#endregion
+	}
+
+	public class HEV_S2_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_S2_LorryOutputType;
+		public HEV_S2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class HEV_S3_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_S3_LorryOutputType;
+		public HEV_S3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class HEV_S4_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_S4_LorryOutputType;
+		public HEV_S4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class HEV_IEPC_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_HEV_IEPC_S_LorryOutputType;
+		public HEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_IEPC_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class PEV_E2_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_E2_LorryOutputType;
+		public PEV_E2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class PEV_E3_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_E3_LorryOutputType;
+		public PEV_E3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	public class PEV_E4_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_E4_LorryOutputType;
+		public PEV_E4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData);
+
+		}
+
+		#endregion
+	}
+
+
+
+	public class PEV_IEPC_Lorry_CIF : CustomerInformationFile
+	{
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_PEV_IEPC_LorryOutputType;
+		public PEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+
+	public class Exempted_Lorry_CIF : CustomerInformationFile
+	{
+		public Exempted_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_LorryOutputType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetExempted_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	#endregion
+
+
+	#region CompletedBus
+
+	public abstract class CustomerInformationFileCompletedBus : CustomerInformationFile
+	{
+		protected XElement InputDataIntegrityPrimaryVehicle { get; set; }
+
+		protected XElement ManufacturerReportIntegrityPrimaryVehicle { get; set; }
+
+		protected CustomerInformationFileCompletedBus(ICustomerInformationFileFactory cifFactory) :
+			base(cifFactory) { }
+
+		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			InitializeVehicleData(modelData.InputData);
+			_ovc = modelData.VehicleData.Ocv;
+
+			var inputData = modelData.InputData as IMultistepBusInputDataProvider;
+			if (inputData == null) {
+				throw new VectoException("CompletedBus CustomerInformationFile requires MultistepBusInputData");
+			}
+			Results = new XElement(Cif_0_9 + "Results");
+			InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature,
+				inputData.JobInputData.ConsolidateManufacturingStage.Signature == null
+					? XMLHelper.CreateDummySig(_di)
+					: inputData.JobInputData.ConsolidateManufacturingStage.Signature.ToXML(_di));
+					//new XElement());
+			InputDataIntegrityPrimaryVehicle = new XElement(Cif_0_9 + "InputDataSignaturePrimaryVehicle",
+				inputData.JobInputData.PrimaryVehicle.PrimaryVehicleInputDataHash.ToXML(_di));
+			ManufacturerReportIntegrityPrimaryVehicle =
+				new XElement(Cif_0_9 + "ManufacturerRecordSignaturePrimaryVehicle", inputData.JobInputData.PrimaryVehicle.ManufacturerRecordHash.ToXML(_di));
+		}
+
+		protected override IList<XElement> GetReportContents(XElement resultSignature)
+		{
+			return new[] {
+				Vehicle,
+				InputDataIntegrityPrimaryVehicle,
+				ManufacturerReportIntegrityPrimaryVehicle,
+				InputDataIntegrity,
+				new XElement(Cif_0_9 + XMLNames.Report_ManufacturerRecord_Signature, resultSignature),
+				Results,
+				XMLHelper.GetApplicationInfo(Cif_0_9)
+			};
+		}
+	}
+
+	public class Conventional_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "Conventional_CompletedBusOutputType";
+
+		public Conventional_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+        {
+        }
+
+        public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+        {
+			Vehicle = _cifFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
+		}
+    }
+
+	public class HEV_Px_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "HEV_CompletedBusOutputType";
+
+		public HEV_Px_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_Px_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+    public class HEV_IHPC_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+        public override string OutputDataType => "HEV_CompletedBusOutputType";
+
+        public HEV_IHPC_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+        {
+        }
+
+        public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+        {
+            Vehicle = _cifFactory.GetHEV_IHPC_CompletedBusVehicleType().GetElement(inputData);
+        }
+    }
+
+    public class HEV_S2_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "HEV_CompletedBusOutputType";
+
+		public HEV_S2_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_S2_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class HEV_S3_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "HEV_CompletedBusOutputType";
+
+		public HEV_S3_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_S3_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class HEV_S4_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "HEV_CompletedBusOutputType";
+
+		public HEV_S4_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_S4_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class HEV_IEPC_S_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "HEV_CompletedBusOutputType";
+
+		public HEV_IEPC_S_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetHEV_IEPC_S_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class PEV_E2_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "PEV_CompletedBusOutputType";
+
+		public PEV_E2_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_E2_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class PEV_E3_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "PEV_CompletedBusOutputType";
+
+		public PEV_E3_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_E3_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class PEV_E4_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "PEV_CompletedBusOutputType";
+
+		public PEV_E4_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_E4_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+	public class PEV_IEPC_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public override string OutputDataType => "PEV_CompletedBusOutputType";
+
+		public PEV_IEPC_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
+		{
+		}
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetPEV_IEPC_CompletedBusVehicleType().GetElement(inputData);
+		}
+	}
+
+
+	public class Exempted_CompletedBusCIF : CustomerInformationFileCompletedBus
+	{
+		public Exempted_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
+
+		#region Overrides of AbstractCustomerReport
+
+		public override string OutputDataType => XMLNames.CIF_OutputDataType_Exempted_CompletedBusOutputType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _cifFactory.GetExemptedCompletedBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	#endregion
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..58816ff398eac6a9a42c5dc5c9d0c94ed1f2d610
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9
+{
+    public interface ICustomerInformationFileFactory
+    {
+		IXMLCustomerReport GetCustomerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType,
+			ArchitectureID archId, bool exempted, bool iepc, bool ihpc);
+
+		IXmlTypeWriter GetConventionalLorryVehicleType();
+		IXmlTypeWriter GetHEV_PxLorryVehicleType();
+		IXmlTypeWriter GetHEV_S2_LorryVehicleType();
+		IXmlTypeWriter GetHEV_S3_LorryVehicleType();
+		IXmlTypeWriter GetHEV_S4_LorryVehicleType();
+		IXmlTypeWriter GetHEV_IEPC_LorryVehicleType();
+
+		IXmlTypeWriter GetPEV_E2_LorryVehicleType();
+		IXmlTypeWriter GetPEV_E3_LorryVehicleType();
+		IXmlTypeWriter GetPEV_E4_LorryVehicleType();
+		IXmlTypeWriter GetPEV_IEPC_LorryVehicleType();
+
+		IXmlTypeWriter GetExempted_LorryVehicleType();
+
+		IXmlTypeWriter GetConventional_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_Px_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_IHPC_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_S2_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_S3_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_S4_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_IEPC_S_CompletedBusVehicleType();
+
+		IXmlTypeWriter GetPEV_E2_CompletedBusVehicleType();
+		IXmlTypeWriter GetPEV_E3_CompletedBusVehicleType();
+		IXmlTypeWriter GetPEV_E4_CompletedBusVehicleType();
+		IXmlTypeWriter GetPEV_IEPC_CompletedBusVehicleType();
+
+
+		//IXmlTypeWriter GetPEV_CompletedBusVehicleType();
+
+		IXmlTypeWriter GetExemptedCompletedBusVehicleType();
+
+
+		IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter();
+		IReportOutputGroup GetLorryGeneralVehicleSequenceGroupWriter();
+		IReportOutputGroup GetConventionalLorryVehicleSequenceGroupWriter();
+		IReportOutputGroup GetConventionalCompletedBusVehicleSequenceGroupWriter();
+		IReportOutputGroup GetEngineGroup();
+		IReportOutputGroup GetTransmissionGroup();
+		IReportOutputGroup GetTransmissionGroupNoGearbox();
+		IReportOutputGroup GetAxleWheelsGroup();
+		IReportOutputGroup GetLorryAuxGroup();
+		IReportOutputGroup GetConventionalCompletedBusAuxGroup();
+		IReportOutputGroup GetHEV_Px_IHPC_CompletedBusAuxGroup();
+		IReportOutputGroup GetHEV_Sx_CompletedBusAuxGroup();
+		IReportOutputGroup GetPEV_CompletedBusAuxGroup();
+
+		IReportOutputGroup GetHEV_LorryVehicleSequenceGroupWriter();
+		IReportOutputGroup GetHEV_CompletedBusVehicleSequenceGroupWriter();
+		IReportOutputGroup GetHEV_LorryVehicleTypeGroup();
+		IReportOutputGroup GetElectricMachineGroup();
+		IReportOutputGroup GetREESSGroup();
+		IReportOutputGroup GetPEV_LorryVehicleTypeGroup();
+
+		IReportOutputGroup GetPEV_LorryVehicleSequenceGroupWriter();
+		IReportOutputGroup GetPEV_CompletedBusVehicleSequenceGroupWriter();
+		IReportOutputGroup GetCompletedBusVehicleTypeGroup();
+		IReportOutputGroup GetExemptedCompletedBusVehicleTypeGroup();
+		IReportCompletedBusOutputGroup GetGeneralVehicleSequenceGroupWriterCompletedBus();
+
+
+		ICIFAdasType GetConventionalADASType();
+		ICIFAdasType GetHEVADASType();
+		ICIFAdasType GetPEVADASType();
+		//IReportOutputGroup GetHEV_VehicleSequenceGroup();
+		IReportOutputGroup GetPEVCompletedBusVehicleTypeGroup();
+		IReportOutputGroup GetIEPCTransmissionGroup();
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs
index 9d5c5a935cab08a8b8162f4d37539cc080a9da7e..38ff22b18cceb85d1502bdb45d7eb451edd20545 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReport.cs
@@ -49,6 +49,7 @@ using TUGraz.VectoHashing;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile
 {
+    
 	public class XMLCustomerReport : IXMLCustomerReport
 	{
 		public const string CURRENT_SCHEMA_VERSION = "0.8";
@@ -99,12 +100,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			);
 
 			if (exempted) {
-				VehiclePart.Add(new XAttribute(xsi + "type", "ExemptedVehicleType"), 
+				VehiclePart.Add(new XAttribute(xsi + XMLNames.XSIType, "ExemptedVehicleType"), 
 					ExemptedData(modelData));
 				Results.Add(new XElement(tns + XMLNames.Report_ExemptedVehicle));
 			} else {
 				VehiclePart.Add(
-					new XAttribute(xsi + "type", "VehicleType"),
+					new XAttribute(xsi + XMLNames.XSIType, "VehicleType"),
 					new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
 					new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()),
 					new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle),
@@ -204,7 +205,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 
 			return new XElement(tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "error"),
-				new XAttribute(xsi + "type", "ResultErrorType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()),
 				content);
 		}
@@ -214,7 +215,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			return new XElement(
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "success"),
-				new XAttribute(xsi + "type", "ResultSuccessType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultSuccessType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, result.Mission.ToXMLFormat()),
 				new XElement(tns + XMLNames.Report_ResultEntry_TotalVehicleMass,
 					XMLHelper.ValueAsUnit(result.TotalVehicleMass, XMLNames.Unit_kg)),
@@ -275,7 +276,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 				new XAttribute(xsi + "schemaLocation",
 					$"{rootNS} {AbstractXMLWriter.SchemaLocationBaseUrl}DEV/VectoOutputCustomer.xsd"),
 				new XElement(rootNS + XMLNames.Report_DataWrap,
-					new XAttribute(xsi + "type", "VectoOutputDataType"),
+					new XAttribute(xsi + XMLNames.XSIType, "VectoOutputDataType"),
 					vehicle,
 					new XElement(tns + XMLNames.Report_ResultData_Signature, resultSignature),
 					results,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs
index 4c65a69830f2860cc6c764b01ceeb38f1c2277b7..c604214d7c580f3e8e3ba213a9e1443b9748fe88 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportCompletedBus.cs
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		{
 			_tankSystem = modelData.VehicleData.InputData.TankSystem;
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleCompletedBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleCompletedBusType"),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(
 					tns + "PrimaryVehicle",
@@ -118,7 +118,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			return new XElement(
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "error"),
-				new XAttribute(xsi + "type", "ResultErrorType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()),
 				GetSimulationParameters(specificResult, primaryResult),
 				content);
@@ -129,7 +129,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 			return new XElement(
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "success"),
-				new XAttribute(xsi + "type", "ResultSuccessType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultSuccessType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()),
 				//new XElement(tns + XMLNames.Report_ResultEntry_Distance, XMLHelper.ValueAsUnit(specificResult.Distance, XMLNames.Unit_km, 3)),
 				GetSimulationParameters(specificResult, primaryResult),
@@ -149,7 +149,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 					XMLHelper.ValueAsUnit(result.TotalVehicleMass, XMLNames.Unit_kg)),
                 new XElement(tns + XMLNames.Report_Result_MassPassengers, XMLHelper.ValueAsUnit(result.Payload, XMLNames.Unit_kg)),
                 result.PassengerCount.HasValue && result.PassengerCount.Value > 0 ? new XElement(tns + XMLNames.Report_Result_PassengerCount, result.PassengerCount.Value.ToMinSignificantDigits(3, 1)) : null,
-				new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode)
+				//new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode)
 			};
 		}
 
@@ -288,7 +288,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
                 new XAttribute(xsi + "schemaLocation",
 					$"{rootNS} {AbstractXMLWriter.SchemaLocationBaseUrl}DEV/VectoOutputCustomer.xsd"),
                 new XElement(rootNS + XMLNames.Report_DataWrap,
-                    new XAttribute(xsi + "type", "VectoOutputDataType"),
+                    new XAttribute(xsi + XMLNames.XSIType, "VectoOutputDataType"),
                     vehicle,
                     new XElement(tns + XMLNames.Report_ResultData_Signature, resultSignature),
                     results,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs
index 0fdb84069614a29c9a09359acde0ea9d379381b4..89ed7fe8871935c4a4ee0b0d6fbc1a16846f07d3 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/XMLCustomerReportExemptedCompletedBus.cs
@@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
 		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleCompletedExemptedBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleCompletedExemptedBusType"),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(
 					tns + "PrimaryVehicle",
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs
index a2882b7a4367511435d51782312effc9de893846..9ad7ca0bf5f4f104cd915e24927c68fa07ca8da3 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/AbstractXMLManufacturerReport.cs
@@ -42,6 +42,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 
 		public virtual XDocument Report { get; protected set; }
 
+
+		public void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
 		public abstract void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
 
 		public virtual void GenerateReport()
@@ -71,7 +77,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 						$"{mrf} {AbstractXMLWriter.SchemaLocationBaseUrl}/DEV/VectoOutputManufacturer.xsd"),
 					new XElement(
 						mrf + XMLNames.Report_DataWrap,
-						new XAttribute(xsi + "type", "tns:VectoOutputDataType"),
+						new XAttribute(xsi + XMLNames.XSIType, "tns:VectoOutputDataType"),
 						vehicle,
 						results,
 						GetApplicationInfo())
@@ -138,7 +144,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(
 					XMLNames.Report_Result_Status_Attr, "error"),
-				new XAttribute(xsi + "type", "ResultErrorType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()),
 				content);
 		}
@@ -149,7 +155,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(
 					XMLNames.Report_Result_Status_Attr, "success"),
-				new XAttribute(xsi + "type", "ResultSuccessType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultSuccessType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, result.Mission.ToXMLFormat()), 
 				new XElement(
 					tns + XMLNames.Report_ResultEntry_Distance, new XAttribute(XMLNames.Report_Results_Unit_Attr, XMLNames.Unit_km),
@@ -252,7 +258,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			return new XElement(
 				tns + XMLNames.Vehicle_ADAS,
 				new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName),
-				new XAttribute(xsi + "type", $"{adasPrefix}:{type}"),
+				new XAttribute(xsi + XMLNames.XSIType, $"{adasPrefix}:{type}"),
 				XElement.Parse(adasData.InputData.XMLSource.OuterXml).Elements()
 			);
 		}
@@ -266,7 +272,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			return new XElement(
 				tns + XMLNames.Vehicle_ADAS,
 				new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName),
-				new XAttribute(xsi + "type", $"{adasPrefix}:{type}"),
+				new XAttribute(xsi + XMLNames.XSIType, $"{adasPrefix}:{type}"),
 					new XElement(ns + XMLNames.Vehicle_ADAS_EngineStopStart, adasData.EngineStopStart),
 					new XElement(ns + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adasData.EcoRoll.WithoutEngineStop()),
 					new XElement(ns + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adasData.EcoRoll.WithEngineStop()),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs
index 7bc13048203c9b0ff9e7fdfcb92f36b5b4a96ef3..9a62c0353a6873e8ea48ba0b9072aeffbbb46de9 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/IXMLManufacturerReport.cs
@@ -1,5 +1,6 @@
 using System.Collections.Generic;
 using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 
@@ -7,6 +8,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 {
 	public interface IXMLManufacturerReport
 	{
+		void InitializeVehicleData(IDeclarationInputDataProvider inputData);
 		void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
 		XDocument Report { get; }
 		void WriteResult(XMLDeclarationReport.ResultEntry resultValue);
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d23eac2738f725808b09f54d7b3d2222ed2964db
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoHashing;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9
+{
+	public abstract class AbstractManufacturerReport : IXMLManufacturerReport
+    {
+        protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput");
+
+		public static XNamespace Mrf_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
+		public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#");
+
+
+		protected readonly IManufacturerReportFactory _mRFReportFactory;
+
+		protected bool _ovc = false;
+
+		protected XElement Results { get; set; }
+		protected XElement Vehicle { get; set; }
+
+		protected XElement InputDataIntegrity { get; set; }
+
+		protected XElement Signature { get; set; }
+
+		public abstract string OutputDataType { get; } //also used as name for the mockup result element
+
+		protected AbstractManufacturerReport(IManufacturerReportFactory MRFReportFactory)
+		{
+			_mRFReportFactory = MRFReportFactory;
+
+			// MQ: write dummy result element for testcases (2022-07-13)
+			Results = new XElement(Mrf_0_9 + "Results",
+				new XElement(Mrf_0_9 + "Status", "success"),
+				new XElement(Mrf_0_9 + "ExemptedVehicle"));
+		}
+
+		#region Implementation of IXMLManufacturerReport
+
+		public abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData);
+
+		public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			InitializeVehicleData(modelData.InputData);
+			_ovc = modelData.VehicleData.Ocv;
+			
+			Results = new XElement(Mrf_0_9 + XMLNames.Report_Results);
+			InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature,
+				modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash));
+		}
+
+		public XDocument Report { get; protected set; }
+
+		private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
+
+		public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			
+
+		}
+
+
+		public void GenerateReport()
+		{
+			var retVal = new XDocument(new XElement(Mrf + "VectoOutput",
+					new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+					new XAttribute(XNamespace.Xmlns + "mrf", Mrf),
+					new XAttribute(XNamespace.Xmlns + "mrf0.9", Mrf_0_9),
+					new XAttribute("xmlns", Mrf_0_9),
+					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "schemaLocation",
+						$"{Mrf.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputManufacturer.xsd"),
+
+					new XElement(Mrf + XMLNames.Report_DataWrap,
+						new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
+						GetContents()
+					)
+				)
+			);
+
+			var stream = new MemoryStream();
+			var writer = new StreamWriter(stream);
+			writer.Write(retVal);
+			writer.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
+			var h = VectoHash.Load(stream);
+			Report = h.AddHash();
+		}
+
+		protected virtual IList<XElement> GetContents()
+		{
+			return new[] {
+				Vehicle,
+				InputDataIntegrity,
+				Results,
+				XMLHelper.GetApplicationInfo(Mrf_0_9)
+			};
+		}
+
+		#endregion
+
+	}
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b6169310666f5de9aa58145d2aba265c0563ec64
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/IManufacturerReportFactory.cs
@@ -0,0 +1,156 @@
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+    public interface IManufacturerReportFactory
+	{
+		IXMLManufacturerReport GetConventionalLorryManufacturerReport();
+
+		IXMLManufacturerReport GetManufacturerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType,
+			ArchitectureID archId, bool exempted, bool iepc, bool ihpc);
+
+		IXmlTypeWriter GetConventionalLorryVehicleType();
+		IXmlTypeWriter GetHEV_Px_IHCP_LorryVehicleType();
+		IXmlTypeWriter GetHEV_S2_LorryVehicleType();
+		IXmlTypeWriter GetHEV_S3_LorryVehicleType();
+		IXmlTypeWriter GetHEV_S4_LorryVehicleType();
+		IXmlTypeWriter GetHEV_IEPC_S_LorryVehicleType();
+		IXmlTypeWriter GetPEV_E2_LorryVehicleType();
+		IXmlTypeWriter GetPEV_E3_LorryVehicleType();
+		IXmlTypeWriter GetPEV_E4_LorryVehicleType();
+		IXmlTypeWriter GetPEV_IEPC_LorryVehicleType();
+
+		IXmlTypeWriter GetExempted_LorryVehicleType();
+
+
+
+
+
+		IXmlTypeWriter GetConventional_PrimaryBusVehicleType();
+		IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusVehicleType();
+		IXmlTypeWriter GetHEV_S2_PrimaryBusVehicleType();
+		IXmlTypeWriter GetHEV_S3_PrimaryBusVehicleType();
+		IXmlTypeWriter GetHEV_S4_PrimaryBusVehicleType();
+		IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusVehicleType();
+		IXmlTypeWriter GetPEV_E2_PrimaryBusVehicleType();
+		IXmlTypeWriter GetPEV_E3_PrimaryBusVehicleType();
+		IXmlTypeWriter GetPEV_E4_PrimaryBusVehicleType();
+		IXmlTypeWriter GetPEV_IEPC_PrimaryBusVehicleType();
+
+		IXmlTypeWriter GetExempted_PrimaryBusVehicleType();
+
+		IXmlTypeWriter GetConventional_CompletedBusVehicleType();
+		IXmlTypeWriter GetHEV_CompletedBusVehicleType();
+		IXmlTypeWriter GetPEV_CompletedBusVehicleType();
+
+		IXmlTypeWriter GetExempted_CompletedBusVehicleType();
+
+
+		IXmlTypeWriter GetConventionalLorryComponentsType();
+		IXmlTypeWriter GetHEV_Px_IHCP_LorryComponentsType();
+		IXmlTypeWriter GetHEV_S2_LorryComponentsType();
+		IXmlTypeWriter GetHEV_S3_LorryComponentsType();
+		IXmlTypeWriter GetHEV_S4_LorryComponentsType();
+		IXmlTypeWriter GetHEV_IEPC_S_LorryComponentsType();
+		IXmlTypeWriter GetPEV_E2_LorryComponentsType();
+		IXmlTypeWriter GetPEV_E3_LorryComponentsType();
+		IXmlTypeWriter GetPEV_E4_LorryComponentsType();
+		IXmlTypeWriter GetPEV_IEPC_S_LorryComponentsType();
+		IXmlTypeWriter GetConventional_PrimaryBusComponentsType();
+		IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusComponentsType();
+		IXmlTypeWriter GetHEV_S2_PrimaryBusComponentsType();
+		IXmlTypeWriter GetHEV_S3_PrimaryBusComponentsType();
+		IXmlTypeWriter GetHEV_S4_PrimaryBusComponentsType();
+		IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusComponentsType();
+		IXmlTypeWriter GetPEV_E2_PrimaryBusComponentsType();
+		IXmlTypeWriter GetPEV_E3_PrimaryBusComponentsType();
+		IXmlTypeWriter GetPEV_E4_PrimaryBusComponentsType();
+		IXmlTypeWriter GetPEV_IEPC_PrimaryBusComponentsType();
+		IXmlTypeWriter GetConventional_CompletedBusComponentsType();
+		IXmlTypeWriter GetHEV_CompletedBusComponentsType();
+		IXmlTypeWriter GetPEV_CompletedBusComponentsType();
+
+
+		IReportVehicleOutputGroup GetGeneralVehicleOutputGroup();
+
+
+		IReportOutputGroup GetGeneralLorryVehicleOutputGroup();
+		IReportOutputGroup GetHEV_VehicleSequenceGroup();
+		IReportOutputGroup GetPEV_VehicleSequenceGroup();
+		IReportOutputGroup GetConventionalLorryVehicleOutputGroup();
+		IReportOutputGroup GetHEV_lorryVehicleOutputGroup();
+		IReportOutputGroup GetPEV_lorryVehicleOutputGroup();
+		IReportOutputGroup GetHEV_lorryVehicleOutputSequenceGroup();
+		IReportOutputGroup GetPrimaryBusGeneralVehicleOutputGroup();
+		IReportOutputGroup GetExemptedPrimaryBusGeneralVehicleOutputGroup();
+		IReportOutputGroup GetHEV_PrimaryBusVehicleOutputGroup();
+
+
+		IXmlTypeWriter GetEngineTorqueLimitationsType();
+		IXmlTypeWriter GetEngineType();
+		IXmlTypeWriter GetRetarderType();
+		IXmlTypeWriter GetTorqueConverterType();
+		IXmlTypeWriter GetAngleDriveType();
+		IXmlTypeWriter GetTransmissionType();
+		IXmlTypeWriter GetElectricMachinesType();
+		IXmlTypeWriter GetAxleGearType();
+		IXmlTypeWriter GetAxleWheelsType();
+		IMRFAdasType GetConventionalADASType();
+		IMRFAdasType GetHEVADASType();
+		IMRFAdasType GetPEVADASType();
+		IXmlTypeWriter GetIEPCSpecifications();
+		IXmlTypeWriter GetREESSSpecificationsType();
+		IMrfAirdragType GetAirdragType();
+
+
+		IMRFLorryAuxiliariesType GetConventionalLorryAuxType();
+		IMRFLorryAuxiliariesType GetHEV_LorryAuxiliariesType();
+
+		IMRFLorryAuxiliariesType GetPEV_LorryAuxiliariesType();
+
+
+		IMRFBusAuxiliariesType GetPrimaryBusAuxType_Conventional();
+		IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_P();
+		IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_S();
+		IMRFBusAuxiliariesType GetPrimaryBusAuxType_PEV();
+		IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px();
+		IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_HEV_S();
+		IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_PEV_IEPC();
+
+		IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_Conventional_HEV();
+
+		IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_PEV();
+		IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_Conventional_HEV();
+		IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_PEV();
+
+		IMRFBusAuxiliariesType GetConventionalCompletedBusAuxType();
+		IMRFBusAuxiliariesType GetConventionalCompletedBus_HVACSystemType();
+		IMRFBusAuxiliariesType GetConventionalCompletedBusElectricSystemType();
+
+		IMRFBusAuxiliariesType GetHEVCompletedBusAuxType();
+		IMRFBusAuxiliariesType GetHEVCompletedBus_HVACSystemType();
+		IMRFBusAuxiliariesType GetHEVCompletedBusElectricSystemType();
+
+		IMRFBusAuxiliariesType GetPEVCompletedBusAuxType();
+		IMRFBusAuxiliariesType GetPEVCompletedBus_HVACSystemType();
+		IMRFBusAuxiliariesType GetPEVCompletedBusElectricSystemType();
+
+
+		IReportOutputGroup GetPEV_PrimaryBusVehicleOutputGroup();
+		IReportOutputGroup GetConventionalCompletedBusGeneralVehicleOutputGroup();
+		IReportOutputGroup GetHEVCompletedBusGeneralVehicleOutputGroup();
+		IReportOutputGroup GetPEVCompletedBusGeneralVehicleOutputGroup();
+		IReportVehicleOutputGroup GetCompletedBusSequenceGroup();
+		IReportVehicleOutputGroup GetCompletedBusDimensionSequenceGroup();
+		IMrfBusAuxGroup GetCompletedBus_HVACSystemGroup();
+		IMrfBusAuxGroup GetCompletedBus_xEVHVACSystemGroup();
+		IMrfVehicleType GetBoostingLimitationsType();
+
+	}
+
+
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..7e04844b72b551ce8e811bc28e1460573ebbc1dc
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/MRFNinjectModule.cs
@@ -0,0 +1,778 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Ninject.Activation;
+using Ninject.Extensions.ContextPreservation;
+using Ninject.Extensions.Factory;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Common;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Lorry;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.CompletedBus;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components;
+using TUGraz.VectoCore.Utils.Ninject;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9
+{
+    internal class MRFNinjectModule : AbstractNinjectModule
+    {
+
+		//IXMLManufacturerReport GetManufacturerReport(string vehicleType, VectoSimulationJobType jobType,
+		//	ArchitectureID archId, bool exempted, bool iepc, bool ihpc);
+		protected static object[] ToParams(string vehicleType, VectoSimulationJobType jobType, ArchitectureID archId,
+			bool exempted, bool iepc, bool ihpc)
+		{
+			return new[] { (object)vehicleType, jobType, archId, exempted, iepc, ihpc};
+		}
+		protected static CombineArgumentsToNameInstanceProvider.CombineToName nameCombinationMethod = arguments => {
+
+			//may be called with first argument of type string (when defining the bindings) or VehicleCategory when using the factory
+			string vehicleType = arguments[0] as string;
+			if (arguments[0] is VehicleCategory vehicleCategory) {
+				vehicleType = vehicleCategory.GetVehicleType();
+			}
+			
+			
+			
+			VectoSimulationJobType jobType = (VectoSimulationJobType)arguments[1];
+			ArchitectureID archId = (ArchitectureID)arguments[2];
+			bool exempted = (bool)arguments[3];
+			bool iepc = (bool)arguments[4];
+			bool ihpc = (bool)arguments[5];
+
+
+
+			string result = "";
+			if (exempted) {
+				result += exempted + vehicleType;
+			} else {
+				if (vehicleType == VehicleCategoryHelper.Lorry || vehicleType == VehicleCategoryHelper.PrimaryBus || vehicleType == VehicleCategoryHelper.CompletedBus || vehicleType == VehicleCategoryHelper.Van) {
+					if (jobType == VectoSimulationJobType.ParallelHybridVehicle || ihpc) {
+						result += "HEV-Px/IHPC";
+					}else if (jobType == VectoSimulationJobType.SerialHybridVehicle) {
+						result += "HEV-" + archId;
+					}else if (jobType == VectoSimulationJobType.BatteryElectricVehicle) {
+						if (iepc) {
+							result += "PEV-IEPC";
+						} else {
+							result += "PEV" + archId;
+						}
+					}else if (jobType == VectoSimulationJobType.ConventionalVehicle) {
+						result += "Conventional";
+					}
+				}else if (vehicleType == VehicleCategoryHelper.CompletedBus) {
+					result += jobType;
+				}
+
+				result += vehicleType;
+			}
+
+
+			return result;
+		};
+
+		public override void Load()
+		{
+			LoadModule<ContextPreservationModule>();
+			Bind<IManufacturerReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod, 
+				6, 6, typeof(IManufacturerReportFactory).GetMethod(nameof(IManufacturerReportFactory.GetManufacturerReport)))).InSingletonScope();
+			Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryManufacturerReport());
+
+			#region LorryMRF
+			Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named(
+				nameCombinationMethod.Invoke(ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.ConventionalVehicle, 
+					ArchitectureID.UNKNOWN, 
+					false, 
+					false, 
+					false)));
+			Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_LorryManufacturerReport>()
+				.Named(nameCombinationMethod.Invoke(ToParams(
+					VehicleCategoryHelper.Lorry, 
+					VectoSimulationJobType.ParallelHybridVehicle, 
+					ArchitectureID.UNKNOWN, 
+					false, 
+					false, 
+					true)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2,
+					false,
+					false,
+					false)));
+
+
+			Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.Lorry,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<ConventionalLorryManufacturerReport>().Named(
+				nameCombinationMethod.Invoke(ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+			Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_LorryManufacturerReport>()
+				.Named(nameCombinationMethod.Invoke(ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					true)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2,
+					false,
+					false,
+					false)));
+
+
+			Bind<IXMLManufacturerReport>().To<HEV_S3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E2_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E3_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E4_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<Exempted_LorryManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(
+					VehicleCategoryHelper.Van,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+			#endregion
+			#region PrimaryBUSMRF
+			Bind<IXMLManufacturerReport>().To<Conventional_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_Px_IHPC_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					true)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S2_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S3_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_S4_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_PrimaryBus_ManufacturerReport>().Named(
+				nameCombinationMethod.Invoke(
+					ToParams(VehicleCategoryHelper.PrimaryBus,
+						VectoSimulationJobType.SerialHybridVehicle,
+						ArchitectureID.S_IEPC, false, false, false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E2_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E3_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_E4_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_IEPC_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+			Bind<IXMLManufacturerReport>().To<Exempted_PrimaryBus_ManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+
+			#endregion
+			#region CompletedBus MRF
+
+			Bind<IXMLManufacturerReport>().To<Conventional_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					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.S2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<HEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<PEV_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLManufacturerReport>().To<Exempted_CompletedBusManufacturerReport>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.CompletedBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+
+
+			#endregion
+
+			#region Vehicle
+
+			Bind<IXmlTypeWriter>().To<ConventionalLorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryVehicleType());
+			Bind<IXmlTypeWriter>().To<HevPxIhpcLorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHCP_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<HevS2LorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<HevS3LorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<HevS4LorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<HevIepcSLorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<PevE2LorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<PevE3LorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<PevE4LorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<PevIEPCLorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_LorryVehicleType());
+			Bind<IXmlTypeWriter>().To<ExemptedLorryVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_LorryVehicleType());
+
+			Bind<IXmlTypeWriter>().To<ConventionalPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<HevPxIhpcPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHPC_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<HevS2PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<HevS3PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<HevS4PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<HevIepcSPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<PevE2PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<PevE3PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<PevE4PrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<PevIepcPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_PrimaryBusVehicleType());
+			Bind<IXmlTypeWriter>().To<ExemptedPrimaryBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_PrimaryBusVehicleType());
+
+			Bind<IXmlTypeWriter>().To<ConventionalCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_CompletedBusVehicleType());
+			Bind<IXmlTypeWriter>().To<HevCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_CompletedBusVehicleType());
+			Bind<IXmlTypeWriter>().To<PevCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_CompletedBusVehicleType());
+			Bind<IXmlTypeWriter>().To<ExemptedCompletedBusVehicleTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExempted_CompletedBusVehicleType());
+			#endregion
+			#region Components
+			Bind<IXmlTypeWriter>().To<ConventionalLorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevPxIhpcLorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHCP_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevS2LorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevS3LorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevS4LorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevIepcSLorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevE2LorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_LorryComponentsType());
+
+			Bind<IXmlTypeWriter>().To<MrfpevE3LorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevE4LorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_LorryComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfPevIEPCLorryComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_S_LorryComponentsType());
+
+			Bind<IXmlTypeWriter>().To<ConventionalPrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventional_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevPxIhpcPrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_Px_IHPC_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevS2PrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S2_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevS3PrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S3_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevS4PrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_S4_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevIepcSPrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_IEPC_S_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevE2PrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E2_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevE3PrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E3_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevE4PrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_E4_PrimaryBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevIepcPrimaryBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_IEPC_PrimaryBusComponentsType());
+
+
+			Bind<IXmlTypeWriter>().To<ConventionalCompletedBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod(
+					(IManufacturerReportFactory f) => f.GetConventional_CompletedBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfhevCompletedBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod(
+					(IManufacturerReportFactory f) => f.GetHEV_CompletedBusComponentsType());
+			Bind<IXmlTypeWriter>().To<MrfpevCompletedBusComponentsTypeWriter>()
+				.NamedLikeFactoryMethod(
+					(IManufacturerReportFactory f) => f.GetPEV_CompletedBusComponentsType());
+
+
+			#endregion
+
+
+			Bind<IReportOutputGroup>().To<HEV_VehicleSequenceGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_VehicleSequenceGroup());
+
+			Bind<IReportOutputGroup>().To<PEV_VehicleSequenceGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_VehicleSequenceGroup());
+			#region ADAS
+			Bind<IMRFAdasType>().To<MRFConventionalAdasType>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalADASType());
+			Bind<IMRFAdasType>().To<MRFHevAdasType>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVADASType());
+			Bind<IMRFAdasType>().To<MRFPevAdasType>()
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVADASType());
+
+			#endregion ADAS
+			Bind<IXmlTypeWriter>().To<TorqueLimitationsTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetEngineTorqueLimitationsType());
+
+			Bind<IXmlTypeWriter>().To<EngineTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetEngineType());
+
+
+
+			Bind<IXmlTypeWriter>().To<TransmissionTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetTransmissionType());
+
+			Bind<IXmlTypeWriter>().To<RetarderTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetRetarderType());
+
+			Bind<IXmlTypeWriter>().To<TorqueConverterTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetTorqueConverterType());
+
+			Bind<IXmlTypeWriter>().To<AngleDriveTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAngleDriveType());
+
+			Bind<IMrfAirdragType>().To<MRFAirdragType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAirdragType());
+
+			Bind<IXmlTypeWriter>().To<AxleWheelsTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAxleWheelsType());
+
+			Bind<IXmlTypeWriter>().To<AxleGearTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetAxleGearType());
+
+			Bind<IXmlTypeWriter>().To<ElectricMachinesTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetElectricMachinesType());
+
+			Bind<IXmlTypeWriter>().To<MrfiepcSpecificationsTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetIEPCSpecifications());
+
+			Bind<IXmlTypeWriter>().To<MrfreessSpecificationsTypeWriter>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetREESSSpecificationsType());
+
+			Bind<IMrfVehicleType>().To<MRFBoostingLimitationsType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetBoostingLimitationsType());
+
+			#region Auxiliaries
+			Bind<IMRFLorryAuxiliariesType>().To<MRFConventionalLorryAuxiliariesType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryAuxType());
+			Bind<IMRFLorryAuxiliariesType>().To<MRFHEV_LorryAuxiliariesType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_LorryAuxiliariesType());
+			Bind<IMRFLorryAuxiliariesType>().To<MRFPEV_LorryAuxiliariesType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_LorryAuxiliariesType());
+			
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_Conventional>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_Conventional());
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_HEV_P>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_HEV_P());
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_HEV_S>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_HEV_S());
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusAuxType_PEV>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusAuxType_PEV());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px());
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusPneumaticSystemType_HEV_S>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusPneumaticSystemType_HEV_S());
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusPneumaticSystemType_PEV_IEPC>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusPneumaticSystemType_PEV_IEPC());
+
+
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusElectricSystemType_Conventional_HEV>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusElectricSystemType_Conventional_HEV());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusElectricSystemType_PEV>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusElectricSystemType_PEV());
+			
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusHVACSystemType_Conventional_HEV>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusHVACSystemType_Conventional_HEV());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPrimaryBusHVACSystemType_PEV>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusHVACSystemType_PEV());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFConventionalCompletedBusAuxType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBusAuxType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFConventionalCompletedBus_HVACSystemType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBus_HVACSystemType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFConventionalCompletedBusElectricSystemType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBusElectricSystemType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFHEVCompletedBusAuxType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBusAuxType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFHEVCompletedBus_HVACSystemType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBus_HVACSystemType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFHEVCompletedBusElectricSystemType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBusElectricSystemType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPEVCompletedBusAuxType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBusAuxType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPEVCompletedBus_HVACSystemType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBus_HVACSystemType());
+
+			Bind<IMRFBusAuxiliariesType>().To<MRFPEVCompletedBusElectricSystemType>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBusElectricSystemType());
+
+			#region Groups
+
+			Bind<IReportVehicleOutputGroup>().To<GeneralVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetGeneralVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<LorryGeneralVehicleOutputXmlGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetGeneralLorryVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<ConventionalLorryVehicleXmlGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalLorryVehicleOutputGroup());
+			
+			Bind<IReportOutputGroup>().To<PrimaryBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPrimaryBusGeneralVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<ExemptedPrimaryBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetExemptedPrimaryBusGeneralVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<HEVPrimaryBusVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_PrimaryBusVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<PEVPrimaryBusVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_PrimaryBusVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<HEV_LorryVehicleOutputTypeGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_lorryVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<PEV_LorryVehicleOutputTypeGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEV_lorryVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<HEV_LorryVehicleOutputTypeSequenceGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEV_lorryVehicleOutputSequenceGroup());
+
+			Bind<IReportVehicleOutputGroup>().To<CompletedBusSequenceOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBusSequenceGroup());
+
+			Bind<IReportVehicleOutputGroup>().To<CompletedBusDimensionsSequenceOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBusDimensionSequenceGroup());
+
+			Bind<IReportOutputGroup>().To<ConventionalCompletedBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetConventionalCompletedBusGeneralVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<HEVCompletedBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetHEVCompletedBusGeneralVehicleOutputGroup());
+
+			Bind<IReportOutputGroup>().To<PEVCompletedBusGeneralVehicleOutputGroup>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetPEVCompletedBusGeneralVehicleOutputGroup());
+
+
+			Bind<IMrfBusAuxGroup>().To<CompletedBus_HVACSystem_Group>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBus_HVACSystemGroup());
+
+			Bind<IMrfBusAuxGroup>().To<CompletedBus_xEVHVACSystem_Group>().When(AccessedViaMRFFactory)
+				.NamedLikeFactoryMethod((IManufacturerReportFactory f) => f.GetCompletedBus_xEVHVACSystemGroup());
+
+			#endregion
+
+
+
+		}
+
+		private bool AccessedViaMRFFactory(IRequest request)
+		{
+			if (request.ParentRequest == null)
+			{
+				return false;
+			}
+			return typeof(IManufacturerReportFactory).IsAssignableFrom(request.ParentRequest.Service);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c447e1d1f899576d9f9114edbd753af2c4119df8
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/CompletedBusManufacturerReport.cs
@@ -0,0 +1,109 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
+{
+	internal abstract class CompletedBusManufacturerReportBase : AbstractManufacturerReport
+	{
+		protected XNamespace _mrf = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
+		public CompletedBusManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			InitializeVehicleData(modelData.InputData);
+			_ovc = modelData.VehicleData.Ocv;
+			var inputData = modelData.InputData as IMultistepBusInputDataProvider;
+			if (inputData == null) {
+				throw new VectoException("CompletedBus ManrufacturersRecordFile requires MultistepBusInputData");
+			}
+			Results = new XElement(Mrf_0_9 + XMLNames.Report_Results);
+			InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature,
+				inputData.JobInputData.ConsolidateManufacturingStage.Signature == null
+					? XMLHelper.CreateDummySig(_di)
+					: inputData.JobInputData.ConsolidateManufacturingStage.Signature.ToXML(_di));
+		}
+
+	}
+
+	internal class Conventional_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase
+    {
+		public Conventional_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "ConventionalCompletedBusManufacturerOutputDataType";
+
+		
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
+			//GenerateReport(OutputDataType);
+
+		}
+
+		#endregion
+	}
+
+	internal class HEV_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase
+	{
+		public HEV_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "HEVCompletedBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_CompletedBusVehicleType().GetElement(inputData);
+			//GenerateReport("HEVCompletedBusManufacturerOutputDataType");
+		}
+
+		#endregion
+	}
+
+	internal class PEV_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase
+	{
+		public PEV_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "PEVCompletedBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_CompletedBusVehicleType().GetElement(inputData);
+			//GenerateReport(OutputDataType);
+		}
+
+		#endregion
+	}
+
+	internal class Exempted_CompletedBusManufacturerReport : CompletedBusManufacturerReportBase
+	{
+		public Exempted_CompletedBusManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "ExemptedCompletedBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetExempted_CompletedBusVehicleType().GetElement(inputData);
+			//GenerateReport(OutputDataType);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9baebdb892613c0d3bfd406347cecb588ef4bb9b
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/LorryManufacturerReports.cs
@@ -0,0 +1,210 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
+{
+	internal abstract class LorryManufacturerReportBase : AbstractManufacturerReport
+	{
+		public LorryManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
+		{
+
+		}
+
+		
+	}
+
+	internal class ConventionalLorryManufacturerReport : LorryManufacturerReportBase
+	{
+		
+
+		public ConventionalLorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
+		{
+			
+		}
+
+		#region Overrides of AbstractManufacturerReport
+
+
+		public override string OutputDataType =>
+			XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetConventionalLorryVehicleType().GetElement(inputData);
+			
+		}
+
+		
+		#endregion
+
+	}
+
+	internal class HEV_Px_IHPC_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		
+		public HEV_Px_IHPC_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_Px_IHCP_LorryVehicleType().GetElement(inputData);
+		}
+
+
+
+		#endregion
+	}
+
+	internal class HEV_S2_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public HEV_S2_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class HEV_S3_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType;
+
+		public HEV_S3_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
+		{
+
+		}
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class HEV_S4_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public HEV_S4_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class HEV_IEPC_S_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public HEV_IEPC_S_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_IEPC_S_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class PEV_E2_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public PEV_E2_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData);
+			
+		}
+
+		#endregion
+	}
+
+	internal class PEV_E3_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public PEV_E3_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class PEV_E4_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public PEV_E4_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class PEV_IEPC_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public PEV_IEPC_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class Exempted_LorryManufacturerReport : LorryManufacturerReportBase
+	{
+		public Exempted_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "ExemptedLorryManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetExempted_LorryVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a15ca5d30d179a7872aed6953e030afad0f00915
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReport/PrimaryBusManufacturerReports.cs
@@ -0,0 +1,211 @@
+using System;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
+{
+	internal abstract class PrimaryBus_ManufacturerReportBase : AbstractManufacturerReport
+	{
+		protected XNamespace _mrf = XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
+		protected PrimaryBus_ManufacturerReportBase(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		protected void GenerateReport(string outputDataType)
+		{
+			Report = new XDocument(new XElement(_mrf + "VectoOutput",
+				new XAttribute("xmlns", _mrf),
+				new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+				new XAttribute(xsi + XMLNames.XSIType, $"{outputDataType}"),
+				Vehicle,
+				new XElement(_mrf + "Results")));
+		}
+	}
+
+	internal class Conventional_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+    {
+		public Conventional_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType;
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetConventional_PrimaryBusVehicleType().GetElement(inputData);
+			
+		}
+
+		#endregion
+	}
+
+	internal class HEV_Px_IHPC_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public HEV_Px_IHPC_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "HEV-Px_IHPCPrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_Px_IHPC_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+
+	internal class HEV_S2_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public HEV_S2_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "HEV-S2_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_S2_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class HEV_S3_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public HEV_S3_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "HEV-S3_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_S3_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class HEV_S4_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public HEV_S4_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "HEV-S4_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_S4_PrimaryBusVehicleType().GetElement(inputData);
+
+		}
+
+		#endregion
+	}
+
+
+	internal class HEV_IEPC_S_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public HEV_IEPC_S_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "HEV-IEPC-S_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetHEV_IEPC_S_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class PEV_E2_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public PEV_E2_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "PEV-E2_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_E2_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+
+	internal class PEV_E3_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public PEV_E3_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "PEV-E3_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_E3_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+
+	internal class PEV_E4_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public PEV_E4_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(
+			MRFReportFactory)
+		{
+
+		}
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "PEV-E4_PrimaryBusManufacturerOutputDataType";
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_E4_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+
+	internal class PEV_IEPC_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public PEV_IEPC_PrimaryBus_ManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "PEV-IEPC_PrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetPEV_IEPC_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+
+	internal class Exempted_PrimaryBus_ManufacturerReport : PrimaryBus_ManufacturerReportBase
+	{
+		public Exempted_PrimaryBus_ManufacturerReport(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractManufacturerReport
+
+		public override string OutputDataType => "ExemptedPrimaryBusManufacturerOutputDataType";
+
+		public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _mRFReportFactory.GetExempted_PrimaryBusVehicleType().GetElement(inputData);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportComponentWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportComponentWriters.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2deef90af1587b11afc3e37926604c8cbea3f408
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportComponentWriters.cs
@@ -0,0 +1,10 @@
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport0._9
+{
+    internal class ManufacturerReportComponentWriters
+    {
+
+
+
+
+    }
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/AbstractMRFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/AbstractMRFGroupWriter.cs
new file mode 100644
index 0000000000000000000000000000000000000000..774bb4c771bf63614342fdbe9c4f38fb3d856ee4
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/AbstractMRFGroupWriter.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter
+{
+    public abstract class AbstractReportOutputGroup : IReportOutputGroup
+    {
+		protected readonly IManufacturerReportFactory _mrfFactory;
+		protected XNamespace _mrf = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9";
+
+		protected AbstractReportOutputGroup(IManufacturerReportFactory mrfFactory)
+		{
+			_mrfFactory = mrfFactory;
+
+		}
+
+		#region Implementation of IMRFGroupWriter
+
+		public abstract IList<XElement> GetElements(IDeclarationInputDataProvider inputData);
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..782667d1ffbbaa4d44b8fee981635bfc9f02ff14
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputGroup.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Common
+{
+    public class GeneralVehicleOutputGroup : AbstractReportOutputGroup, IReportVehicleOutputGroup
+    {
+		public GeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMRFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+			return GetElements(vehicle);
+
+		}
+
+		#endregion
+
+		#region Implementation of IMrfVehicleGroup
+
+		public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData)
+		{
+			return new List<XElement>() {
+				new XElement(_mrf + XMLNames.Component_Model, vehicleData.Model),
+				new XElement(_mrf + XMLNames.Vehicle_VIN, vehicleData.VIN),
+				vehicleData.VehicleTypeApprovalNumber.IsNullOrEmpty()
+					? null 
+					: new XElement(_mrf + XMLNames.Vehicle_TypeApprovalNumber, vehicleData.VehicleTypeApprovalNumber),
+				new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.TPMLM, vehicleData.GrossVehicleMassRating.ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()),
+				new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
+
+			};
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..8fabbd12f01f050c00c6d4bbc1b0ddea4bdaef91
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry
+{
+    internal class HEV_VehicleSequenceGroup : AbstractReportOutputGroup
+    {
+		public HEV_VehicleSequenceGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var ihpc = vehicleData.Components?.GearboxInputData?.Type == GearboxType.IHPC;
+			var dualFuel = vehicleData.Components?.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1) ?? false;
+
+			var result = new List<XElement>()
+			{
+				new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, dualFuel),
+				new XElement(_mrf + "HEVArchitecture", ihpc ? GearboxType.IHPC.ToXMLFormat() : vehicleData.ArchitectureID.GetLabel()),
+				new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev),
+				vehicleData.OvcHev ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null,
+			};
+			result.Add(_mrfFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			result.Add(_mrfFactory.GetBoostingLimitationsType().GetElement(inputData.JobInputData.Vehicle));
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs
new file mode 100644
index 0000000000000000000000000000000000000000..2b0c365285fbdb44ab68d8b2770886e1ff263896
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs	
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry
+{
+    internal class PEV_VehicleSequenceGroup : AbstractReportOutputGroup
+    {
+		public PEV_VehicleSequenceGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>()
+			{
+				new XElement(_mrf + "PEVArchitecture", vehicleData.ArchitectureID.GetLabel()),
+				new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev),
+				vehicleData.MaxChargingPower != null ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null,
+			};
+			result.Add(_mrfFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			result.Add(_mrfFactory.GetBoostingLimitationsType().GetElement(inputData.JobInputData.Vehicle));
+			return result;
+		}
+
+		#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
new file mode 100644
index 0000000000000000000000000000000000000000..afee30627f100937a51f6835cd002037e47dee37
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBus.cs
@@ -0,0 +1,158 @@
+using System;
+using System.Collections.Generic;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.CompletedBus
+{
+    internal class ConventionalCompletedBusGeneralVehicleOutputGroup : AbstractReportOutputGroup
+    {
+		
+		public ConventionalCompletedBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var multiStageInputData = inputData as IMultistepBusInputDataProvider;
+			if (multiStageInputData == null) {
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			var consolidatedVehicleData = multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			var result = new List<XElement>();
+			result.Add(GetManufacturers(multiStageInputData));
+			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(GetNGTankSystem(multiStageInputData));
+			return result;
+		}
+
+		protected virtual XElement GetNGTankSystem(IMultistepBusInputDataProvider multiStageInputData)
+		{
+			var consolidatedVehicleData = multiStageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle;
+			return new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, consolidatedVehicleData.TankSystem);
+		}
+
+		protected virtual XElement GetManufacturers(IMultistepBusInputDataProvider multiStageInputData)
+		{
+			var primaryVehicleData = multiStageInputData.JobInputData.PrimaryVehicle.Vehicle;
+			var manufacturers = new XElement(_mrf + "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));
+			}
+
+			return manufacturers;
+		}
+
+		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));
+		}
+
+		#endregion
+	}
+
+	internal class HEVCompletedBusGeneralVehicleOutputGroup : ConventionalCompletedBusGeneralVehicleOutputGroup
+	{
+
+		public HEVCompletedBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) :
+			base(mrfFactory) { }
+
+	}
+
+
+
+	internal class PEVCompletedBusGeneralVehicleOutputGroup : ConventionalCompletedBusGeneralVehicleOutputGroup
+	{
+
+		public PEVCompletedBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) :
+			base(mrfFactory)
+		{ }
+
+		#region Overrides of ConventionalCompletedBusGeneralVehicleOutputGroup
+
+		protected override XElement GetNGTankSystem(IMultistepBusInputDataProvider multiStageInputData)
+		{
+			return null;
+		}
+
+		#endregion
+	}
+
+	internal class CompletedBusSequenceOutputGroup : AbstractReportOutputGroup, IReportVehicleOutputGroup
+	{
+		public CompletedBusSequenceOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMrfVehicleGroup
+
+		public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData)
+		{
+			var result = new List<XElement>() {
+				new XElement(_mrf + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle),
+				new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV),
+				new XElement(_mrf + XMLNames.Vehicle_RegisteredClass, vehicleData.RegisteredClass.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.Bus_NumberPassengersUpperDeck, vehicleData.NumberPassengerSeatsUpperDeck + vehicleData.NumberPassengersStandingUpperDeck),
+				new XElement(_mrf + XMLNames.Bus_NumberPassengersLowerDeck, vehicleData.NumberPassengerSeatsLowerDeck + vehicleData.NumberPassengersStandingLowerDeck),
+				new XElement(_mrf + XMLNames.Vehicle_BodyworkCode, vehicleData.VehicleCode.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.Bus_LowEntry, vehicleData.LowEntry)
+			};
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class CompletedBusDimensionsSequenceOutputGroup : AbstractReportOutputGroup, IReportVehicleOutputGroup
+	{
+		public CompletedBusDimensionsSequenceOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMrfVehicleGroup
+
+		public IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData)
+		{
+			var result = new List<XElement>() {
+				new XElement(_mrf + XMLNames.Bus_HeightIntegratedBody, vehicleData.Height.ConvertToMilliMeter().ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Bus_VehicleLength, vehicleData.Length.ConvertToMilliMeter().ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Bus_VehicleWidth, vehicleData.Width.ConvertToMilliMeter().ToXMLFormat(0))
+			};
+			return result;
+		}
+
+		#endregion
+	}
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBusAuxiliaries.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBusAuxiliaries.cs
new file mode 100644
index 0000000000000000000000000000000000000000..06841535a9fdb3e65d1584ef056371e5d41c287e
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/CompletedBus/CompletedBusAuxiliaries.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus
+{
+	public interface IMrfBusAuxGroup
+	{
+		IList<XElement> GetElements(IBusAuxiliariesDeclarationData busAuxiliaries);
+
+	}
+    internal class CompletedBus_HVACSystem_Group : AbstractReportOutputGroup, IMrfBusAuxGroup
+    {
+		public CompletedBus_HVACSystem_Group(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMrfBusAuxGroup
+
+		public IList<XElement> GetElements(IBusAuxiliariesDeclarationData busAuxiliaries)
+		{
+			return new List<XElement>() {
+				new XElement(_mrf + XMLNames.Bus_SystemConfiguration,
+					busAuxiliaries.HVACAux.SystemConfiguration.ToXmlFormat()),
+				new XElement(_mrf + XMLNames.Bus_HeatPumpTypeDriver,
+					new XElement(_mrf + XMLNames.BusHVACHeatPumpCooling,
+						busAuxiliaries.HVACAux.HeatPumpTypeCoolingDriverCompartment.GetLabel()),
+					new XElement(_mrf + XMLNames.BusHVACHeatPumpHeating,
+						busAuxiliaries.HVACAux.HeatPumpTypeHeatingDriverCompartment.GetLabel())),
+				new XElement(_mrf + XMLNames.Bus_HeatPumpTypePassenger,
+					new XElement(_mrf + XMLNames.BusHVACHeatPumpCooling,
+						busAuxiliaries.HVACAux.HeatPumpTypeCoolingPassengerCompartment.GetLabel()),
+					new XElement(_mrf + XMLNames.BusHVACHeatPumpHeating,
+						busAuxiliaries.HVACAux.HeatPumpTypeHeatingPassengerCompartment.GetLabel())),
+
+				new XElement(_mrf + XMLNames.Bus_DoubleGlazing, busAuxiliaries.HVACAux.DoubleGlazing),
+				new XElement(_mrf + XMLNames.Bus_AdjustableAuxiliaryHeater, busAuxiliaries.HVACAux.AdjustableAuxiliaryHeater),
+				new XElement(_mrf + XMLNames.Bus_SeparateAirDistributionDucts, busAuxiliaries.HVACAux.SeparateAirDistributionDucts),
+				new XElement(_mrf + XMLNames.Bus_AuxiliaryHeaterPower, busAuxiliaries.HVACAux.AuxHeaterPower.ConvertToKiloWatt().ToXMLFormat(0))
+			};
+		}
+
+		#endregion
+	}
+
+	internal class CompletedBus_xEVHVACSystem_Group : AbstractReportOutputGroup, IMrfBusAuxGroup
+	{
+		public CompletedBus_xEVHVACSystem_Group(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMrfBusAuxGroup
+
+		public IList<XElement> GetElements(IBusAuxiliariesDeclarationData busAuxiliaries)
+		{
+			return new List<XElement>() {
+				new XElement(_mrf + XMLNames.Bus_WaterElectricHeater,
+					busAuxiliaries.HVACAux.WaterElectricHeater),
+				new XElement(_mrf + XMLNames.Bus_AirElectricHeater, busAuxiliaries.HVACAux.AirElectricHeater),
+				new XElement(_mrf + XMLNames.Bus_OtherHeatingTechnology, busAuxiliaries.HVACAux.OtherHeatingTechnology)
+			};
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ab0746d1b440ae342742feb37a4bfc1862727883
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/IMRFGroupWriter.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter
+{
+    public interface IReportOutputGroup
+	{
+		IList<XElement> GetElements(IDeclarationInputDataProvider inputData);
+    }
+
+	public interface IReportVehicleOutputGroup
+	{
+		IList<XElement> GetElements(IVehicleDeclarationInputData vehicleData);
+	}
+
+	public interface IReportCompletedBusOutputGroup
+	{
+		IList<XElement> GetElements(IMultistepBusInputDataProvider multiStageInputDataProvider);
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/ConventionalLorryVehicleGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/ConventionalLorryVehicleGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..5b30b05b2e27e7cbf682b167918a640191a4b3a0
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/ConventionalLorryVehicleGroup.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter
+{
+    public class ConventionalLorryVehicleXmlGroup : AbstractReportOutputGroup
+    {
+		public ConventionalLorryVehicleXmlGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMRFGroupWriter
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>();
+			var dualFuel = vehicle.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1);
+			result.AddRange(_mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData));
+			result.AddRange(new List<XElement>(){new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, dualFuel),
+				new XElement(_mrf + XMLNames.Vehicle_SleeperCab, inputData.JobInputData.Vehicle.SleeperCab),
+				(inputData.JobInputData.Vehicle.TankSystem.HasValue ? new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, inputData.JobInputData.Vehicle.TankSystem.Value.ToString()) : null),
+				//If content is null, nothing is added. When passing a collection, items in the collection can be null. A null item in the collection has no effect on the tree.
+				_mrfFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)});
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b12fe6f5d4b56ac44e27076358f72411dc9cbdc4
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeGroup.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry
+{
+    internal class HEV_LorryVehicleOutputTypeGroup : AbstractReportOutputGroup
+    {
+		public HEV_LorryVehicleOutputTypeGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			result.AddRange(_mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData));
+			result.AddRange(_mrfFactory.GetHEV_lorryVehicleOutputSequenceGroup().GetElements(inputData));
+
+
+
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeSequenceGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeSequenceGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7e50079967a7c5c25e3395f9b1563d00d83f3fd9
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/HEV_LorryVehicleOutputTypeSequenceGroup.cs
@@ -0,0 +1,30 @@
+using System.Collections.Generic;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Lorry
+{
+    internal class HEV_LorryVehicleOutputTypeSequenceGroup : AbstractReportOutputGroup
+    {
+		public HEV_LorryVehicleOutputTypeSequenceGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>();
+			result.AddRange(_mrfFactory.GetHEV_VehicleSequenceGroup().GetElements(inputData));
+			result.Add(new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab));
+			if (vehicleData.TankSystem.HasValue) {
+				result.Add(new XElement(_mrf + XMLNames.Vehicle_NgTankSystem, vehicleData.TankSystem.Value.ToString()));
+			}
+
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..555d815b60e212ac49f226210c1cb3fa7eb2c30f
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/LorryGeneralVehicleOutputGroup.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter
+{
+    public class LorryGeneralVehicleOutputXmlGroup : AbstractReportOutputGroup
+    {
+		#region Implementation of IMRFGroupWriterb
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+			var elements = new List<XElement>();
+            elements.AddRange(new List<XElement>() {
+                new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer),
+                new XElement(_mrf + XMLNames.Component_ManufacturerAddress, vehicle.ManufacturerAddress),
+            });
+            elements.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(vehicle));
+            elements.AddRange(new List<XElement>() {
+				// new XElement(mrf + "CO2StandardGroup", vehicle.) //CO2 Standardgroup
+				new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ToXMLFormat(0)),
+                new XElement(_mrf + XMLNames.Vehicle_VocationalVehicle, vehicle.VocationalVehicle),
+                new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle),
+                new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, vehicle.HybridElectricHDV),
+            });
+
+            return elements;
+		}
+
+		#endregion
+
+		public LorryGeneralVehicleOutputXmlGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/PEV_LorryVehicleOutputTypeGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/PEV_LorryVehicleOutputTypeGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cafbce3adc373f2970924cebdf8a18e1d83f3a37
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Lorry/PEV_LorryVehicleOutputTypeGroup.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry
+{
+    internal class PEV_LorryVehicleOutputTypeGroup : AbstractReportOutputGroup
+    {
+		public PEV_LorryVehicleOutputTypeGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>();
+			result.AddRange(_mrfFactory.GetGeneralLorryVehicleOutputGroup().GetElements(inputData));
+			result.Add(new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab));
+			result.AddRange(_mrfFactory.GetPEV_VehicleSequenceGroup().GetElements(inputData));
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/PrimaryBus/PrimaryBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/PrimaryBus/PrimaryBus.cs
new file mode 100644
index 0000000000000000000000000000000000000000..54ae1518ae75cb91602dbade3c13a786f80da77a
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/PrimaryBus/PrimaryBus.cs
@@ -0,0 +1,98 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle
+{
+    internal class PrimaryBusGeneralVehicleOutputGroup : AbstractReportOutputGroup
+    {
+		public PrimaryBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var primaryBus = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>() {
+				new XElement(_mrf + XMLNames.Component_Manufacturer, primaryBus.Manufacturer),
+				new XElement(_mrf + XMLNames.Component_ManufacturerAddress, primaryBus.ManufacturerAddress)
+			};
+			result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(primaryBus));
+			result.Add(new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, primaryBus.ZeroEmissionVehicle));
+			result.Add(new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, primaryBus.HybridElectricHDV));
+
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class ExemptedPrimaryBusGeneralVehicleOutputGroup : AbstractReportOutputGroup
+	{
+		public ExemptedPrimaryBusGeneralVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var primaryBus = inputData.JobInputData.Vehicle;
+			var result = new List<XElement>() {
+				new XElement(_mrf + XMLNames.Component_Manufacturer, primaryBus.Manufacturer),
+				new XElement(_mrf + XMLNames.Component_ManufacturerAddress, primaryBus.ManufacturerAddress)
+			};
+			result.AddRange(_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(primaryBus));
+			result.Add(new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, primaryBus.ZeroEmissionVehicle));
+			//result.Add(new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, primaryBus.HybridElectricHDV));
+
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class HEVPrimaryBusVehicleOutputGroup : AbstractReportOutputGroup
+	{
+		public HEVPrimaryBusVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			result.AddRange(_mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData));
+			result.AddRange(_mrfFactory.GetHEV_VehicleSequenceGroup().GetElements(inputData));
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class PEVPrimaryBusVehicleOutputGroup : AbstractReportOutputGroup
+	{
+		public PEVPrimaryBusVehicleOutputGroup(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlGroup
+
+		public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
+		{
+			var result = new List<XElement>();
+			result.AddRange(_mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData));
+			result.AddRange(_mrfFactory.GetPEV_VehicleSequenceGroup().GetElements(inputData));
+
+			return result;
+		}
+
+		#endregion
+	}
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/AbstractMrfXmlType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/AbstractMrfXmlType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d59563f0a578dbdb32b84029fc0dc8baccdacaea
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/AbstractMrfXmlType.cs
@@ -0,0 +1,18 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+	public abstract class AbstractMrfXmlType
+	{
+		protected XNamespace _mrf = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9";
+		protected readonly IManufacturerReportFactory _mrfFactory;
+
+		protected AbstractMrfXmlType(IManufacturerReportFactory mrfFactory)
+		{
+			_mrfFactory = mrfFactory;
+		}
+
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAdasTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAdasTypes.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d4be0fcd16599348f82a0f977282e6bf07a7cb23
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAdasTypes.cs
@@ -0,0 +1,67 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+	public interface IMRFAdasType
+	{
+		XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas);
+	}
+
+	internal class MRFConventionalAdasType : AbstractMrfXmlType, IMRFAdasType
+    {
+		public MRFConventionalAdasType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMRFComponentWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData)
+		{
+			return new XElement(_mrf + XMLNames.Vehicle_ADAS,
+				new XElement(_mrf + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart),
+				new XElement(_mrf + "EcoRollWithoutEngineStopStart",
+					inputData.EcoRoll == EcoRollType.WithoutEngineStop),
+				new XElement(_mrf + "EcoRollWithEngineStopStart",
+					inputData.EcoRoll == EcoRollType.WithEngineStop),
+				new XElement(_mrf + XMLNames.Vehicle_ADAS_PCC,
+					inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None));
+		}
+
+		#endregion
+
+		
+	}
+
+	internal class MRFHevAdasType : AbstractMrfXmlType, IMRFAdasType
+	{
+		public MRFHevAdasType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData)
+		{
+			return new XElement(_mrf + XMLNames.Vehicle_ADAS, 
+				new XElement(_mrf + XMLNames.Vehicle_ADAS_EngineStopStart, inputData.EngineStopStart),
+				new XElement(_mrf + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None)
+				);
+		}
+
+		#endregion
+	}
+
+	internal class MRFPevAdasType : AbstractMrfXmlType, IMRFAdasType
+	{
+		public MRFPevAdasType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData inputData)
+		{
+			return new XElement(_mrf + XMLNames.Vehicle_ADAS,
+				new XElement(_mrf + XMLNames.Vehicle_ADAS_PCC, inputData.PredictiveCruiseControl != PredictiveCruiseControlType.None)
+			);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAirdragType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAirdragType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..10d5407af0c5e579b13c38cdd8126a2f1edd15fb
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAirdragType.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using NLog.LayoutRenderers.Wrappers;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+	public interface IMrfAirdragType
+	{
+		XElement GetXmlType(IAirdragDeclarationInputData inputData);
+
+
+	}
+	public class MRFAirdragType : AbstractMrfXmlType, IMrfAirdragType
+	{
+
+		public MRFAirdragType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMrfAirdragType
+
+		public XElement GetXmlType(IAirdragDeclarationInputData inputData)
+		{
+			if (inputData == null || inputData.AirDragArea == null) {
+				return null;
+			}
+			return new XElement(_mrf + XMLNames.Component_AirDrag,
+				new XElement(_mrf + XMLNames.Component_Model, inputData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod, inputData.CertificationMethod),
+				inputData.CertificationNumber.IsNullOrEmpty()
+					? null
+					: new XElement(_mrf + XMLNames.Component_CertificationNumber, inputData.CertificationNumber),
+				new XElement(_mrf + "CdxA", inputData.AirDragArea.ToXMLFormat(2)),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, inputData.DigestValue?.DigestValue ?? ""));
+		}
+
+		#endregion
+	}
+
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAngleDriveType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAngleDriveType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..5ca8b6c3661c41d28e48444e8f2894e0ecfc4edd
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAngleDriveType.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    internal class AngleDriveTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public AngleDriveTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var angleDriveData = inputData.JobInputData.Vehicle.Components.AngledriveInputData;
+			if (angleDriveData == null || angleDriveData.Type == AngledriveType.None) {
+				return null;
+			}
+			return new XElement(_mrf + XMLNames.Component_Angledrive,
+				new XElement(_mrf + XMLNames.Component_Model, angleDriveData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationNumber, angleDriveData.CertificationNumber),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, angleDriveData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod, angleDriveData.CertificationMethod.ToXMLFormat()),
+				new XElement(_mrf + "AngledriveRatio", angleDriveData.Ratio.ToXMLFormat(3)));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleGearType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleGearType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0ed3f6c7024c6c5a026b8e697d31bcea35812fcf
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleGearType.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    internal class AxleGearTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public AxleGearTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var axleGearInputData = inputData.JobInputData.Vehicle.Components.AxleGearInputData;
+			return new XElement(_mrf + XMLNames.Component_Axlegear,
+				new XElement(_mrf + XMLNames.Component_Model, axleGearInputData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationNumber, axleGearInputData.CertificationNumber),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue,
+					axleGearInputData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod,
+					axleGearInputData.CertificationMethod.ToXMLFormat()),
+				new XElement(_mrf + "AxleType", axleGearInputData.LineType.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.Axlegear_Ratio, axleGearInputData.Ratio.ToXMLFormat(3)));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleWheelsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleWheelsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..23b49e435f3e1179fd294c610e99384c025afb70
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFAxleWheelsType.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    public class AxleWheelsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public AxleWheelsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var result = new XElement(_mrf + XMLNames.Component_AxleWheels);
+			var axleWheelsInputdata = inputData.JobInputData.Vehicle.Components.AxleWheels;
+			var axleCount = 0;
+			foreach (var axleDeclaration in axleWheelsInputdata.AxlesDeclaration) {
+				var axle = new XElement(_mrf + XMLNames.AxleWheels_Axles_Axle,
+					new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, ++axleCount));
+
+				if (axleCount != 1) {
+					axle.Add(new XElement(_mrf + XMLNames.AxleWheels_Axles_Axle_TwinTyres, axleDeclaration.TwinTyres));
+				}
+				axle.Add(new XElement(_mrf + XMLNames.AxleWheels_Axles_Axle_Tyre, 
+					new XElement(_mrf + XMLNames.Report_Tyre_TyreDimension, axleDeclaration.Tyre.Dimension),
+					new XElement(_mrf + XMLNames.Component_CertificationNumber, axleDeclaration.Tyre.CertificationNumber),
+					new XElement(_mrf + "SpecificRRC", axleDeclaration.Tyre.RollResistanceCoefficient.ToXMLFormat(4)),
+					new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, axleDeclaration.Tyre.DigestValue?.DigestValue ?? "")));
+				result.Add(axle);
+			}
+
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBoostingLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBoostingLimitationsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..46bc3c8d73faca7d0ab178a87f6be41218e83af0
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBoostingLimitationsType.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+	public interface IMrfVehicleType
+	{
+		XElement GetElement(IVehicleDeclarationInputData inputData);
+
+	}
+
+    internal class MRFBoostingLimitationsType : AbstractMrfXmlType, IMrfVehicleType
+    {
+		public MRFBoostingLimitationsType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMrfVehicleType
+
+		public XElement GetElement(IVehicleDeclarationInputData inputData)
+		{
+			var boostingLimitations = inputData.BoostingLimitations;
+			if (boostingLimitations != null)
+			{
+				var boostingLimitationsXElement = new XElement(_mrf + XMLNames.Vehicle_BoostingLimitation);
+				foreach (DataRow row in boostingLimitations.Rows)
+				{
+					boostingLimitationsXElement.Add(new XElement(_mrf + XMLNames.BoostingLimitation_Entry,
+						new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque]),
+						new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed])));
+				}
+
+
+				return boostingLimitationsXElement;
+			}
+			return null;
+		}
+
+		#endregion
+	}
+
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs
new file mode 100644
index 0000000000000000000000000000000000000000..051f4c84c1ecc0b0a19d32e8927131d8c05d5513
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs
@@ -0,0 +1,415 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+
+
+	public interface IMRFBusAuxiliariesType
+	{
+		XElement GetElement(IBusAuxiliariesDeclarationData auxData);
+	}
+
+
+
+
+	internal class MRFPrimaryBusAuxType_Conventional : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusAuxType_Conventional(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+
+		#region Implementation of MRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var steeringPumpData = auxData.SteeringPumpTechnology;
+
+			return new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				new XElement(_mrf + "CoolingFanTechnology",
+					auxData.FanTechnology),
+				new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)),
+
+
+				_mrfFactory.GetPrimaryBusElectricSystemType_Conventional_HEV().GetElement(auxData),
+				_mrfFactory.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px().GetElement(auxData),
+				_mrfFactory.GetPrimaryBusHVACSystemType_Conventional_HEV().GetElement(auxData)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MRFPrimaryBusAuxType_HEV_P : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusAuxType_HEV_P(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var steeringPumpData = auxData.SteeringPumpTechnology;
+
+			return new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				new XElement(_mrf + "CoolingFanTechnology",
+					auxData.FanTechnology),
+				new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)),
+				_mrfFactory.GetPrimaryBusElectricSystemType_Conventional_HEV().GetElement(auxData),
+				_mrfFactory.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px().GetElement(auxData),
+				_mrfFactory.GetPrimaryBusHVACSystemType_Conventional_HEV().GetElement(auxData)
+			);
+		}
+
+		#endregion
+	}
+	internal class MRFPrimaryBusAuxType_HEV_S : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusAuxType_HEV_S(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var steeringPumpData = auxData.SteeringPumpTechnology;
+
+			return new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				new XElement(_mrf + "CoolingFanTechnology",
+					auxData.FanTechnology),
+				new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)),
+				_mrfFactory.GetPrimaryBusElectricSystemType_Conventional_HEV().GetElement(auxData),
+
+				_mrfFactory.GetPrimaryBusPneumaticSystemType_HEV_S().GetElement(auxData),
+				_mrfFactory.GetPrimaryBusHVACSystemType_Conventional_HEV().GetElement(auxData)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MRFPrimaryBusAuxType_PEV : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusAuxType_PEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var steeringPumpData = auxData.SteeringPumpTechnology;
+
+			return new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData)),
+				_mrfFactory.GetPrimaryBusElectricSystemType_PEV().GetElement(auxData),
+				_mrfFactory.GetPrimaryBusPneumaticSystemType_PEV_IEPC().GetElement(auxData)
+				//_mrfFactory.GetPrimaryBusHVACSystemType_PEV().GetXmlType(auxData)
+			);
+		}
+
+		#endregion
+	}
+
+
+
+	public class MRFPrimaryBusHVACSystemType_Conventional_HEV : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusHVACSystemType_Conventional_HEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var hvac = auxData.HVACAux;
+			return new XElement(_mrf + "HVACSystem",
+				new XElement(_mrf + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat),
+				new XElement(_mrf + XMLNames.Bus_EngineWasteGasHeatExchanger, hvac.EngineWasteGasHeatExchanger));
+		}
+
+		#endregion
+	}
+
+	public class MRFPrimaryBusHVACSystemType_PEV : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusHVACSystemType_PEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var hvac = auxData.HVACAux;
+			return new XElement(_mrf + "HVACSystem",
+				new XElement(_mrf + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat));
+		}
+
+		#endregion
+	}
+
+	internal class MRFConventionalCompletedBusAuxType : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFConventionalCompletedBusAuxType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var result = new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				_mrfFactory.GetConventionalCompletedBusElectricSystemType().GetElement(auxData),
+				_mrfFactory.GetConventionalCompletedBus_HVACSystemType().GetElement(auxData)
+			);
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class MRFHEVCompletedBusAuxType : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFHEVCompletedBusAuxType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var result = new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				_mrfFactory.GetHEVCompletedBusElectricSystemType().GetElement(auxData),
+				_mrfFactory.GetHEVCompletedBus_HVACSystemType().GetElement(auxData)
+            );
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class MRFPEVCompletedBusAuxType : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPEVCompletedBusAuxType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetXmlType(IDeclarationInputDataProvider inputData)
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var result = new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				_mrfFactory.GetPEVCompletedBusElectricSystemType().GetElement(auxData),
+                _mrfFactory.GetPEVCompletedBus_HVACSystemType().GetElement(auxData)
+            );
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class MRFConventionalCompletedBusElectricSystemType : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFConventionalCompletedBusElectricSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			return new XElement(_mrf + XMLNames.BusAux_ElectricSystem,
+				new XElement(_mrf + "DayRunningLightsLED", auxData.ElectricConsumers.DayrunninglightsLED),
+				new XElement(_mrf + "HeadLightsLED", auxData.ElectricConsumers.HeadlightsLED),
+				new XElement(_mrf + "PositionLightsLED", auxData.ElectricConsumers.PositionlightsLED),
+				new XElement(_mrf + "BrakeLightsLED", auxData.ElectricConsumers.BrakelightsLED),
+				new XElement(_mrf + "InteriorLightsLED", auxData.ElectricConsumers.InteriorLightsLED));
+		}
+
+		#endregion
+	}
+
+	internal class MRFHEVCompletedBusElectricSystemType : MRFConventionalCompletedBusElectricSystemType
+	{
+		public MRFHEVCompletedBusElectricSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+	}
+
+	internal class MRFPEVCompletedBusElectricSystemType : MRFConventionalCompletedBusElectricSystemType
+	{
+		public MRFPEVCompletedBusElectricSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+	}
+
+	internal class MRFConventionalCompletedBus_HVACSystemType : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFConventionalCompletedBus_HVACSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			return new XElement(_mrf + "HVACSystem",
+				_mrfFactory.GetCompletedBus_HVACSystemGroup().GetElements(auxData));
+		}
+
+		#endregion
+	}
+
+	internal class MRFHEVCompletedBus_HVACSystemType : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFHEVCompletedBus_HVACSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			return new XElement(_mrf + "HVACSystem",
+				_mrfFactory.GetCompletedBus_HVACSystemGroup().GetElements(auxData),
+				_mrfFactory.GetCompletedBus_xEVHVACSystemGroup().GetElements(auxData));
+		}
+
+		#endregion
+	}
+
+	internal class MRFPEVCompletedBus_HVACSystemType : MRFHEVCompletedBus_HVACSystemType
+	{
+		public MRFPEVCompletedBus_HVACSystemType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		
+	}
+
+	internal class MRFPrimaryBusElectricSystemType_Conventional_HEV : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusElectricSystemType_Conventional_HEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+
+			var maxAlternatorPower = auxData.ElectricSupply.GetMaxAlternatorPower();
+			var electricStorageCapacity =
+				auxData.ElectricSupply.ElectricStorage?.Sum(electricStorage => electricStorage.ElectricStorageCapacity) ?? 0.SI<WattSecond>();
+			return new XElement(_mrf + XMLNames.BusAux_ElectricSystem,
+				new XElement(_mrf + XMLNames.BusAux_ElectricSystem_AlternatorTechnology,
+					auxData.ElectricSupply.AlternatorTechnology.ToXMLFormat()),
+				(auxData.ElectricSupply.AlternatorTechnology == AlternatorType.Smart
+					? new XElement(_mrf + "MaxAlternatorPower", maxAlternatorPower.ToXMLFormat(0))
+					: null),
+
+				auxData.ElectricSupply.AlternatorTechnology == AlternatorType.Smart
+					? new XElement(_mrf + "ElectricStorageCapacity", electricStorageCapacity.ToXMLFormat())
+					: null);
+		}
+
+		#endregion
+	}
+
+	internal class MRFPrimaryBusElectricSystemType_PEV : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusElectricSystemType_PEV(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			var electricStorageCapacity =
+				auxData.ElectricSupply.ElectricStorage?.Sum(electricStorage => electricStorage.ElectricStorageCapacity);
+			return new XElement(_mrf + XMLNames.BusAux_ElectricSystem,
+				auxData.ElectricSupply.ElectricStorage == null || electricStorageCapacity == null ? null :  new XElement(_mrf + "ElectricStorageCapacity", electricStorageCapacity.ToXMLFormat()));
+		}
+
+		#endregion
+	}
+
+
+	internal class MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	{
+		public MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)),
+				new XElement(_mrf + XMLNames.Bus_CompressorRatio, auxData.PneumaticSupply.Ratio.ToXMLFormat(3)),
+
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, auxData.PneumaticSupply.SmartAirCompression),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()),
+				new XElement(_mrf + "ReagentDosing", auxData.PneumaticConsumers.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+
+		protected virtual string GetPneumaticSystemTechnology(IBusAuxiliariesDeclarationData auxData)
+		{
+			return $"{auxData.PneumaticSupply.CompressorSize}, {auxData.PneumaticSupply.CompressorDrive.GetLabel()}, clutch: {auxData.PneumaticSupply.Clutch}";
+		}
+
+		#endregion
+	}
+
+	internal class MRFPrimaryBusPneumaticSystemType_HEV_S : MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px
+	{
+		public MRFPrimaryBusPneumaticSystemType_HEV_S(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public override XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)),
+				new XElement(_mrf + XMLNames.Bus_CompressorRatio, auxData.PneumaticSupply.Ratio.ToXMLFormat(3)),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()),
+				new XElement(_mrf + "ReagentDosing", auxData.PneumaticConsumers.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MRFPrimaryBusPneumaticSystemType_PEV_IEPC : MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px
+	{
+		public MRFPrimaryBusPneumaticSystemType_PEV_IEPC(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFBusAuxiliariesType
+
+		public override XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		{
+			return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, auxData.PneumaticSupply.CompressorDrive.ToString()),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat())
+			);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b2fdd96d16416a9c7a9c2535ece6ef7988452cec
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFComponentsType.cs
@@ -0,0 +1,592 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+	#region Lorry
+	internal class ConventionalLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public ConventionalLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of MRFComponentType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var addTorqueConverterData =
+				inputData.JobInputData.Vehicle.Components.GearboxInputData.Type == GearboxType.ATPowerSplit ||
+				inputData.JobInputData.Vehicle.Components.GearboxInputData.Type == GearboxType.ATSerial;
+			var addRetarderInputData = inputData.JobInputData.Vehicle.Components.RetarderInputData != null;
+			var addAngleDriveData = inputData.JobInputData.Vehicle.Components.AngledriveInputData != null;
+			var addAirdragdata = inputData.JobInputData.Vehicle.Components.AirdragInputData != null;
+			return new XElement(_mrf + XMLNames.Vehicle_Components, 
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				(addTorqueConverterData ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) : null),
+				(addAngleDriveData ? _mrfFactory.GetAngleDriveType().GetElement(inputData) : null),
+				(addRetarderInputData ? _mrfFactory.GetRetarderType().GetElement(inputData) : null),
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetConventionalLorryAuxType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData),
+				(addAirdragdata ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null)
+			);
+			//return new XElement(_mrf + XMLNames.Vehicle_Components, 
+			//	_mrfFactory.GetEngineType())
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevPxIhpcLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevPxIhpcLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var result = new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				_mrfFactory.GetTorqueConverterType().GetElement(inputData),
+				_mrfFactory.GetAngleDriveType().GetElement(inputData),
+				_mrfFactory.GetRetarderType().GetElement(inputData),
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData),
+				_mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData)
+			);
+			return result;
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevS2LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevS2LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				
+				components.TorqueConverterInputData != null
+					? _mrfFactory.GetTorqueConverterType().GetElement(inputData)
+					: null,
+				components.AngledriveInputData != null ? _mrfFactory.GetAngleDriveType().GetElement(inputData) : null,
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData),
+				components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null
+				);
+	
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevS3LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevS3LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData),
+				components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null);
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevS4LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevS4LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData),
+				components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null);
+		}
+		#endregion
+	}
+
+	internal class MrfhevIepcSLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevIepcSLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetIEPCSpecifications().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetHEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData),
+				components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null);
+		}
+
+		#endregion
+	}
+
+	internal class MrfpevE2LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevE2LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				components.TorqueConverterInputData != null
+					? _mrfFactory.GetTorqueConverterType().GetElement(inputData)
+					: null,
+				components.RetarderInputData != null 
+					? _mrfFactory.GetRetarderType().GetElement(inputData) 
+					: null,
+
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(components.AuxiliaryInputData),
+				components.AirdragInputData != null ? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) : null
+				);
+		}
+	}
+
+	internal class MrfpevE3LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevE3LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+
+				
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData),
+				components.AirdragInputData != null
+					? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData)
+					: null
+			);
+		}
+
+	}
+
+	internal class MrfpevE4LorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevE4LorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData),
+				components.AirdragInputData != null 
+					? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData) 
+					: null
+			);
+		}
+	}
+
+	internal class MrfPevIEPCLorryComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfPevIEPCLorryComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetIEPCSpecifications().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPEV_LorryAuxiliariesType().GetXmlType(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData),
+				components.AirdragInputData != null
+					? _mrfFactory.GetAirdragType().GetXmlType(inputData.JobInputData.Vehicle.Components.AirdragInputData)
+					: null
+			);
+		}
+	}
+
+	#endregion Lorry
+
+
+	#region PrimaryBus
+	internal class ConventionalPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public ConventionalPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				components.TorqueConverterInputData != null ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) : null,
+				components.AngledriveInputData != null ? _mrfFactory.GetAngleDriveType().GetElement(inputData) : null,
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null,
+
+	
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_Conventional().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+
+	internal class MrfhevPxIhpcPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevPxIhpcPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				_mrfFactory.GetTorqueConverterType().GetElement(inputData),
+				_mrfFactory.GetAngleDriveType().GetElement(inputData),
+				_mrfFactory.GetRetarderType().GetElement(inputData),
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_Conventional().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevS2PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevS2PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+
+				components.TorqueConverterInputData != null
+					? _mrfFactory.GetTorqueConverterType().GetElement(inputData)
+					: null,
+
+				components.AngledriveInputData != null 
+					? _mrfFactory.GetAngleDriveType().GetElement(inputData)
+					: null,
+
+				components.RetarderInputData != null
+					? _mrfFactory.GetRetarderType().GetElement(inputData)
+					: null,
+
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevS3PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevS3PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+
+
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+
+				
+				);
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevS4PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevS4PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+
+				
+				);
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevIepcSPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevIepcSPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetEngineType().GetElement(inputData),
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetIEPCSpecifications().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_HEV_S().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfpevE2PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevE2PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public  XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetTransmissionType().GetElement(inputData),
+				components.TorqueConverterInputData != null ? _mrfFactory.GetTorqueConverterType().GetElement(inputData) : null,
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_PEV().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfpevE3PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevE3PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public  XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleGearType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_PEV().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+				);
+		}
+
+		#endregion
+	}
+
+
+	internal class MrfpevE4PrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevE4PrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public  XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetElectricMachinesType().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_PEV().GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfpevIepcPrimaryBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevIepcPrimaryBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public  XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var components = inputData.JobInputData.Vehicle.Components;
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				_mrfFactory.GetIEPCSpecifications().GetElement(inputData),
+				_mrfFactory.GetREESSSpecificationsType().GetElement(inputData),
+				components.RetarderInputData != null ? _mrfFactory.GetRetarderType().GetElement(inputData) : null,
+				components.AxleGearInputData != null ? _mrfFactory.GetAxleGearType().GetElement(inputData) : null,
+				_mrfFactory.GetAxleWheelsType().GetElement(inputData),
+				_mrfFactory.GetPrimaryBusAuxType_PEV()
+					.GetElement(inputData.JobInputData.Vehicle.Components.BusAuxiliaries));
+		}
+
+		#endregion
+	}
+
+	#endregion
+	#region CompletedBus
+	internal class ConventionalCompletedBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public ConventionalCompletedBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputData = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputData == null) {
+				throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null
+					? _mrfFactory.GetAirdragType().GetXmlType(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData) : null,
+				_mrfFactory.GetConventionalCompletedBusAuxType().GetElement(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfhevCompletedBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfhevCompletedBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputData = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputData == null) {
+				throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null
+					? _mrfFactory.GetAirdragType().GetXmlType(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData) : null,
+				_mrfFactory.GetHEVCompletedBusAuxType().GetElement(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	internal class MrfpevCompletedBusComponentsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfpevCompletedBusComponentsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputData = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputData == null) {
+				throw new ArgumentException($"inputData must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			return new XElement(_mrf + XMLNames.Vehicle_Components,
+				multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData != null
+					? _mrfFactory.GetAirdragType().GetXmlType(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.AirdragInputData) : null,
+				_mrfFactory.GetPEVCompletedBusAuxType().GetElement(multistageInputData.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries)
+			);
+		}
+
+		#endregion
+	}
+
+	#endregion
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFElectricMachinesType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFElectricMachinesType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0f8d12ed16f071def5a8714fbe964fc2ffb1da3a
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFElectricMachinesType.cs
@@ -0,0 +1,76 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    internal class ElectricMachinesTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+    {
+		public ElectricMachinesTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var electricMachines = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries;
+			var result =  new XElement(_mrf + "ElectricMachines");
+			
+			foreach (var electricMachine in electricMachines.OrderBy((entry => entry.Position))) {
+				var electricMachineElement = new XElement(_mrf + XMLNames.Component_ElectricMachine,
+						new XElement(_mrf + XMLNames.ElectricMachine_Position, electricMachine.Position.ToXmlFormat()), new XElement(_mrf + "CountAtPosition", electricMachine.Count));
+				result.Add(electricMachineElement);
+				var electricMachineSystem = new XElement(_mrf + XMLNames.ElectricMachineSystem);
+
+				electricMachineSystem.Add(new XElement(_mrf + XMLNames.Component_Model, electricMachine.ElectricMachine.Model),
+					new XElement(_mrf + XMLNames.Component_CertificationNumber, electricMachine.ElectricMachine.CertificationNumber),
+					new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, electricMachine.ElectricMachine.DigestValue?.DigestValue ?? ""),
+					new XElement(_mrf + XMLNames.ElectricMachine_ElectricMachineType, electricMachine.ElectricMachine.ElectricMachineType),
+					new XElement(_mrf + XMLNames.Component_CertificationMethod, electricMachine.ElectricMachine.CertificationMethod),
+					new XElement(_mrf + "RatedPower", electricMachine.ElectricMachine.R85RatedPower.ConvertToKiloWatt().ToXMLFormat(0)));
+
+				var voltageLevels = new XElement(_mrf + "VoltageLevels");
+				electricMachineSystem.Add(voltageLevels);
+
+				foreach (var electricMotorVoltageLevel in electricMachine.ElectricMachine.VoltageLevels) {
+					var voltageLevel = new XElement(_mrf + XMLNames.ElectricMachine_VoltageLevel,
+						electricMachine.ElectricMachine.VoltageLevels.Count > 1
+							? new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0))
+							: null,
+						new XElement(_mrf + "MaxContinuousPower",
+							(electricMotorVoltageLevel.ContinuousTorque *
+							electricMotorVoltageLevel.ContinuousTorqueSpeed).ConvertToKiloWatt()
+							.ToXMLFormat(0)));
+
+
+					voltageLevels.Add(voltageLevel);
+				}
+
+				electricMachineElement.Add(electricMachineSystem);
+				if (electricMachine.ADC != null) {
+					var adc = electricMachine.ADC;
+					electricMachineElement.Add(new XElement(_mrf + XMLNames.Component_ADC, 
+						new XElement(_mrf + XMLNames.Component_Model, adc.Model),
+						new XElement(_mrf + XMLNames.Component_CertificationNumber, adc.CertificationNumber),
+						new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, adc.DigestValue?.DigestValue ?? ""),
+						new XElement(_mrf + XMLNames.Component_CertificationMethod, adc.CertificationMethod.ToXMLFormat()),
+						new XElement(_mrf + XMLNames.AngleDrive_Ratio, adc.Ratio.ToXMLFormat(3)))
+						);
+				}
+				
+			}
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFEngineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFEngineType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9a44c651e00929cf780e570de2259b357d6de29f
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFEngineType.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    public class EngineTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+    {
+		public EngineTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var engineData = inputData.JobInputData.Vehicle.Components.EngineInputData;
+			var result = new XElement(_mrf + XMLNames.Component_Engine,
+				new XElement(_mrf + XMLNames.Component_Model, engineData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationNumber, engineData.CertificationNumber),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, engineData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Engine_RatedPower, engineData.RatedPowerDeclared.ConvertToKiloWatt().ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Engine_IdlingSpeed, inputData.JobInputData.Vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Engine_RatedSpeed, inputData.JobInputData.Vehicle.Components.EngineInputData.RatedSpeedDeclared.AsRPM.ToXMLFormat(0)),
+				new XElement(_mrf + "Capacity", SIBase<Liter>.Create(engineData.Displacement.ConvertToCubicDeziMeter()).ToXMLFormat())
+			);
+			var fuels = new HashSet<FuelType>();
+			foreach (var engineMode in engineData.EngineModes) {
+				foreach (var fuel in engineMode.Fuels) {
+					fuels.Add(fuel.FuelType);
+				}
+			}
+
+			var sortedFuels = fuels.ToList();
+			sortedFuels.Sort((fuelType1, fuelType2) => fuelType1.CompareTo(fuelType2));
+			var fuelTypesElement = new XElement(_mrf + XMLNames.Report_Vehicle_FuelTypes);
+			result.Add(fuelTypesElement);
+			foreach (var fuel in sortedFuels)
+			{
+				fuelTypesElement.Add(new XElement(_mrf + XMLNames.Engine_FuelType, fuel.ToXMLFormat()));
+			}
+			result.Add(new XElement(_mrf + "WasteHeatRecoverySystem", engineData.WHRType != WHRType.None));
+			foreach (WHRType whrType in Enum.GetValues(typeof(WHRType))) {
+				if (whrType == WHRType.None) {
+					continue;
+				}
+
+				if ((whrType & engineData.WHRType) == whrType) {
+					result.Add(_mrf + "WasteHeatRecoverySystemType", whrType.ToXMLFormat());
+				}
+			}
+
+
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0240b89e73b2c90538da5c60b92c2e84716353fb
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    internal class MrfiepcSpecificationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+    {
+		public MrfiepcSpecificationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var iepcData = inputData.JobInputData.Vehicle.Components.IEPC;
+			
+
+			var iepcXElement = new XElement(_mrf + "IEPCSpecifications",
+				new XElement(_mrf + XMLNames.Component_Model, iepcData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationNumber, iepcData.CertificationNumber),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, iepcData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Engine_RatedPower, iepcData.R85RatedPower.ConvertToKiloWatt().ToXMLFormat(0)));
+				//new XElement(_mrf + "MaxContinuousPower",(iepcData.ContinuousTorque*iepcData.ContinuousTorqueSpeed).ToXMLFormat()),
+
+			var voltageLevels = new XElement(_mrf + "VoltageLevels");
+			iepcXElement.Add(voltageLevels);
+
+			foreach (var electricMotorVoltageLevel in iepcData.VoltageLevels) {
+				var voltageLevel = new XElement(_mrf + XMLNames.ElectricMachine_VoltageLevel,
+					electricMotorVoltageLevel.VoltageLevel == null
+						? null
+						: new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)),
+					new XElement(_mrf + "MaxContinuousPower",
+						(electricMotorVoltageLevel.ContinuousTorque * electricMotorVoltageLevel.ContinuousTorqueSpeed)
+						.ToXMLFormat(0)));
+
+
+				voltageLevels.Add(voltageLevel);
+			}
+				
+			iepcXElement.Add(
+				new XElement(_mrf + "NrOfGears", iepcData.Gears.Count),
+				new XElement(_mrf + "LowestTotalTransmissionRatio", (iepcData.Gears.OrderByDescending(g => g.GearNumber).First().Ratio
+																	* inputData.JobInputData.Vehicle.Components.AxleGearInputData.Ratio).ToXMLFormat(3)),
+				new XElement(_mrf + XMLNames.IEPC_DifferentialIncluded, iepcData.DifferentialIncluded),
+				new XElement(_mrf + XMLNames.IEPC_DesignTypeWheelMotor, iepcData.DesignTypeWheelMotor),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod, iepcData.CertificationMethod)
+			);
+
+
+			return iepcXElement;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFLorryAuxiliaryTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFLorryAuxiliaryTypes.cs
new file mode 100644
index 0000000000000000000000000000000000000000..110932396dfc5dd988355bc201666869b6df0ef7
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFLorryAuxiliaryTypes.cs
@@ -0,0 +1,60 @@
+using System.Linq;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+	public interface IMRFLorryAuxiliariesType
+	{
+		XElement GetXmlType(IAuxiliariesDeclarationInputData auxData);
+	}
+	internal class MRFConventionalLorryAuxiliariesType : AbstractMrfXmlType, IMRFLorryAuxiliariesType
+	{
+		public MRFConventionalLorryAuxiliariesType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+		public XElement GetXmlType(IAuxiliariesDeclarationInputData auxData)
+		{
+			var fanData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.Fan);
+			var steeringPumpData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.SteeringPump);
+			var electricSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.ElectricSystem);
+			var pneumaticSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.PneumaticSystem);
+
+			return new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				new XElement(_mrf + "CoolingFanTechnology",
+					string.Join("\n", fanData.Technology)),
+				new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData.Technology)),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, string.Join("\n", pneumaticSystemData.Technology))),
+				new XElement(_mrf + XMLNames.BusAux_ElectricSystem, new XElement(_mrf + "LEDHeadLights", electricSystemData.Technology.Contains("Standard technology - LED headlights, all"))));
+		}
+	}
+
+
+	internal class MRFHEV_LorryAuxiliariesType : MRFConventionalLorryAuxiliariesType
+	{
+		public MRFHEV_LorryAuxiliariesType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+	}
+
+	internal class MRFPEV_LorryAuxiliariesType : AbstractMrfXmlType, IMRFLorryAuxiliariesType
+	{
+		public MRFPEV_LorryAuxiliariesType(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Implementation of IMRFLorryAuxiliariesType
+
+		public XElement GetXmlType(IAuxiliariesDeclarationInputData auxData)
+		{
+			
+			var steeringPumpData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.SteeringPump);
+			var electricSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.ElectricSystem);
+			var pneumaticSystemData = auxData.Auxiliaries.Single(aux => aux.Type == AuxiliaryType.PneumaticSystem);
+
+			return new XElement(_mrf + XMLNames.Component_Auxiliaries,
+				new XElement(_mrf + "SteeringPumpTechnology", string.Join("\n", steeringPumpData.Technology)),
+				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem, new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, string.Join("\n", pneumaticSystemData.Technology))),
+				new XElement(_mrf + XMLNames.BusAux_ElectricSystem, new XElement(_mrf + "LEDHeadLights", electricSystemData.Technology.Contains("Standard technology - LED headlights, all"))));
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFPneumaticSystemType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFPneumaticSystemType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..dddbd5772db79c72521df796d406811a1c80af2e
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFPneumaticSystemType.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b467210b32094e1cfb89ca2d7e7715d46efd6b14
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    internal class MrfreessSpecificationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public MrfreessSpecificationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var reessElements = inputData.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements;
+
+			var result = new XElement(_mrf + "REESSSpecifications");
+
+			foreach (var electricStorage in reessElements.OrderBy((element) => element.StringId)) {
+				if (electricStorage.REESSPack.StorageType == REESSType.Battery &&
+					electricStorage.REESSPack is IBatteryPackDeclarationInputData battery) {
+					result.Add(new XElement(_mrf + XMLNames.ElectricEnergyStorage_Battery,
+						new XAttribute("stringId", electricStorage.StringId),
+						new XElement(_mrf + XMLNames.Component_Model, battery.Model),
+						new XElement(_mrf + XMLNames.Component_CertificationNumber, battery.CertificationNumber),
+						new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, battery.DigestValue?.DigestValue ?? ""),
+						new XElement(_mrf + XMLNames.BusAux_ElectricSystem_NominalVoltage, BatterySOCReader.Create(battery.VoltageCurve).Lookup(0.5).ToXMLFormat(0)),
+						new XElement(_mrf + "TotalStorageCapacity", battery.TotalStorageCapacity().ValueAsUnit("kWh", 0)),
+						new XElement(_mrf + "TotalUsableCapacityInSimulation", battery.TotalUsableCapacityInSimulation().ValueAsUnit("kWh"), 0),
+						new XElement(_mrf + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat())
+						)
+					);
+				} else if (electricStorage.REESSPack.StorageType == REESSType.SuperCap &&
+						electricStorage.REESSPack is ISuperCapDeclarationInputData superCap) {
+					result.Add(new XElement(_mrf + XMLNames.ElectricEnergyStorage_Capacitor,
+							new XElement(_mrf + XMLNames.Component_Model, superCap.Model),
+							new XElement(_mrf + XMLNames.Component_CertificationNumber, superCap.CertificationNumber),
+							new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue,
+								superCap.DigestValue?.DigestValue ?? ""),
+							new XElement(_mrf + XMLNames.Capacitor_Capacitance, superCap.Capacity.ToXMLFormat()),
+							new XElement(_mrf + XMLNames.Capacitor_MinVoltage, superCap.MinVoltage.ToXMLFormat(2)),
+							new XElement(_mrf + XMLNames.Capacitor_MaxVoltage, superCap.MaxVoltage.ToXMLFormat(2))
+						)
+					);
+				} else {
+					throw new VectoException("Invalid REESS type");
+				}
+			}
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFRetarderType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFRetarderType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..30242b960407b54b613bfdb0d948a8f51bbd7759
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFRetarderType.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    internal class RetarderTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public RetarderTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var retarderData = inputData.JobInputData.Vehicle.Components.RetarderInputData;
+			var iepcData = inputData.JobInputData.Vehicle.Components.IEPC;
+			var retarderPossible = iepcData == null || !iepcData.DesignTypeWheelMotor;
+			if (retarderData == null || !retarderPossible) {
+				return null;
+			}
+			var result = new XElement(_mrf + XMLNames.Component_Retarder,
+                new XElement(_mrf + XMLNames.Vehicle_RetarderType,
+                    retarderData.Type.ToXMLFormat()));
+			if (retarderData.Type.IsDedicatedComponent()) {
+				result.Add(new XElement(_mrf + XMLNames.Component_Model,
+						inputData.JobInputData.Vehicle.Components.RetarderInputData.Model),
+					new XElement(_mrf + XMLNames.Component_CertificationNumber, retarderData.CertificationNumber),
+					new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue,
+						retarderData.DigestValue?.DigestValue ?? ""),
+					new XElement(_mrf + XMLNames.Component_CertificationMethod,
+						retarderData.CertificationMethod.ToXMLFormat()));
+			}
+
+			return result;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueConverterType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueConverterType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a55aa967d89811f413f1dd7e4bb9bb4c9f29ab18
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueConverterType.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    public class TorqueConverterTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public TorqueConverterTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var torqueConverterInputData = inputData.JobInputData.Vehicle.Components.TorqueConverterInputData;
+			if (torqueConverterInputData == null) {
+				return null;
+			}
+			return new XElement(_mrf + XMLNames.Component_TorqueConverter,
+				new XElement(_mrf + XMLNames.Component_Model, torqueConverterInputData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationNumber,
+					torqueConverterInputData.CertificationNumber),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, torqueConverterInputData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod,
+					torqueConverterInputData.CertificationMethod.ToXMLFormat()));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..628de75510d7bb823c12966c8b459d2ad3c1e939
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+    internal class TorqueLimitationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+    {
+
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			if (inputData.JobInputData.Vehicle.TorqueLimits == null || inputData.JobInputData.Vehicle.TorqueLimits.Count == 0) {
+
+				return null;
+			}
+			var torqueLimitsElement = new XElement(_mrf + "EngineTorqueLimitations");
+
+			var maxEngineTorque = inputData.JobInputData.Vehicle.Components.EngineInputData.MaxTorqueDeclared;
+			foreach (var torqueLimitInputData in inputData.JobInputData.Vehicle.TorqueLimits) {
+				var value = (torqueLimitInputData.MaxTorque / maxEngineTorque).Value();
+				torqueLimitsElement.Add(new XElement(_mrf + "EngineTorqueLimit",
+					new XAttribute("Gear", torqueLimitInputData.Gear), value.ValueAsUnit("%", 0)
+					));
+			}
+
+			return torqueLimitsElement;
+		}
+
+
+
+		public TorqueLimitationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..23cac4bece1c0f1d169132477f3664fbdc43b269
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
+{
+    public class TransmissionTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+	{
+		public TransmissionTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleComponents = inputData.JobInputData.Vehicle.Components;
+			var result = new XElement(_mrf + XMLNames.Component_Transmission,
+				new XElement(_mrf + XMLNames.Component_Model, vehicleComponents.GearboxInputData.Model),
+				new XElement(_mrf + XMLNames.Component_CertificationNumber,
+					vehicleComponents.GearboxInputData.CertificationNumber),
+				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue,
+					vehicleComponents.GearboxInputData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod, vehicleComponents.GearboxInputData.CertificationMethod.ToXMLFormat()),
+				new XElement(_mrf + "Type",
+					vehicleComponents.GearboxInputData.Type.ToXMLFormat()),
+				new XElement(_mrf + "NrOfGears", vehicleComponents.GearboxInputData.Gears.Count),
+				new XElement(_mrf + "FinalGearRatio",
+					vehicleComponents.GearboxInputData.Gears.Last().Ratio.ToXMLFormat(3)),
+				//new XElement(_mrf + XMLNames.Vehicle_RetarderType,
+				//	vehicleComponents.RetarderInputData.Type.ToXMLFormat()),
+				(vehicleComponents.PTOTransmissionInputData != null ? new XElement(_mrf + "PowerTakeOff",
+					vehicleComponents.PTOTransmissionInputData.PTOTransmissionType != "None") : null));
+			return result;
+		}
+
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/IMRFXMLType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/IMRFXMLType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..8506e8653de1beb12462d60c81f2b0d639e27622
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/IMRFXMLType.cs
@@ -0,0 +1,11 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+    public interface IXmlTypeWriter
+	{
+		XElement GetElement(IDeclarationInputDataProvider inputData);
+
+	}
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..9fc18c83cd96f50af9923ff94d50fba532f9b093
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
@@ -0,0 +1,540 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
+{
+    public abstract class VehicleTypeWriter : AbstractMrfXmlType, IXmlTypeWriter
+    {
+		
+
+		public VehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		public abstract XElement GetElement(IDeclarationInputDataProvider inputData);
+	}
+
+
+	public class ConventionalLorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public ConventionalLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMRFComponentWriter
+
+		#endregion
+
+		#region Overrides of AbstractMRFComponentWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetConventionalLorryVehicleOutputGroup().GetElements(inputData),
+
+				_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
+				_mrfFactory.GetConventionalLorryComponentsType().GetElement(inputData)
+
+
+
+
+				);
+				
+		}
+
+		#endregion
+	}
+
+	public class HevPxIhpcLorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevPxIhpcLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMRFComponentWriter
+		#endregion
+
+		#region Overrides of AbstractMRFComponentWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
+				_mrfFactory.GetHEV_Px_IHCP_LorryComponentsType().GetElement(inputData)
+				
+				
+				);
+		}
+
+		#endregion
+	}
+
+	public class HevS2LorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevS2LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData),
+				//_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
+				_mrfFactory.GetHEV_S2_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevS3LorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevS3LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_S3_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevS4LorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevS4LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_S4_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevIepcSLorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevIepcSLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_IEPC_S_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevE2LorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevE2LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = inputData.JobInputData.Vehicle;
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_E2_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevE3LorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevE3LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_E3_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+	public class PevE4LorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevE4LorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_E4_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevIEPCLorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevIEPCLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_lorryVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_IEPC_S_LorryComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class ExemptedLorryVehicleTypeWriter : VehicleTypeWriter
+	{
+		public ExemptedLorryVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of VehicleTypeWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer),
+				new XElement(_mrf + XMLNames.ManufacturerAddress, vehicle.ManufacturerAddress),
+				_mrfFactory.GetGeneralVehicleOutputGroup().GetElements(vehicle),
+				new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicle.SleeperCab),
+				new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle),
+				new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology),
+				new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_kW))
+			);
+		}
+
+		#endregion
+	}
+
+
+	public class ConventionalPrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public ConventionalPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicle = inputData.JobInputData.Vehicle;
+			var dualFuel = vehicle.Components.EngineInputData.EngineModes.Any(x => x.Fuels.Count > 1);
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData),
+				new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, dualFuel),
+				_mrfFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS),
+				_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
+				_mrfFactory.GetConventional_PrimaryBusComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+
+	public class HevPxIhpcPrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevPxIhpcPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
+				_mrfFactory.GetHEV_Px_IHPC_PrimaryBusComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class HevS2PrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevS2PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_S2_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevS3PrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevS3PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_S3_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+	public class HevS4PrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevS4PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_S4_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevIepcSPrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevIepcSPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEV_IEPC_S_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevE2PrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevE2PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_E2_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevE3PrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevE3PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_E3_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevE4PrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevE4PrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_E4_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class PevIepcPrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevIepcPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEV_IEPC_PrimaryBusComponentsType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class ExemptedPrimaryBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public ExemptedPrimaryBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of VehicleTypeWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetExemptedPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData),
+				new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology),
+				new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_kW))
+			);
+		}
+
+		#endregion
+	}
+
+	public class ConventionalCompletedBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public ConventionalCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputdata == null) {
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			return new XElement(_mrf + XMLNames.Component_Vehicle, 
+				_mrfFactory.GetConventionalCompletedBusGeneralVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetConventionalADASType().GetXmlType(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle.ADAS),
+				_mrfFactory.GetConventional_CompletedBusComponentsType().GetElement(inputData)
+				);
+
+		}
+
+		#endregion
+	}
+
+	public class HevCompletedBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public HevCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputdata == null) {
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetHEVCompletedBusGeneralVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetHEVADASType().GetXmlType(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle.ADAS),
+				_mrfFactory.GetHEV_CompletedBusComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class PevCompletedBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public PevCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of AbstractMrfXmlType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputdata == null) {
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			return new XElement(_mrf + XMLNames.Component_Vehicle,
+				_mrfFactory.GetPEVCompletedBusGeneralVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetPEVADASType().GetXmlType(multistageInputdata.JobInputData.ConsolidateManufacturingStage.Vehicle.ADAS),
+				_mrfFactory.GetPEV_CompletedBusComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class ExemptedCompletedBusVehicleTypeWriter : VehicleTypeWriter
+	{
+		public ExemptedCompletedBusVehicleTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
+
+		#region Overrides of VehicleTypeWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var multistageInputdata = inputData as IMultistepBusInputDataProvider;
+			if (multistageInputdata == null)
+			{
+				throw new ArgumentException($"inputdata must implement {nameof(IMultistepBusInputDataProvider)}");
+			}
+			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(
+				new XElement(_mrf + XMLNames.CorrectedActualMass,
+					consolidatedVehicleData.CurbMassChassis.ToXMLFormat(0)),
+				new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, consolidatedVehicleData.ZeroEmissionVehicle),
+				new XElement(_mrf + XMLNames.Vehicle_RegisteredClass,
+					consolidatedVehicleData.RegisteredClass.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.Bus_NumberPassengersUpperDeck,
+					consolidatedVehicleData.NumberPassengerSeatsUpperDeck +
+					consolidatedVehicleData.NumberPassengersStandingUpperDeck),
+				new XElement(_mrf + XMLNames.Bus_NumberPassengersLowerDeck,
+					consolidatedVehicleData.NumberPassengerSeatsLowerDeck +
+					consolidatedVehicleData.NumberPassengersStandingLowerDeck),
+				new XElement(_mrf + XMLNames.Vehicle_BodyworkCode, consolidatedVehicleData.VehicleCode.ToXMLFormat()),
+				new XElement(_mrf + XMLNames.Bus_LowEntry, consolidatedVehicleData.LowEntry)
+				);
+			//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/ManufacturerReport/XMLManufacturerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs
index dc29a872ee98c7cf7dc702ad78b372ab9445617c..770a98df0ab4644f95a18d3e83a0d8b762af591c 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 		{
 			_tankSystem = modelData.VehicleData.InputData.TankSystem;
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleCompletedBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleCompletedBusType"),
 				GetPrimaryVehicleInformation(),
 				new XElement(
 					tns + "CompletedVehicle",
@@ -115,7 +115,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			return new XElement(
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "error"),
-				new XAttribute(xsi + "type", "ResultErrorType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultErrorType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()),
 				GetSimulationParameters(specificResult),
 				content);
@@ -126,7 +126,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			return new XElement(
 				tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "success"),
-				new XAttribute(xsi + "type", "ResultCompletedVehicleSuccessType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ResultCompletedVehicleSuccessType"),
 				new XElement(tns + XMLNames.Report_Result_Mission, genericResult.Mission.ToXMLFormat()),
 				new XElement(tns + XMLNames.Report_ResultEntry_Distance, XMLHelper.ValueAsUnit(specificResult.Distance, XMLNames.Unit_km, 3)),
 				GetSimulationParametersPrimaryVehicle(primaryResult),
@@ -190,8 +190,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 					tns + XMLNames.Report_ResultEntry_TotalVehicleMass,
 					XMLHelper.ValueAsUnit(primaryResult.SimulationParameter.TotalVehicleMass, XMLNames.Unit_kg)),
 				new XElement(tns + XMLNames.Report_ResultEntry_Payload, XMLHelper.ValueAsUnit(primaryResult.SimulationParameter.Payload, XMLNames.Unit_kg)),
-				new XElement(tns + "PassengerCount", primaryResult.SimulationParameter.PassengerCount.ToMinSignificantDigits(3, 1)),
-				new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode)
+				new XElement(tns + "PassengerCount", primaryResult.SimulationParameter.PassengerCount.ToMinSignificantDigits(3, 1))
+				//new XElement(tns + XMLNames.Report_Result_FuelMode, primaryResult.SimulationParameter.FuelMode)
 			);
 		}
 
@@ -341,7 +341,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 		{
 			return new XElement(
 				tns + XMLNames.Vehicle_Components,
-				new XAttribute(xsi + "type", "ComponentsCompletedBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ComponentsCompletedBusType"),
 				GetAirDragDescription(modelData.AirdragData),
 				GetAuxiliariesDescription(modelData)
 			);
@@ -380,7 +380,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 				return new XElement(
 					tns + XMLNames.Component_Auxiliaries,
 					new XAttribute(XNamespace.Xmlns + auxPrefix, namespaceName),
-					new XAttribute(xsi + "type", $"{auxPrefix}:CompletedVehicleAuxiliaryDataDeclarationType"),
+					new XAttribute(xsi + XMLNames.XSIType, $"{auxPrefix}:CompletedVehicleAuxiliaryDataDeclarationType"),
 					XElement.Parse(busAuxXML.InnerXml).Elements()
 				);
 			}
@@ -389,7 +389,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			return new XElement(
 				tns + XMLNames.Component_Auxiliaries,
 				new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName),
-				new XAttribute(xsi + "type", $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"),
+				new XAttribute(xsi + XMLNames.XSIType, $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"),
 				XElement.Parse(busAuxXML.InnerXml).Elements()
 			);
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs
index 39bc841a7a608484aae7fe04edda00dbf181e484..f203b0cbe518aee03b76023b226f76f27499967e 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedCompletedBus.cs
@@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleExemptedCompletedBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleExemptedCompletedBusType"),
 				GetPrimaryVehicleInformation(),
 				new XElement(
 					tns + "CompletedVehicle",
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs
index dff94b2e3fefe0d78cccdf729afb30b348d54295..de9ccd34d9c5be4da55f9c9104262c00864ac771 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExemptedTruck.cs
@@ -13,7 +13,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleExemptedTruckType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleExemptedTruckType"),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
 				new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs
index 0ffdd2282aede0b4e3f0109b14ec06fdfcf49c0e..96719d814625cb2129c51425d3dba6d34d7b1ab1 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportExeptedPrimaryBus.cs
@@ -19,7 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleExemptedPrimaryBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleExemptedPrimaryBusType"),
 				new XElement(vns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
 				new XElement(vns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
 				new XElement(vns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs
index d3011bc2e24c6ec332db6655ccb50769df229bce..986154b38828457d04593a2261f8b1398dd72608 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportPrimaryBus.cs
@@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehiclePrimaryBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehiclePrimaryBusType"),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
 				new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 		{
 			return new XElement(
 				tns + XMLNames.Vehicle_Components,
-				new XAttribute(xsi + "type", "ComponentsPrimaryBusType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ComponentsPrimaryBusType"),
 				GetEngineDescription(modelData.EngineData, fuelModes),
 				GetGearboxDescription(modelData.GearboxData),
 				GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
@@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 			return new XElement(
 				tns + XMLNames.Component_Auxiliaries,
 				new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName),
-				new XAttribute(xsi + "type", $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"),
+				new XAttribute(xsi + XMLNames.XSIType, $"{auxPrefix}:{busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name}"),
 				XElement.Parse(busAuxXML.InnerXml).Elements()
 			);
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs
index ab08dd4c1b8d78e741013f7f1533493f626b381a..52a7effd760fbbb06c64c7dfc42bbd26b15c9d08 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportTruck.cs
@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 		public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleTruckType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleTruckType"),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
 				new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
@@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			if (modelData.VehicleData.AxleConfiguration.AxlegearIncludedInGearbox()) {
 				return new XElement(
 					tns + XMLNames.Vehicle_Components,
-					new XAttribute(xsi + "type", "ComponentsTruckFWDType"),
+					new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckFWDType"),
 					GetEngineDescription(modelData.EngineData, fuelModes),
 					GetGearboxDescription(modelData.GearboxData, modelData.AxleGearData),
 					GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
@@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			}
 			return new XElement(
 				tns + XMLNames.Vehicle_Components,
-				new XAttribute(xsi + "type", "ComponentsTruckType"),
+				new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckType"),
 				GetEngineDescription(modelData.EngineData, fuelModes),
 				GetGearboxDescription(modelData.GearboxData),
 				GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
@@ -129,19 +129,5 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
 			return auxId + "Technology";
 		}
 
-		
-
-		
-
-		
-
-		
-
-		
-
-		
-		
-
-		
 	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
index c3e2338ebdb8c16e13072ea4fd625dfae4811249..826aee0066813c1df8857fbfe6f90e1b8a06e95d 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VTPReport/XMLVTPReport.cs
@@ -331,7 +331,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 						$"{rootNS} {AbstractXMLWriter.SchemaLocationBaseUrl}VTPReport.xsd"),
 					new XElement(
 						rootNS + "Data",
-						new XAttribute(xsi + "type", "VTPReportDataType"),
+						new XAttribute(xsi + XMLNames.XSIType, "VTPReportDataType"),
 						new XElement(GeneralPart),
 						new XElement(VehiclePart),
 						new XElement(DataIntegrityPart),
@@ -355,7 +355,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 				new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer),
 				new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress));
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehicleType"),
+				new XAttribute(xsi + XMLNames.XSIType, "VehicleType"),
 				new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName),
 				new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
 				new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()),
@@ -371,7 +371,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 				VehiclePart.Add(
 					new XElement(
 						tns + XMLNames.Vehicle_Components,
-						new XAttribute(xsi + "type", "ComponentsTruckFWDType"),
+						new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckFWDType"),
 						GetEngineDescription(modelData.EngineData, fuelModes),
 						GetGearboxDescription(modelData.GearboxData, modelData.AxleGearData.AxleGear.Ratio),
 						GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
@@ -385,7 +385,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 				VehiclePart.Add(
 					new XElement(
 						tns + XMLNames.Vehicle_Components,
-						new XAttribute(xsi + "type", "ComponentsTruckType"),
+						new XAttribute(xsi + XMLNames.XSIType, "ComponentsTruckType"),
 						GetEngineDescription(modelData.EngineData, fuelModes),
 						GetGearboxDescription(modelData.GearboxData),
 						GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistageReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistepIntermediateReport.cs
similarity index 84%
rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistageReport.cs
rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistepIntermediateReport.cs
index 8111f0f90327ad62916024eb1a0593f6d8343f86..c7773ea200500399a9b0cade1f6ed30247590072 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistageReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLMultistepIntermediateReport.cs
@@ -3,7 +3,7 @@ using TUGraz.VectoCore.Models.Simulation.Data;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile
 {
-	public interface IXMLMultistageReport
+	public interface IXMLMultistepIntermediateReport
 	{
 		void Initialize(VectoRunData modelData);
 		XDocument Report { get; }
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs
similarity index 86%
rename from VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs
rename to VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs
index f28672258a5e8043e12bedfe8736f3b5c85ba629..7cd02a7241e187c775828ec47bfc8d6bb121f46d 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLPrimaryVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/IXMLVehicleInformationFile.cs
@@ -5,11 +5,12 @@ using TUGraz.VectoCore.Models.Simulation.Data;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile
 {
-	public interface IXMLPrimaryVehicleReport
+	public interface IXMLVehicleInformationFile
 	{
 		void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
 		void WriteResult(XMLDeclarationReport.ResultEntry result);
 		void GenerateReport(XElement fullReportHash);
 		XDocument Report { get; }
+		XNamespace Tns { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFGroupWriter.cs
new file mode 100644
index 0000000000000000000000000000000000000000..96273458f05f0dace0dad629c893d7c5d08dcb6d
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFGroupWriter.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+    public abstract class AbstractVIFGroupWriter : IReportOutputGroup
+	{
+		protected readonly IVIFReportFactory _vifReportFactory;
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+
+
+		protected AbstractVIFGroupWriter(IVIFReportFactory vifReportFactory)
+		{
+			_vifReportFactory = vifReportFactory;
+		}
+
+		#region Implementation of IReportOutputGroup
+
+		public abstract IList<XElement> GetElements(IDeclarationInputDataProvider inputData);
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFXmlType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFXmlType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d6170e971d60e3629526e6fcb94eef9094efd7a5
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFXmlType.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public abstract class AbstractVIFXmlType
+	{
+
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+		protected XNamespace _v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3";
+		protected XNamespace _v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+		protected XNamespace _di = XNamespace.Get("http://www.w3.org/2000/09/xmldsig#");
+		
+
+
+		protected readonly IVIFReportFactory _vifFactory;
+
+		protected AbstractVIFXmlType(IVIFReportFactory vifFactory)
+		{
+			_vifFactory = vifFactory;
+		}
+
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b5bbe10ee0b220c73e09967aa6425c226331ba8b
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVehicleInformationFile.cs
@@ -0,0 +1,134 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Hashing;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoHashing;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public abstract class AbstractVehicleInformationFile : IXMLVehicleInformationFile
+	{
+		protected XNamespace _tns;
+
+		protected readonly IVIFReportFactory _vifFactory;
+
+
+		public static XNamespace VIF => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1");
+
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+		protected XNamespace _di = "http://www.w3.org/2000/09/xmldsig#";
+		protected XNamespace _v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0";
+		protected XNamespace _v21 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1";
+		protected XNamespace _v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+		protected XNamespace _v10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0";
+
+		public abstract string OutputDataType { get; }
+
+		protected XElement Vehicle { get; set; }
+		protected XElement Results { get; set; }
+
+		protected  List<XMLDeclarationReport.ResultEntry> _results = new List<XMLDeclarationReport.ResultEntry>();
+		protected XElement InputDataIntegrity;
+
+		protected AbstractVehicleInformationFile(IVIFReportFactory vifFactory)
+		{
+			_vifFactory = vifFactory;
+		}
+
+		protected abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData);
+		
+		#region Implementation of IXMLPrimaryVehicleReport
+
+		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			InitializeVehicleData(modelData.InputData);
+			Results = new XElement(VIF + XMLNames.Report_Results);
+			InputDataIntegrity = new XElement(VIF + XMLNames.Report_InputDataSignature,
+				modelData.InputDataHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputDataHash));
+
+		}
+
+		
+		public void WriteResult(XMLDeclarationReport.ResultEntry result)
+		{
+			_results.Add(result);
+		}
+
+		public virtual void GenerateReport(XElement fullReportHash)
+		{
+			var retVal = new XDocument(new XElement(VIF + XMLNames.VectoOutputMultistep,
+				new XAttribute(XNamespace.Xmlns + "di", _di),
+				new XAttribute(XNamespace.Xmlns + "xsi", _xsi.NamespaceName),
+				new XAttribute(XNamespace.Xmlns + "vif", VIF),
+				new XAttribute(XNamespace.Xmlns + "v1.0", _v10),
+				new XAttribute(XNamespace.Xmlns + "v2.0", _v20),
+				new XAttribute(XNamespace.Xmlns + "v2.1", _v21),
+				new XAttribute(XNamespace.Xmlns + "v2.3", _v23),
+				new XAttribute(XNamespace.Xmlns + "v2.4", _v24),
+				new XAttribute(_xsi + "schemaLocation", $"{_tns.NamespaceName} " + @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd"),
+				new XAttribute("xmlns", _tns),
+
+				GeneratePrimaryVehicle(fullReportHash)
+			));
+
+			Report = retVal;
+		}
+
+		public XDocument Report { get; protected set; }
+
+		public XNamespace Tns => _tns;
+
+        #endregion
+
+		protected virtual XElement GeneratePrimaryVehicle(XElement resultSignature)
+		{
+			var allSuccess = _results.All(x => x.Status == VectoRun.Status.Success);
+
+			var results = new XElement(Results);
+			results.AddFirst(new XElement(VIF + XMLNames.Report_Result_Status, allSuccess ? "success" : "error"));
+			var vehicleId = $"{VectoComponents.VectoPrimaryVehicleInformation.HashIdPrefix()}{XMLHelper.GetGUID()}";
+
+			var primaryVehicle = new XElement(VIF + XMLNames.Bus_PrimaryVehicle,
+				new XElement(VIF + XMLNames.Report_DataWrap,
+					new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
+					new XAttribute(_xsi + XMLNames.XSIType, "PrimaryVehicleDataType"),
+					Vehicle,
+					InputDataIntegrity,
+					new XElement(VIF + "ManufacturerRecordSignature", resultSignature),
+					Results,
+					XMLHelper.GetApplicationInfo(VIF)
+				)
+			);
+
+			var sigXElement = GetSignatureElement(primaryVehicle);
+			primaryVehicle.LastNode.Parent.Add(sigXElement);
+			return primaryVehicle;
+		}
+
+		protected XElement GetSignatureElement(XElement stage)
+		{
+			var stream = new MemoryStream();
+			var writer = new XmlTextWriter(stream, Encoding.UTF8);
+			stage.WriteTo(writer);
+			writer.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
+
+			return new XElement(VIF + XMLNames.DI_Signature,
+				VectoHash.Load(stream).ComputeXmlHash
+					(VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod));
+		}
+
+	}
+}
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
new file mode 100644
index 0000000000000000000000000000000000000000..c1ed87270a122b4deacb823604872ad012f9c06e
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs
@@ -0,0 +1,169 @@
+using System.Collections.Generic;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public interface IXmlMultistepTypeWriter
+	{
+		XElement GetElement(IMultistageVIFInputData inputData);
+	}
+
+	public interface IReportMultistepCompletedBusOutputGroup
+	{
+		IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider);
+	}
+
+	public interface IReportMultistepCompletedBusTypeWriter
+	{
+		XElement GetElement(IMultistageVIFInputData inputData);
+
+	}
+
+	public interface IVIFReportInterimFactory
+	{
+		IXMLMultistepIntermediateReport GetInterimVIFReport(VehicleCategory vehicleType,
+			VectoSimulationJobType jobType, ArchitectureID archId, bool exempted, bool iepc, bool ihpc);
+
+		#region Vehicle
+
+		IXmlMultistepTypeWriter GetConventionalVehicleType();
+
+		IXmlMultistepTypeWriter GetHEVVehicleType();
+
+		IXmlMultistepTypeWriter GetPEVVehicleType();
+
+		IXmlMultistepTypeWriter GetIEPCVehicleType();
+
+		IXmlMultistepTypeWriter GetExemptedVehicleType();
+
+		#endregion
+
+		IReportMultistepCompletedBusOutputGroup GetCompletedBusGeneralParametersGroup();
+		IReportMultistepCompletedBusOutputGroup GetCompletedBusParametersGroup();
+		IReportMultistepCompletedBusOutputGroup GetCompletedBusPassengerCountGroup();
+		IReportMultistepCompletedBusOutputGroup GetCompletedBusDimensionsGroup();
+
+		IReportMultistepCompletedBusTypeWriter GetConventionalInterimComponentsType();
+
+		IReportMultistepCompletedBusTypeWriter GetxEVInterimComponentsType();
+
+
+		IReportMultistepCompletedBusTypeWriter GetInterimAirdragType();
+		IReportMultistepCompletedBusTypeWriter GetInterimConventionalAuxiliariesType();
+
+		IReportMultistepCompletedBusTypeWriter GetInterimxEVAuxiliariesType();
+
+		IVIFFAdasType GetConventionalInterimADASType();
+
+		IVIFFAdasType GetHEVInterimADASType();
+
+		IVIFFAdasType GetPEVInterimADASType();
+
+		IVIFFAdasType GetIEPCInterimADASType();
+
+	}
+
+
+	public interface IVIFReportFactory
+	{
+		IXMLVehicleInformationFile GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType,
+			ArchitectureID archId, bool exempted, bool iepc, bool ihpc);
+
+		
+		#region Vehicle
+
+		IXmlTypeWriter GetConventionalVehicleType();
+		IXmlTypeWriter GetHevIepcSVehicleType();
+		IXmlTypeWriter GetHevPxVehicleType();
+		IXmlTypeWriter GetHevS2VehicleType();
+		IXmlTypeWriter GetHevS3VehicleType();
+		IXmlTypeWriter GetHevS4VehicleType();
+		IXmlTypeWriter GetIepcVehicleType();
+		IXmlTypeWriter GetPevE2VehicleType();
+		IXmlTypeWriter GetPevE3VehicleType();
+		IXmlTypeWriter GetPevE4VehicleType();
+
+		IXmlTypeWriter GetPevIEPCVehicleType();
+
+		IXmlTypeWriter GetExemptedVehicleType();
+
+
+		#endregion
+
+		#region Componenet Group
+
+		IXmlTypeWriter GetConventionalComponentType();
+		IXmlTypeWriter GetHevIepcSComponentVIFType();
+		IXmlTypeWriter GetHevPxComponentVIFType();
+		IXmlTypeWriter GetHevS2ComponentVIFType();
+		IXmlTypeWriter GetHevS3ComponentVIFType();
+		IXmlTypeWriter GetHevS4ComponentVIFType();
+		IXmlTypeWriter GetPevE2ComponentVIFType();
+		IXmlTypeWriter GetPevE3ComponentVIFType();
+		IXmlTypeWriter GetPevE4ComponentVIFType();
+		IXmlTypeWriter GetPevIEPCComponentVIFType();
+
+		#endregion
+
+
+		#region Components
+
+		IVIFFAdasType GetConventionalADASType();
+		IVIFFAdasType GetHEVADASType();
+		IVIFFAdasType GetPEVADASType();
+		IVIFFAdasType GetIEPCADASType();
+
+		IXmlTypeWriter GetAngelDriveType();
+
+		IXmlTypeWriter GetRetarderType();
+		IXmlTypeWriter GetAuxiliaryType();
+		IXmlTypeWriter GetAuxiliaryHevSType();
+
+		IXmlTypeWriter GetAuxiliaryIEPC_SType();
+
+		IXmlTypeWriter GetAuxiliaryHevPType();
+		IXmlTypeWriter GetAuxiliaryIEPCType();
+		IXmlTypeWriter GetAuxiliaryPEVType();
+		IXmlTypeWriter GetAxlegearType();
+		IXmlTypeWriter GetAxleWheelsType();
+		IXmlTypeWriter GetBoostingLimitationsType();
+		IXmlTypeWriter GetElectricEnergyStorageType();
+		IXmlTypeWriter GetElectricMachineGENType();
+		IXmlElectricMachineSystemType GetElectricMachineSystemType();
+		IXmlTypeWriter GetElectricMachineType();
+		IXmlTypeWriter GetElectricMotorTorqueLimitsType();
+		IXmlTypeWriter GetEngineType();
+		IXmlTypeWriter GetTorqueConvertType();
+		IXmlTypeWriter GetIepcType();
+		IXmlTypeWriter GetTorqueLimitsType();
+		IXmlTypeWriter GetTransmissionType();
+
+		#endregion
+
+
+		#region Parameter Groups
+
+		IReportOutputGroup GetConventionalVehicleGroup();
+		IReportOutputGroup GetPrimaryBusGeneralParameterGroup();
+		IReportOutputGroup GetPrimaryBusChassisParameterGroup();
+		IReportOutputGroup GetPrimaryBusRetarderParameterGroup();
+		IReportOutputGroup GetPrimaryBusXevParameterGroup();
+
+		IReportOutputGroup GetHevIepcSVehicleParameterGroup();
+		IReportOutputGroup GetHevSxVehicleParameterGroup();
+		IReportOutputGroup GetIepcVehicleParameterGroup();
+		IReportOutputGroup GetPevExVehicleParmeterGroup();
+		IReportOutputGroup GetPevIEPCVehicleParmeterGroup();
+		IReportOutputGroup GetHevPxVehicleParameterGroup();
+
+		IReportOutputGroup GetExemptedVehicleParameterGroup();
+
+		#endregion
+
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponentVIFType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponentVIFType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cfc23d3ec1232081a00402d14b5585764c06aa67
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponentVIFType.cs
@@ -0,0 +1,77 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public abstract class CompletedComponentVIFType : IReportMultistepCompletedBusTypeWriter
+	{
+		protected readonly IVIFReportInterimFactory _vifReportFactory;
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		protected CompletedComponentVIFType(IVIFReportInterimFactory vifReportFactory)
+		{
+			_vifReportFactory = vifReportFactory;
+		}
+
+		#region Implementation of IReportMultistepCompletedBusTypeWriter
+
+		public abstract XElement GetElement(IMultistageVIFInputData inputData);
+
+		#endregion
+	}
+
+
+	public class ConventionalComponentsInterimVIFType : CompletedComponentVIFType
+	{
+		public ConventionalComponentsInterimVIFType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of CompletedComponentVIFType
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var airDrag = _vifReportFactory.GetInterimAirdragType().GetElement(inputData);
+			var auxiliaries = _vifReportFactory.GetInterimConventionalAuxiliariesType().GetElement(inputData);
+
+			if (airDrag == null && auxiliaries == null) {
+				return null;
+			}
+
+			return new XElement(_v24 + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Components_Conventional_CompletedBusType"),
+				airDrag,
+				auxiliaries);
+
+		}
+
+		#endregion
+	}
+
+
+	public class XEVComponentsInterimVIFType : CompletedComponentVIFType
+	{
+		public XEVComponentsInterimVIFType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of CompletedComponentVIFType
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var airDrag = _vifReportFactory.GetInterimAirdragType().GetElement(inputData);
+			var auxiliaries = _vifReportFactory.GetInterimxEVAuxiliariesType().GetElement(inputData);
+
+			if (airDrag == null && auxiliaries == null) {
+				return null;
+			}
+
+			return new XElement(_v24 + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Components_xEV_CompletedBusType"),
+				airDrag,
+				auxiliaries);
+
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAirdragType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAirdragType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..03c65264aa420e6eed82a20d3078292739ec6d1b
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAirdragType.cs
@@ -0,0 +1,126 @@
+using System;
+using System.Xml;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.Hashing;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents
+{
+	public class AirdragInterimType : IReportMultistepCompletedBusTypeWriter
+	{
+		protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#";
+		protected XNamespace v10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0";
+		protected XNamespace v20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0";
+		protected XNamespace v23 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3";
+		protected XNamespace v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+
+		public AirdragInterimType() {}
+
+		#region Implementation of IReportMultistepCompletedBusTypeWriter
+
+		public XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var airdrag = inputData.VehicleInputData.Components?.AirdragInputData;
+			if (airdrag != null && inputData.VehicleInputData.AirdragModifiedMultistep != false) {
+				return GetAirdragElement(airdrag);
+			}
+
+			return inputData.VehicleInputData.AirdragModifiedMultistep == true
+				? GetBusAirdragUseStandardValues()
+				: null;
+		}
+
+		#endregion
+
+		protected XElement GetAirdragElement(XMLDeclarationAirdragDataProviderV10 airdrag)
+		{
+			var retVal = new XElement(v24 + XMLNames.Component_AirDrag);
+			var tmp = XElement.Load(airdrag.XMLSource.CreateNavigator().ReadSubtree());
+			retVal.Add(tmp.Elements());
+			return retVal;
+		}
+
+		protected XElement GetAirdragElement(XMLDeclarationAirdragDataProviderV20 airdrag)
+		{
+			var retVal = new XElement(v24 + XMLNames.Component_AirDrag, 
+				new XAttribute("xmlns", v20.NamespaceName));
+			var tmp = XElement.Load(airdrag.XMLSource.CreateNavigator().ReadSubtree());
+			retVal.Add(tmp.Elements());
+			return retVal;
+		}
+
+		protected XElement GetAirdragElement(XMLDeclarationAirdragDataProviderV24 airdrag)
+		{
+			var retVal = new XElement(v24 + XMLNames.Component_AirDrag);
+			var tmp = XElement.Load(airdrag.XMLSource.CreateNavigator().ReadSubtree());
+			retVal.Add(tmp.Elements());
+			return retVal;
+		}
+
+        protected XElement GetAirdragElement(IAirdragDeclarationInputData airdrag)
+        {
+			switch (airdrag) {
+				case XMLDeclarationAirdragDataProviderV20 av20:
+					return GetAirdragElement(av20);
+				case XMLDeclarationAirdragDataProviderV24 av24:
+					return GetAirdragElement(av24);
+				case XMLDeclarationAirdragDataProviderV10 av10:
+					return GetAirdragElement(av10);
+			}
+            throw new VectoException(
+                $"Specific implementation for Airdrag Data (Interim Stage) missing {airdrag.GetType().Name}");
+
+            //	//if (airdrag == null)
+            //	//	return null;
+
+            //	//var dataAndSig =
+            //	//	airdrag.XMLSource.SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.Component_AirDrag));
+            //	//var dataXmlType = dataAndSig.FirstChild.SchemaInfo.SchemaAttribute.QualifiedName;
+
+            //	//return null;
+            //	//XmlNode airdragNode = null;
+            //	//if (airdrag is AbstractCommonComponentType)
+            //	//    airdragNode = (airdrag as AbstractCommonComponentType).XMLSource;
+            //	//else {
+            //	//    var type = airdrag.GetType();
+            //	//    var property = type.GetProperty(nameof(AbstractCommonComponentType.XMLSource));
+            //	//    if (property != null)
+            //	//        airdragNode = (XmlNode)property.GetValue(airdrag, null);
+            //	//}
+
+            //	//if (airdragNode == null)
+            //	//    return null;
+
+            //	//var dataNode = airdragNode.SelectSingleNode(".//*[local-name()='Data']");
+            //	//var signatureNode = airdragNode.SelectSingleNode(".//*[local-name()='Signature']");
+
+            //	//if (dataNode == null)
+            //	//    throw new VectoException("Data node of airdrag component is null!");
+            //	//if (signatureNode == null)
+            //	//    throw new VectoException("Signature node of the given airdrag component is null!");
+
+            //	//return dataNode.NamespaceURI == v10.NamespaceName
+            //	//    ? GetAirdragXMLElementV1(dataNode, signatureNode)
+            //	//    : GetAirdragXMLElementV2(dataNode, signatureNode);
+        }
+
+        protected XElement GetBusAirdragUseStandardValues()
+		{
+			var id = $"{VectoComponents.Airdrag.HashIdPrefix()}{XMLHelper.GetGUID()}";
+
+			return new XElement(v24 + XMLNames.Component_AirDrag,
+				new XElement(v20 + XMLNames.ComponentDataWrapper,
+					new XAttribute(xsi + XMLNames.Attr_Type, "AirDragModifiedUseStandardValueType"),
+					new XAttribute(XMLNames.Component_ID_Attr, id)
+				),
+				new XElement(v20 + XMLNames.DI_Signature, XMLHelper.CreateDummySig(di)));
+		}
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAuxiliaryType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAuxiliaryType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a6abe6982eb10be5bc60edfd4882354f470810e7
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimAuxiliaryType.cs
@@ -0,0 +1,150 @@
+using System.Xml.Linq;
+using NLog.LayoutRenderers;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents
+{
+	public abstract class InterimVIFAuxiliaryType : IReportMultistepCompletedBusTypeWriter
+	{
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		protected readonly IVIFReportInterimFactory _vifFactory;
+
+		protected InterimVIFAuxiliaryType(IVIFReportInterimFactory vifFactory)
+		{
+			_vifFactory = vifFactory;
+		}
+
+		#region Implementation of IReportMultistepCompletedBusTypeWriter
+
+		public abstract XElement GetElement(IMultistageVIFInputData inputData);
+
+		#endregion
+	}
+
+	public class ConventionalInterimAuxiliaryType : InterimVIFAuxiliaryType
+	{
+		public ConventionalInterimAuxiliaryType(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+		protected virtual string XMLType => "AUX_Conventional_CompletedBusType";
+
+		#region Overrides of InterimVIFAuxiliaryType
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var busAux = inputData.VehicleInputData.Components?.BusAuxiliaries;
+			if (busAux == null)
+				return null;
+
+			var electricSystemEntry = GetElectricSystem(busAux.ElectricConsumers);
+			var hvacEntry = GetHVAC(busAux.HVACAux);
+
+			if (electricSystemEntry == null && hvacEntry == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.Component_Auxiliaries,
+				new XElement(_v24 + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.Attr_Type, XMLType),
+					electricSystemEntry != null
+						? GetElectricSystem(busAux.ElectricConsumers) : null,
+					hvacEntry != null
+						? GetHVAC(busAux.HVACAux) : null
+				));
+		}
+
+		#endregion
+
+		protected virtual XElement GetElectricSystem(IElectricConsumersDeclarationData electricConsumer)
+		{
+			if (electricConsumer == null)
+				return null;
+
+			if (electricConsumer.InteriorLightsLED == null && electricConsumer.DayrunninglightsLED == null &&
+				electricConsumer.PositionlightsLED == null && electricConsumer.BrakelightsLED == null &&
+				electricConsumer.HeadlightsLED == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.BusAux_ElectricSystem,
+				new XElement(_v24 + XMLNames.BusAux_LEDLights,
+					electricConsumer.InteriorLightsLED != null
+						? new XElement(_v24 + XMLNames.Bus_Interiorlights, electricConsumer.InteriorLightsLED) : null,
+					electricConsumer.DayrunninglightsLED != null
+						? new XElement(_v24 + XMLNames.Bus_Dayrunninglights, electricConsumer.DayrunninglightsLED) : null,
+					electricConsumer.PositionlightsLED != null
+						? new XElement(_v24 + XMLNames.Bus_Positionlights, electricConsumer.PositionlightsLED) : null,
+					electricConsumer.BrakelightsLED != null
+						? new XElement(_v24 + XMLNames.Bus_Brakelights, electricConsumer.BrakelightsLED) : null,
+					electricConsumer.HeadlightsLED != null
+						? new XElement(_v24 + XMLNames.Bus_Headlights, electricConsumer.HeadlightsLED) : null
+				));
+		}
+
+		protected virtual XElement GetHVAC(IHVACBusAuxiliariesDeclarationData hvac)
+		{
+			if (hvac == null)
+				return null;
+
+			if (hvac.SystemConfiguration == null &&
+				hvac.HeatPumpTypeCoolingDriverCompartment == null && hvac.HeatPumpTypeHeatingDriverCompartment == null &&
+				hvac.HeatPumpTypeCoolingPassengerCompartment == null && hvac.HeatPumpTypeHeatingPassengerCompartment == null &&
+				hvac.AuxHeaterPower == null && hvac.DoubleGlazing == null &&
+				hvac.AdjustableAuxiliaryHeater == null && hvac.SeparateAirDistributionDucts == null &&
+				hvac.WaterElectricHeater == null && hvac.AirElectricHeater == null && hvac.OtherHeatingTechnology == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.BusAux_HVAC,
+				hvac.SystemConfiguration != null
+					? new XElement(_v24 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.ToXmlFormat()) : null,
+				hvac.HeatPumpTypeCoolingDriverCompartment != null && hvac.HeatPumpTypeHeatingDriverCompartment != null
+					? new XElement(_v24 + XMLNames.Bus_HeatPumpTypeDriver,
+						new XElement(_v24 + XMLNames.BusHVACHeatPumpCooling, hvac.HeatPumpTypeCoolingDriverCompartment.GetLabel()),
+						new XElement(_v24 + XMLNames.BusHVACHeatPumpHeating, hvac.HeatPumpTypeHeatingDriverCompartment.GetLabel())) : null,
+				hvac.HeatPumpTypeCoolingPassengerCompartment != null && hvac.HeatPumpTypeHeatingPassengerCompartment != null
+					? new XElement(_v24 + XMLNames.Bus_HeatPumpTypePassenger,
+						new XElement(_v24 + XMLNames.BusHVACHeatPumpCooling, hvac.HeatPumpTypeCoolingPassengerCompartment.GetLabel()),
+						new XElement(_v24 + XMLNames.BusHVACHeatPumpHeating, hvac.HeatPumpTypeHeatingPassengerCompartment.GetLabel())) : null,
+				hvac.AuxHeaterPower != null
+					? new XElement(_v24 + XMLNames.Bus_AuxiliaryHeaterPower, hvac.AuxHeaterPower.ToXMLFormat(0)) : null,
+				hvac.DoubleGlazing != null
+					? new XElement(_v24 + XMLNames.Bus_DoubleGlazing, hvac.DoubleGlazing) : null,
+				hvac.AdjustableAuxiliaryHeater != null
+					? new XElement(_v24 + XMLNames.Bus_AdjustableAuxiliaryHeater, hvac.AdjustableAuxiliaryHeater) : null,
+				hvac.SeparateAirDistributionDucts != null
+					? new XElement(_v24 + XMLNames.Bus_SeparateAirDistributionDucts, hvac.SeparateAirDistributionDucts) : null
+			);
+		}
+
+	}
+
+	public class XEVInterimAuxiliaryType : ConventionalInterimAuxiliaryType
+	{
+		public XEVInterimAuxiliaryType(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+		protected override string XMLType => "AUX_xEV_CompletedBusType";
+
+		protected override XElement GetHVAC(IHVACBusAuxiliariesDeclarationData hvac)
+		{
+			var retVal = base.GetHVAC(hvac);
+			retVal.Add(GetxEVHVAC(hvac));
+
+			return retVal;
+			
+		}
+
+		protected virtual XElement[] GetxEVHVAC(IHVACBusAuxiliariesDeclarationData hvac)
+		{
+			return new[] {
+				hvac.WaterElectricHeater.HasValue ?
+					new XElement(_v24 + XMLNames.Bus_WaterElectricHeater, hvac.WaterElectricHeater) :null,
+				hvac.AirElectricHeater.HasValue ?
+					new XElement(_v24 + XMLNames.Bus_AirElectricHeater, hvac.AirElectricHeater) : null,
+				hvac.OtherHeatingTechnology.HasValue ?
+					new XElement(_v24 + XMLNames.Bus_OtherHeatingTechnology, hvac.OtherHeatingTechnology) : null
+			};
+		}
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimVIFAdasType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimVIFAdasType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3583ba7922a34cbd93b477923f2ee0b9f911d606
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimComponents/InterimVIFAdasType.cs
@@ -0,0 +1,96 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents
+{
+	public class VIFCompletedConventionalAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFCompletedConventionalAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.Vehicle_ADAS,
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_Conventional_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adas.EcoRoll == EcoRollType.WithEngineStop),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()),
+				adas.ATEcoRollReleaseLockupClutch.HasValue
+					? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch,
+						adas.ATEcoRollReleaseLockupClutch.Value)
+					: null);
+		}
+
+		#endregion
+	}
+
+
+	public class VIFCompletedHEVAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFCompletedHEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.Vehicle_ADAS,
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_HEV_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()),
+				adas.ATEcoRollReleaseLockupClutch.HasValue
+					? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch,
+						adas.ATEcoRollReleaseLockupClutch.Value)
+					: null);
+		}
+
+		#endregion
+	}
+
+	public class VIFCompletedPEVAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFCompletedPEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.Vehicle_ADAS,
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_PEV_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()));
+		}
+
+		#endregion
+	}
+
+	public class VIFCompletedIEPCAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFCompletedIEPCAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_v24 + XMLNames.Vehicle_ADAS,
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_IEPC_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()));
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleParameterGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleParameterGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..57c61a1f31d6c21071350479b50288ffa955d94d
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleParameterGroup.cs
@@ -0,0 +1,147 @@
+using System.Collections.Generic;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public abstract class AbstractInterimVIFGroupWriter : IReportMultistepCompletedBusOutputGroup
+	{
+		protected readonly IVIFReportInterimFactory _vifReportFactory;
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+
+		protected AbstractInterimVIFGroupWriter(IVIFReportInterimFactory vifReportFactory)
+		{
+			_vifReportFactory = vifReportFactory;
+		}
+
+		#region Implementation of IReportMultistepCompletedBusOutputGroup
+
+		public abstract IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider);
+
+		#endregion
+	}
+
+	public class CompletedBusGeneralParametersGroup : AbstractInterimVIFGroupWriter
+	{
+		public CompletedBusGeneralParametersGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of AbstractInterimVIFGroupWriter
+
+		public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider)
+		{
+			var vehicleInputData = multiStageInputDataProvider.VehicleInputData;
+			return new[] {
+				new XElement(_v24 + XMLNames.Component_Manufacturer, vehicleInputData.Manufacturer),
+				new XElement(_v24 + XMLNames.Component_ManufacturerAddress, vehicleInputData.ManufacturerAddress),
+				new XElement(_v24 + XMLNames.Vehicle_VIN, vehicleInputData.VIN),
+				new XElement(_v24 + XMLNames.Component_Date,
+					XmlConvert.ToString(vehicleInputData.Date, XmlDateTimeSerializationMode.Utc)),
+
+			};
+		}
+
+		#endregion
+	}
+
+	public class GetCompletedBusParametersGroup : AbstractInterimVIFGroupWriter
+	{
+		public GetCompletedBusParametersGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of AbstractInterimVIFGroupWriter
+
+		public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider)
+		{
+			var vehicleInputData = multiStageInputDataProvider.VehicleInputData;
+			return new [] {
+				vehicleInputData.Model != null
+					? new XElement(_v24 + XMLNames.Component_Model, vehicleInputData.Model) : null,
+				vehicleInputData.LegislativeClass != null
+					? new XElement(_v24 + XMLNames.Vehicle_LegislativeCategory, vehicleInputData.LegislativeClass.ToXMLFormat()) : null,
+				vehicleInputData.CurbMassChassis != null
+					? new XElement(_v24 + XMLNames.CorrectedActualMass, vehicleInputData.CurbMassChassis.ToXMLFormat(0)) : null,
+				vehicleInputData.GrossVehicleMassRating != null
+					? new XElement(_v24 + XMLNames.TPMLM, vehicleInputData.GrossVehicleMassRating.ToXMLFormat(0)) : null,
+				GetAirdragModifiedMultistageEntry(multiStageInputDataProvider),
+				vehicleInputData.RegisteredClass != null
+					? new XElement(_v24 + XMLNames.Vehicle_RegisteredClass, vehicleInputData.RegisteredClass.ToXMLFormat()) : null,
+			};
+		}
+
+		protected XElement GetAirdragModifiedMultistageEntry(IMultistageVIFInputData multiStageInputDataProvider)
+		{
+			var consolidatedInputData = multiStageInputDataProvider.MultistageJobInputData.JobInputData
+				.ConsolidateManufacturingStage;
+			var vehicleInputData = multiStageInputDataProvider.VehicleInputData;
+			if (consolidatedInputData?.Vehicle?.Components?.AirdragInputData == null)
+				return null;
+
+			switch (vehicleInputData.AirdragModifiedMultistep) {
+				case null:
+					throw new VectoException("AirdragModifiedMultistage must be set if an airdrag component has been set in previous stages.");
+				default:
+					return new XElement(_v24 + XMLNames.Bus_AirdragModifiedMultistep, vehicleInputData.AirdragModifiedMultistep);
+			}
+		}
+		#endregion
+	}
+
+	public class CompletedBusPassengerCountGroup : AbstractInterimVIFGroupWriter
+	{
+		public CompletedBusPassengerCountGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of AbstractInterimVIFGroupWriter
+
+		public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider)
+		{
+			var vehicleInputData = multiStageInputDataProvider.VehicleInputData;
+
+			if (vehicleInputData.NumberPassengerSeatsLowerDeck == null ||
+				vehicleInputData.NumberPassengersStandingLowerDeck == null ||
+				vehicleInputData.NumberPassengerSeatsUpperDeck == null ||
+				vehicleInputData.NumberPassengersStandingUpperDeck == null) {
+				return new XElement[] {};
+			}
+
+			return new [] { 
+				new XElement(_v24 + XMLNames.Bus_NumberPassengerSeatsLowerDeck, vehicleInputData.NumberPassengerSeatsLowerDeck),
+				new XElement(_v24 + XMLNames.Bus_NumberPassengersStandingLowerDeck, vehicleInputData.NumberPassengersStandingLowerDeck),
+				new XElement(_v24 + XMLNames.Bus_NumberPassengerSeatsUpperDeck, vehicleInputData.NumberPassengerSeatsUpperDeck),
+				new XElement(_v24 + XMLNames.Bus_NumberPassengersStandingUpperDeck, vehicleInputData.NumberPassengersStandingUpperDeck),
+			};
+		}
+
+		#endregion
+	}
+
+	public class CompletedBusDimensionsGroup : AbstractInterimVIFGroupWriter
+	{
+		public CompletedBusDimensionsGroup(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of AbstractInterimVIFGroupWriter
+
+		public override IList<XElement> GetElements(IMultistageVIFInputData multiStageInputDataProvider)
+		{
+			var vehicleInputData = multiStageInputDataProvider.VehicleInputData;
+
+			if (vehicleInputData.Height == null || vehicleInputData.Length == null ||
+				vehicleInputData.Width == null || vehicleInputData.EntranceHeight == null) {
+				return new XElement[] { };
+			}
+
+			return new[] {
+				new XElement(_v24 + XMLNames.Bus_HeightIntegratedBody, vehicleInputData.Height.ConvertToMilliMeter().ToXMLFormat(0)),
+				new XElement(_v24 + XMLNames.Bus_VehicleLength, vehicleInputData.Length.ConvertToMilliMeter().ToXMLFormat(0)),
+				new XElement(_v24 + XMLNames.Bus_VehicleWidth, vehicleInputData.Width.ConvertToMilliMeter().ToXMLFormat(0)),
+				new XElement(_v24 + XMLNames.Bus_EntranceHeight, vehicleInputData.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0)),
+			};
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleWriter.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2c778cdd51ba502b3b5c82869ac9f21b7efcef26
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/InterimVehicleWriter.cs
@@ -0,0 +1,269 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Hashing;
+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
+{
+	public abstract class InterimVehicleWriter : IXmlMultistepTypeWriter
+	{
+		protected readonly IVIFReportInterimFactory _vifReportFactory;
+
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _v24 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		protected InterimVehicleWriter(IVIFReportInterimFactory vifReportFactory)
+		{
+			_vifReportFactory = vifReportFactory;
+		}
+
+		#region Implementation of IXmlMultistepTypeWriter
+
+		public abstract XElement GetElement(IMultistageVIFInputData inputData);
+
+		#endregion
+
+		protected string GetVehicleID()
+		{
+			return $"{VectoComponents.Vehicle.HashIdPrefix()}{XMLHelper.GetGUID()}";
+		}
+	}
+
+	public class ConventionalInterimVehicleType : InterimVehicleWriter
+	{
+		public ConventionalInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var vehicleInput = inputData.VehicleInputData;
+			var ngTankSystem = vehicleInput.TankSystem.HasValue
+				? new XElement(_v24 + XMLNames.Vehicle_NgTankSystem, vehicleInput.TankSystem.ToString())
+				: null;
+			var bodyworkCode = vehicleInput.VehicleCode.HasValue
+				? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat())
+				: null;
+			var lowEntry = vehicleInput.LowEntry.HasValue
+				? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry)
+				: null;
+			var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue
+				? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology,
+					vehicleInput.DoorDriveTechnology.ToXMLFormat())
+				: null;
+			var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber)
+				? null
+				: new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber);
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()),
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_Conventional_CompletedBusDeclarationType"),
+				new XAttribute("xmlns", _v24),
+				//new XAttribute(XNamespace.Xmlns + "xsi", _xsi),
+				_vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData),
+				_vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData),
+				ngTankSystem,
+				_vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData),
+				bodyworkCode,
+				lowEntry,
+				_vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData),
+				doordriveTechnology,
+				new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType,
+					inputData.VehicleInputData.VehicleDeclarationType.GetLabel()),
+				vehicleTypeApprovalNumber,
+				_vifReportFactory.GetConventionalInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS),
+				_vifReportFactory.GetConventionalInterimComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class HEVInterimVehicleType : InterimVehicleWriter
+	{
+		public HEVInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of InterimVehicleWriter
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var vehicleInput = inputData.VehicleInputData;
+			var ngTankSystem = vehicleInput.TankSystem.HasValue
+				? new XElement(_v24 + XMLNames.Vehicle_NgTankSystem, vehicleInput.TankSystem.ToString())
+				: null;
+			var bodyworkCode = vehicleInput.VehicleCode.HasValue
+				? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat())
+				: null;
+			var lowEntry = vehicleInput.LowEntry.HasValue
+				? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry)
+				: null;
+			var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue
+				? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology,
+					vehicleInput.DoorDriveTechnology.ToXMLFormat())
+				: null;
+			var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber)
+				? null
+				: new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber);
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()),
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV_CompletedBusDeclarationType"),
+				new XAttribute("xmlns", _v24),
+				//new XAttribute(XNamespace.Xmlns + "xsi", _xsi),
+				_vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData),
+				_vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData),
+				ngTankSystem,
+				_vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData),
+				bodyworkCode,
+				lowEntry,
+				_vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData),
+				doordriveTechnology,
+				new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType,
+					inputData.VehicleInputData.VehicleDeclarationType.GetLabel()),
+				vehicleTypeApprovalNumber,
+				_vifReportFactory.GetHEVInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS),
+				_vifReportFactory.GetxEVInterimComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class PEVInterimVehicleType : InterimVehicleWriter
+	{
+		public PEVInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of InterimVehicleWriter
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var vehicleInput = inputData.VehicleInputData;
+			var bodyworkCode = vehicleInput.VehicleCode.HasValue
+				? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat())
+				: null;
+			var lowEntry = vehicleInput.LowEntry.HasValue
+				? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry)
+				: null;
+			var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue
+				? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology,
+					vehicleInput.DoorDriveTechnology.ToXMLFormat())
+				: null;
+			var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber)
+				? null
+				: new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber);
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()),
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV_CompletedBusDeclarationType"),
+				new XAttribute("xmlns", _v24),
+				//new XAttribute(XNamespace.Xmlns + "xsi", _xsi),
+				_vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData),
+				_vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData),
+				_vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData),
+				bodyworkCode,
+				lowEntry,
+				_vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData),
+				doordriveTechnology,
+				new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType,
+					inputData.VehicleInputData.VehicleDeclarationType.GetLabel()),
+				vehicleTypeApprovalNumber,
+				_vifReportFactory.GetPEVInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS),
+				_vifReportFactory.GetxEVInterimComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class IEPCInterimVehicleType : InterimVehicleWriter
+	{
+		public IEPCInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of InterimVehicleWriter
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var vehicleInput = inputData.VehicleInputData;
+			var bodyworkCode = vehicleInput.VehicleCode.HasValue
+				? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat())
+				: null;
+			var lowEntry = vehicleInput.LowEntry.HasValue
+				? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry)
+				: null;
+			var doordriveTechnology = vehicleInput.DoorDriveTechnology.HasValue
+				? new XElement(_v24 + XMLNames.Bus_DoorDriveTechnology,
+					vehicleInput.DoorDriveTechnology.ToXMLFormat())
+				: null;
+			var vehicleTypeApprovalNumber = string.IsNullOrWhiteSpace(vehicleInput.VehicleTypeApprovalNumber)
+				? null
+				: new XElement(_v24 + XMLNames.VehicleTypeApprovalNumber, vehicleInput.VehicleTypeApprovalNumber);
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()),
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_IEPC_CompletedBusDeclarationType"),
+				new XAttribute("xmlns", _v24),
+				//new XAttribute(XNamespace.Xmlns + "xsi", _xsi),
+				_vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData),
+				_vifReportFactory.GetCompletedBusParametersGroup().GetElements(inputData),
+				_vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData),
+				bodyworkCode,
+				lowEntry,
+				_vifReportFactory.GetCompletedBusDimensionsGroup().GetElements(inputData),
+				doordriveTechnology,
+				new XElement(_v24 + XMLNames.Bus_VehicleDeclarationType,
+					inputData.VehicleInputData.VehicleDeclarationType.GetLabel()),
+				vehicleTypeApprovalNumber,
+				_vifReportFactory.GetIEPCInterimADASType().GetXmlType(inputData.VehicleInputData.ADAS),
+				_vifReportFactory.GetxEVInterimComponentsType().GetElement(inputData)
+			);
+		}
+
+		#endregion
+	}
+
+	public class ExemptedInterimVehicleType : InterimVehicleWriter
+	{
+		public ExemptedInterimVehicleType(IVIFReportInterimFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of InterimVehicleWriter
+
+		public override XElement GetElement(IMultistageVIFInputData inputData)
+		{
+			var vehicleInput = inputData.VehicleInputData;
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(XMLNames.Component_ID_Attr, GetVehicleID()),
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_Exempted_CompletedBusDeclarationType"),
+				new XAttribute("xmlns", _v24),
+				_vifReportFactory.GetCompletedBusGeneralParametersGroup().GetElements(inputData),
+				vehicleInput.Model != null
+					? new XElement(_v24 + XMLNames.Component_Model, vehicleInput.Model) : null,
+				vehicleInput.LegislativeClass != null
+					? new XElement(_v24 + XMLNames.Vehicle_LegislativeCategory, vehicleInput.LegislativeClass.ToXMLFormat()) : null,
+				vehicleInput.CurbMassChassis != null
+					? new XElement(_v24 + XMLNames.CorrectedActualMass, vehicleInput.CurbMassChassis.ToXMLFormat(0)) : null,
+				vehicleInput.GrossVehicleMassRating != null
+					? new XElement(_v24 + XMLNames.TPMLM, vehicleInput.GrossVehicleMassRating.ToXMLFormat(0)) : null,
+				vehicleInput.AirdragModifiedMultistep != null ?
+					new XElement(_v24 + XMLNames.Bus_AirdragModifiedMultistep, vehicleInput.AirdragModifiedMultistep) : null,
+				vehicleInput.RegisteredClass != null && vehicleInput.RegisteredClass != RegistrationClass.unknown
+					? new XElement(_v24 + XMLNames.Vehicle_RegisteredClass, vehicleInput.RegisteredClass.ToXMLFormat()) : null,
+				_vifReportFactory.GetCompletedBusPassengerCountGroup().GetElements(inputData),
+				vehicleInput.VehicleCode.HasValue
+					? new XElement(_v24 + XMLNames.Vehicle_BodyworkCode, vehicleInput.VehicleCode.ToXMLFormat())
+					: null,
+				vehicleInput.LowEntry != null
+					? new XElement(_v24 + XMLNames.Bus_LowEntry, vehicleInput.LowEntry) : null,
+				vehicleInput.Height != null
+					? new XElement(_v24 + XMLNames.Bus_HeightIntegratedBody, vehicleInput.Height.ConvertToMilliMeter().ToXMLFormat(0)) : null
+
+			);
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponentGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponentGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7a1af05caf0731af06df0f74f6bbe31e57ad35ab
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponentGroup.cs
@@ -0,0 +1,260 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public abstract class PrimaryComponentVIFType : IXmlTypeWriter
+	{
+		protected readonly IVIFReportFactory _vifReportFactory;
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		protected PrimaryComponentVIFType(IVIFReportFactory vifReportFactory)
+		{
+			_vifReportFactory = vifReportFactory;
+		}
+
+		#region Implementation of IXmlTypeWriter
+
+		public abstract XElement GetElement(IDeclarationInputDataProvider inputData);
+
+		#endregion
+	}
+	
+
+	public class ConventionalComponentVIFType : PrimaryComponentVIFType
+	{
+		public ConventionalComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+				return new XElement(_vif + XMLNames.Vehicle_Components,
+					new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_Conventional_ComponentsVIFType"),
+					_vifReportFactory.GetEngineType().GetElement(inputData),
+					_vifReportFactory.GetTransmissionType().GetElement(inputData),
+					_vifReportFactory.GetTorqueConvertType().GetElement(inputData),
+					_vifReportFactory.GetAngelDriveType().GetElement(inputData),
+					_vifReportFactory.GetRetarderType().GetElement(inputData), 
+					_vifReportFactory.GetAxlegearType().GetElement(inputData),
+					_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+					_vifReportFactory.GetAuxiliaryType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class HevIepcSComponentVIFType : PrimaryComponentVIFType
+	{
+		public HevIepcSComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-IEPC-S_ComponentsVIFType"),
+				_vifReportFactory.GetEngineType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineGENType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetIepcType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryIEPC_SType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevPxComponentVIFType : PrimaryComponentVIFType
+	{
+		public HevPxComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-Px_ComponentsVIFType"),
+				_vifReportFactory.GetEngineType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetTransmissionType().GetElement(inputData),
+				_vifReportFactory.GetTorqueConvertType().GetElement(inputData),
+				_vifReportFactory.GetAngelDriveType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryHevPType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+	public class HevS2ComponentVIFType: PrimaryComponentVIFType
+	{
+		public HevS2ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-S2_ComponentsVIFType"),
+				_vifReportFactory.GetEngineType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineGENType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetTransmissionType().GetElement(inputData),
+				_vifReportFactory.GetTorqueConvertType().GetElement(inputData),
+				_vifReportFactory.GetAngelDriveType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryHevSType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class HevS3ComponentVIFType : PrimaryComponentVIFType
+	{
+		public HevS3ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-S3_ComponentsVIFType"),
+				_vifReportFactory.GetEngineType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineGENType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryHevSType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class HevS4ComponentVIFType : PrimaryComponentVIFType
+	{
+		public HevS4ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_HEV-S4_ComponentsVIFType"),
+				_vifReportFactory.GetEngineType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineGENType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryHevSType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class PevE2ComponentVIFType : PrimaryComponentVIFType
+	{
+		public PevE2ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-E2_ComponentsVIFType"),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetTransmissionType().GetElement(inputData),
+				_vifReportFactory.GetTorqueConvertType().GetElement(inputData),
+				_vifReportFactory.GetAngelDriveType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryPEVType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class PevE3ComponentVIFType : PrimaryComponentVIFType
+	{
+		public PevE3ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-E3_ComponentsVIFType"),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryPEVType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class PevE4ComponentVIFType : PrimaryComponentVIFType
+	{
+		public PevE4ComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-E4_ComponentsVIFType"),
+				_vifReportFactory.GetElectricMachineType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryPEVType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+
+	public class IepcComponentVIFType : PrimaryComponentVIFType
+	{
+		public IepcComponentVIFType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of ComponentVIFType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			return new XElement(_vif + XMLNames.Vehicle_Components,
+				new XAttribute(_xsi + XMLNames.XSIType, "Vehicle_PEV-IEPC_ComponentsVIFType"),
+				_vifReportFactory.GetIepcType().GetElement(inputData),
+				_vifReportFactory.GetElectricEnergyStorageType().GetElement(inputData),
+				_vifReportFactory.GetRetarderType().GetElement(inputData), 
+				_vifReportFactory.GetAxlegearType().GetElement(inputData),
+				_vifReportFactory.GetAxleWheelsType().GetElement(inputData),
+				_vifReportFactory.GetAuxiliaryIEPCType().GetElement(inputData));
+		}
+
+		#endregion
+	}
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAdasType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAdasType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..63c3c10761211c293ab960e5929ee0e02e948159
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAdasType.cs
@@ -0,0 +1,107 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public interface IVIFFAdasType
+	{
+		XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas);
+	}
+
+	public class VIFConventionalAdasType :  AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFConventionalAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Vehicle_ADAS, 
+				new XAttribute("xmlns", _v24),
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_Conventional_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart),
+				new XElement(_v24 +  XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adas.EcoRoll == EcoRollType.WithEngineStop),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()),
+				adas.ATEcoRollReleaseLockupClutch.HasValue
+					? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch,
+						adas.ATEcoRollReleaseLockupClutch.Value)
+					: null); 
+		}
+
+		#endregion
+	}
+
+	public class VIFHEVAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFHEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Vehicle_ADAS,
+				new XAttribute("xmlns", _v24),
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_HEV_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()),
+				adas.ATEcoRollReleaseLockupClutch.HasValue
+					? new XElement(_v24 + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch,
+						adas.ATEcoRollReleaseLockupClutch.Value)
+					: null);
+		}
+
+		#endregion
+	}
+
+	public class VIFPEVAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFPEVAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Vehicle_ADAS,
+				new XAttribute("xmlns", _v24),
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_PEV_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()));
+		}
+
+		#endregion
+	}
+
+	public class VIFIEPCAdasType : AbstractVIFXmlType, IVIFFAdasType
+	{
+		public VIFIEPCAdasType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetXmlType(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			if (adas == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Vehicle_ADAS,
+				new XAttribute("xmlns", _v24),
+				new XAttribute(_xsi + XMLNames.XSIType, "ADAS_IEPC_Type"),
+				new XElement(_v24 + XMLNames.Vehicle_ADAS_PCC, adas.PredictiveCruiseControl.ToXMLFormat()));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAngleDriveType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAngleDriveType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..71665bdef412ee440d13d21f1354003ab28ec2aa
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAngleDriveType.cs
@@ -0,0 +1,42 @@
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFAngleDriveType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFAngleDriveType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var angelDrive = inputData.JobInputData.Vehicle.Components.AngledriveInputData;
+			if (angelDrive == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Angledrive,
+					new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AngledriveDataVIFType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, angelDrive.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, angelDrive.Model),
+					new XElement(_vif + XMLNames.Component_CertificationMethod, angelDrive.CertificationMethod.ToXMLFormat()),
+					angelDrive.CertificationMethod == CertificationMethod.StandardValues
+						? null
+						: new XElement(_vif + XMLNames.Report_Component_CertificationNumber,
+							angelDrive.CertificationNumber),
+					new XElement(_vif + XMLNames.Component_Date,
+						XmlConvert.ToString(angelDrive.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, angelDrive.AppVersion),
+					new XElement(_vif + XMLNames.AngleDrive_Ratio, angelDrive.Ratio.ToXMLFormat(3))
+				));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAuxiliaryType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAuxiliaryType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b3f7a339ac7c234d4cca18013efd640d579906f5
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAuxiliaryType.cs
@@ -0,0 +1,373 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Impl;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFAuxiliaryType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFAuxiliaryType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public virtual XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Auxiliaries,
+					new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AUX_Conventional_PrimaryBusType"),
+					new XElement(_vif + XMLNames.BusAux_Fan,
+						new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetElectricSystem(aux.ElectricSupply),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux)
+					));
+		}
+
+		protected virtual XElement GetSteeringPumpElement(IList<string> steeringPumps)
+		{
+			var result = new List<XElement>();
+			for (int i = 0; i < steeringPumps.Count; i++)
+			{
+				result.Add(new XElement(_vif + XMLNames.BusAux_Technology,
+					new XAttribute("axleNumber", (i + 1).ToString()), steeringPumps[i]));
+			}
+
+			return new XElement(_vif + XMLNames.BusAux_SteeringPump, result);
+		}
+		
+
+		protected virtual XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply)
+		{
+			var alternatorTech = new XElement(_vif + XMLNames.Bus_AlternatorTechnology, electricSupply.AlternatorTechnology.ToXMLFormat());
+
+			List<XElement> smartAlternators = null;
+			List<XElement> auxBattery = null;
+			List<XElement> auxCapacitor = null;
+
+			if (electricSupply.Alternators?.Any() == true)
+			{
+				smartAlternators = new List<XElement>();
+
+				foreach (var alternator in electricSupply.Alternators)
+				{
+					smartAlternators.Add(new XElement(_vif + XMLNames.BusAux_ElectricSystem_SmartAlternator,
+									new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedCurrent, alternator.RatedCurrent.Value()),
+									new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedRatedVoltage, alternator.RatedVoltage.Value())));
+				}
+			}
+
+			if (electricSupply.ElectricStorage?.Any() == true)
+			{
+				auxBattery = new List<XElement>();
+				auxCapacitor = new List<XElement>();
+
+				foreach (var electricStorage in electricSupply.ElectricStorage)
+				{
+					if (electricStorage is BusAuxBatteryInputData battery)
+					{
+						auxBattery.Add(new XElement(_vif + XMLNames.BusAux_ElectricSystem_Battery,
+							new XElement(_vif + XMLNames.BusAux_ElectricSystem_BatteryTechnology, battery.Technology),
+							new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedCapacity, battery.Capacity.AsAmpHour),
+							new XElement(_vif + XMLNames.BusAux_ElectricSystem_NominalVoltage, battery.Voltage.Value())));
+					}
+					else if (electricStorage is BusAuxCapacitorInputData capacitor)
+					{
+						auxCapacitor.Add(new XElement(_vif + XMLNames.BusAux_ElectricSystem_Capacitor,
+							new XElement(_vif + XMLNames.BusAux_ElectricSystem_CapacitorTechnology, capacitor.Technology),
+							new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedCapacitance, capacitor.Capacity.Value()),
+							new XElement(_vif + XMLNames.BusAux_ElectricSystem_RatedVoltage, capacitor.Voltage.Value())));
+					}
+				}
+
+				auxBattery = auxBattery.Any() ? auxBattery : null;
+				auxCapacitor = auxCapacitor.Any() ? auxCapacitor : null;
+			}
+
+			return new XElement(_vif + XMLNames.BusAux_ElectricSystem,
+						alternatorTech,
+						smartAlternators,
+						auxBattery,
+						auxCapacitor,
+						new XElement(_vif + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible, electricSupply.ESSupplyFromHEVREESS)
+			);
+		}
+		
+
+		protected virtual XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer)
+		{
+
+			return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize),
+				new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
+				new XElement(_vif + XMLNames.Vehicle_Clutch, pSupply.Clutch),
+				new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)),
+				new XElement(_vif + XMLNames.Bus_SmartCompressionSystem, pSupply.SmartAirCompression),
+				new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration),
+				new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+
+		protected string GetXMLAirsuspensionControl(ConsumerTechnology airsuspensionControl)
+		{
+			switch (airsuspensionControl)
+			{
+				case ConsumerTechnology.Electrically:
+					return "electronically";
+				case ConsumerTechnology.Mechanically:
+					return "mechanically";
+				default:
+					throw new VectoException("Unknown AirsuspensionControl!");
+			}
+		}
+
+
+		protected virtual XElement GetHvac(IHVACBusAuxiliariesDeclarationData hvac)
+		{
+			return new XElement(new XElement(_vif + XMLNames.BusAux_HVAC,
+				new XElement(_vif + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat),
+				new XElement(_vif + XMLNames.Bus_EngineWasteGasHeatExchanger, hvac.EngineWasteGasHeatExchanger)));
+		}
+
+		#endregion
+	}
+
+	public class VIFAuxiliaryHevSType : VIFAuxiliaryType
+	{
+		public VIFAuxiliaryHevSType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VIFAuxiliaryType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Auxiliaries,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AUX_HEV-S_PrimaryBusType"),
+					new XElement(_vif + XMLNames.BusAux_Fan,
+						new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetElectricSystem(aux.ElectricSupply),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux)
+				));
+		}
+
+
+		protected override XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply)
+		{
+			return new XElement(_vif + XMLNames.BusAux_ElectricSystem,
+				new XElement(_vif + XMLNames.BusAux_ElectricSystem_AlternatorTechnology,
+					electricSupply.AlternatorTechnology.ToXMLFormat()),
+				new XElement(_vif + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible,
+					electricSupply.ESSupplyFromHEVREESS));
+		}
+
+
+		protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer)
+		{
+			return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize),
+				new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
+				new XElement(_vif + XMLNames.Vehicle_Clutch, pSupply.Clutch),
+				new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)),
+				new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration),
+				new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+
+		#endregion
+	}
+
+	public class VIFAuxiliaryIEPC_SType : VIFAuxiliaryType
+	{
+		public VIFAuxiliaryIEPC_SType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VIFAuxiliaryType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Auxiliaries,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AUX_HEV-S_PrimaryBusType"),
+					new XElement(_vif + XMLNames.BusAux_Fan,
+						new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetElectricSystem(aux.ElectricSupply),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux)
+				));
+		}
+
+
+		protected override XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply)
+		{
+			return new XElement(_vif + XMLNames.BusAux_ElectricSystem,
+				new XElement(_vif + XMLNames.BusAux_ElectricSystem_AlternatorTechnology,
+					electricSupply.AlternatorTechnology.ToXMLFormat()),
+				new XElement(_vif + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible,
+					electricSupply.ESSupplyFromHEVREESS));
+		}
+
+
+		protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer)
+		{
+			return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize),
+				new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
+				new XElement(_vif + XMLNames.Vehicle_Clutch, pSupply.Clutch),
+				new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)),
+				new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration),
+				new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+
+		#endregion
+	}
+
+	public class VIFAuxiliaryHevPType : VIFAuxiliaryType
+	{
+		public VIFAuxiliaryHevPType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VIFAuxiliaryHevSType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+
+			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Auxiliaries,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AUX_HEV-P_PrimaryBusType"),
+					new XElement(_vif + XMLNames.BusAux_Fan,
+						new XElement(_vif + XMLNames.Auxiliaries_Auxiliary_Technology, aux.FanTechnology)),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetElectricSystem(aux.ElectricSupply),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux)
+				));
+
+		}
+
+		#endregion
+		
+		#region Overrides of VIFAuxiliaryHevSType
+
+		protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer)
+		{
+			return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_vif + XMLNames.Bus_SizeOfAirSupply, pSupply.CompressorSize),
+				new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
+				new XElement(_vif + XMLNames.BusAux_Clutch, pSupply.Clutch),
+				new XElement(_vif + XMLNames.Bus_CompressorRatio, pSupply.Ratio.ToXMLFormat(3)),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, pSupply.SmartAirCompression),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, pSupply.SmartRegeneration),
+				new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+		
+		#endregion
+	}
+
+	public class VIFAuxiliaryIEPCType : VIFAuxiliaryType
+	{
+		public VIFAuxiliaryIEPCType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Auxiliaries,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AUX_IEPC_PrimaryBusType"),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux)
+				));
+		}
+
+		#endregion
+		
+
+		#region Overrides of VIFAuxiliaryType
+
+		protected override XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData pSupply, IPneumaticConsumersDeclarationData pConsumer)
+		{
+			return new XElement(_vif + XMLNames.BusAux_PneumaticSystem,
+				new XElement(_vif + XMLNames.CompressorDrive, pSupply.CompressorDrive.GetLabel()),
+				new XElement(_vif + XMLNames.Bus_SmartRegenerationSystem, pSupply.SmartRegeneration),
+				new XElement(_vif + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(pConsumer.AirsuspensionControl)),
+				new XElement(_vif + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, pConsumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
+			);
+		}
+
+		protected override XElement GetHvac(IHVACBusAuxiliariesDeclarationData hvac)
+		{
+			return new XElement(new XElement(_vif + XMLNames.BusAux_HVAC,
+				new XElement(_vif + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat)));
+		}
+		
+		#endregion
+	}
+	
+	public class VIFAuxiliaryPEVType : VIFAuxiliaryIEPCType
+	{
+		public VIFAuxiliaryPEVType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VIFAuxiliaryType
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+
+			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Auxiliaries,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AUX_PEV_PrimaryBusType"),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux)
+				));
+		}
+
+		#endregion
+
+
+	}
+
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxleWheelsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxleWheelsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f4119fb9f8af240b49f8a68a9cae57885be09ed6
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxleWheelsType.cs
@@ -0,0 +1,86 @@
+using System.Collections.Generic;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFAxleWheelsType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFAxleWheelsType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var axleWheels = inputData.JobInputData.Vehicle.Components.AxleWheels;
+			if (axleWheels == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_AxleWheels,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+                    new XAttribute(_xsi + XMLNames.XSIType, "AxleWheelsDataVIFType"),
+                    new XElement(_vif + XMLNames.AxleWheels_Axles,
+						GetAxleData(axleWheels.AxlesDeclaration)
+					)
+				)
+			);
+		}
+		
+		private List<XElement> GetAxleData(IList<IAxleDeclarationInputData> axleInput)
+		{
+			var axles = new List<XElement>();
+			
+			var axleNumber = 1;
+			foreach (var currentAxle in axleInput) {
+				var axle = new XElement(_vif + XMLNames.AxleWheels_Axles_Axle,
+					new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, axleNumber++),
+                    new XAttribute("xmlns", _v20),
+                    new XAttribute(_xsi + XMLNames.XSIType, "AxleDataDeclarationType"),
+					new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_AxleType, currentAxle.AxleType.ToXMLFormat()),
+					new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_TwinTyres, currentAxle.TwinTyres),
+					new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_Steered, currentAxle.Steered),
+                    GetTyre(currentAxle.Tyre));
+				axles.Add(axle);
+			}
+
+			return axles;
+		}
+
+		private XElement GetTyre(ITyreDeclarationInputData tyre)
+		{
+			var xmlTyre = tyre as IXMLTyreDeclarationInputData;
+			if (xmlTyre == null) {
+				throw new VectoException("Tyre input data must be in XML format");
+			}
+
+			return XElement.Load(xmlTyre.GetXmlNode.CreateNavigator().ReadSubtree());
+			//var currentTyre = 
+			//	new XElement(_v20 + XMLNames.ComponentDataWrapper,
+			//		new XAttribute(_xsi + XMLNames.XSIType, "TyreDataDeclarationType"),
+			//		new XAttribute("id", tyre.DigestValue.Reference),
+			//		new XElement(XMLNames.Component_Manufacturer, tyre.Manufacturer),
+			//		new XElement(XMLNames.Component_Model, tyre.Model),
+			//		new XElement(XMLNames.Component_CertificationNumber, tyre.CertificationNumber),
+			//		new XElement(XMLNames.Component_Date, XmlConvert.ToString(tyre.Date, XmlDateTimeSerializationMode.Utc)),
+			//		new XElement(XMLNames.Component_AppVersion, tyre.Date),
+			//		new XElement(XMLNames.AxleWheels_Axles_Axle_Dimension, tyre.Dimension),
+			//		new XElement(XMLNames.AxleWheels_Axles_Axle_RRCDeclared, tyre.RollResistanceCoefficient.ToXMLFormat(4)),
+			//		new XElement(XMLNames.AxleWheels_Axles_Axle_FzISO, tyre.TyreTestLoad.ToXMLFormat())
+			//);
+
+			//return new XElement(_v20 + XMLNames.AxleWheels_Axles_Axle_Tyre,
+			//	currentTyre,
+			//	GetSignature(tyre.DigestValue)
+			//);
+		}
+		
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxlegearType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxlegearType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..385754ac7be82d9b02c2c52e1293828f09e58c65
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFAxlegearType.cs
@@ -0,0 +1,42 @@
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFAxlegearType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFAxlegearType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var axleGear = inputData.JobInputData.Vehicle.Components.AxleGearInputData;
+			if (axleGear == null)
+				return null;
+			
+			return new XElement(_vif + XMLNames.Component_Axlegear,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "AxlegearDataVIFType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, axleGear.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, axleGear.Model),
+					new XElement(_vif + XMLNames.Component_CertificationMethod, axleGear.CertificationMethod.ToXMLFormat()),
+					axleGear.CertificationMethod == CertificationMethod.StandardValues
+						? null
+						: new XElement(_vif + XMLNames.Report_Component_CertificationNumber,
+							axleGear.CertificationNumber),
+					new XElement(_vif + XMLNames.Component_Date,
+						XmlConvert.ToString(axleGear.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, axleGear.AppVersion),
+					new XElement(_vif + XMLNames.Axlegear_LineType, axleGear.LineType.ToXMLFormat()),
+					new XElement(_vif + XMLNames.Axlegear_Ratio, axleGear.Ratio.ToXMLFormat(3))));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7de33a3fac3f196c114fdcd0f9516a95d7d31df4
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs
@@ -0,0 +1,37 @@
+using System.Data;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFBoostingLimitationsType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFBoostingLimitationsType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var boostingLimitations = inputData.JobInputData.Vehicle.BoostingLimitations;
+			if (boostingLimitations == null)
+				return null;
+			
+			var boostingLimitationsXElement = new XElement(_vif + XMLNames.Vehicle_BoostingLimitation,
+				new XAttribute(_xsi + XMLNames.XSIType, "BoostingLimitationsType"),
+				new XAttribute("xmlns", _v24.NamespaceName));
+			foreach (DataRow row in boostingLimitations.Rows)
+			{
+				boostingLimitationsXElement.Add(new XElement(_v24 + XMLNames.BoostingLimitation_Entry,
+					new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]),
+					new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque])
+				));
+			}
+			
+			return boostingLimitationsXElement;
+		}
+		
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..70d5658a7355777e8957d4aebb9fff987b547b35
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs
@@ -0,0 +1,161 @@
+using System.Collections.Generic;
+using System.Data;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public  class VIFElectricEnergyStorageType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFElectricEnergyStorageType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var electricStorages = inputData.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements;
+			if (electricStorages == null)
+				return null;
+
+			var result = new List<XElement>();
+			
+			foreach (var entry in electricStorages) {
+				switch (entry.REESSPack.StorageType) {
+					case REESSType.SuperCap:
+						result.Add(GetCapacitor(entry));
+						break;
+					case REESSType.Battery:
+						result.Add(GetBattery(entry));
+						break;
+				}
+			}
+			
+			return new XElement(_vif + XMLNames.Component_ElectricEnergyStorage, result);
+		}
+
+		#endregion
+
+		private XElement GetCapacitor(IElectricStorageDeclarationInputData reess)
+		{
+			if(reess  == null)
+				return null;
+
+			var supercap = reess.REESSPack as ISuperCapDeclarationInputData;
+			if (supercap == null) {
+				throw new VectoException("Electric energy storage of type 'Capacitor' requires capacitor component");
+			}
+
+			return new XElement(_vif + XMLNames.ElectricEnergyStorage_Capacitor,
+					new XElement(_vif + XMLNames.ComponentDataWrapper,
+						new XAttribute(_xsi + XMLNames.XSIType, "CapacitorSystemDataType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, supercap.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, supercap.Model),
+					new XElement(_vif + XMLNames.Component_CertificationMethod, supercap.CertificationMethod.ToXMLFormat()),
+					supercap.CertificationMethod == CertificationMethod.StandardValues 
+						? null 
+						: new XElement(_vif + XMLNames.Report_Component_CertificationNumber, supercap.CertificationNumber), 
+					new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(supercap.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, supercap.AppVersion),
+					new XElement(_vif + XMLNames.Capacitor_Capacitance, supercap.Capacity.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.Capacitor_InternalResistance, supercap.InternalResistance.AsMilliOhm.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.Capacitor_MinVoltage, supercap.MinVoltage.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.Capacitor_MaxVoltage, supercap.MaxVoltage.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.Capacitor_MaxChargingCurrent, supercap.MaxCurrentCharge.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.Capacitor_MaxDischargingCurrent, supercap.MaxCurrentDischarge.ToXMLFormat(2)),
+						supercap.TestingTemperature == null 
+						? null 
+						: new XElement(_vif + XMLNames.REESS_TestingTemperature, supercap.TestingTemperature.AsDegCelsius.ToXMLFormat(0))
+					));
+		}
+
+
+		private  XElement GetBattery(IElectricStorageDeclarationInputData reess)
+		{
+			if (reess == null)
+				return null;
+			var battery = reess.REESSPack as IBatteryPackDeclarationInputData;
+			if (battery == null) {
+				throw new VectoException("Electric energy storage of type 'Battery' requires battery component");
+			}
+
+
+			var result = new XElement(_vif + XMLNames.ElectricEnergyStorage_Battery,
+				new XElement(_vif + XMLNames.Battery_StringID, reess.StringId),
+				new XElement(_vif + "REESS", GetReess(battery)),
+				battery.MinSOC.HasValue ? new XElement(_vif + XMLNames.Battery_SOCmin, battery.MinSOC.Value) : null,
+				battery.MaxSOC.HasValue ? new XElement(_vif + XMLNames.Battery_SOCmax, battery.MaxSOC.Value) : null
+			);
+			
+			return result;
+		}
+
+
+		private XElement GetReess(IBatteryPackDeclarationInputData battery)
+		{
+			return new XElement(_vif + XMLNames.ComponentDataWrapper,
+				new XAttribute(_xsi + XMLNames.XSIType, "BatterySystemDataType"),
+				new XElement(_vif + XMLNames.Component_Manufacturer, battery.Manufacturer),
+				new XElement(_vif + XMLNames.Component_Model, battery.Model),
+				new XElement(_vif + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat()),
+				battery.CertificationMethod == CertificationMethod.StandardValues 
+					? null 
+					: new XElement(_vif + XMLNames.Report_Component_CertificationNumber, battery.CertificationNumber),
+				new XElement(_vif + XMLNames.Component_Date,
+					XmlConvert.ToString(battery.Date, XmlDateTimeSerializationMode.Utc)),
+				new XElement(_vif + XMLNames.Component_AppVersion, battery.AppVersion),
+				new XElement(_vif + XMLNames.REESS_BatteryType, battery.BatteryType.ToString()),
+				new XElement(_vif + XMLNames.REESS_RatedCapacity, battery.Capacity.AsAmpHour.ToXMLFormat(2)),
+				new XElement(_vif + XMLNames.REESS_ConnectorsSubsystemsIncluded, battery.ConnectorsSubsystemsIncluded),
+				new XElement(_vif + XMLNames.REESS_JunctionboxIncluded, battery.JunctionboxIncluded),
+				battery.TestingTemperature == null
+					? null
+					: new XElement(_vif + XMLNames.REESS_TestingTemperature, battery.TestingTemperature.AsDegCelsius.ToXMLFormat(0)),
+				GetOcv(battery.VoltageCurve),
+				GetCurrentLimits(battery.MaxCurrentMap)
+			);
+
+		}
+
+
+		private XElement GetOcv(DataTable voltageCurve)
+		{
+			var entries = new List<XElement>();
+
+			foreach (DataRow row in voltageCurve.Rows) {
+				var soc = row[XMLNames.REESS_OCV_SoC];
+				var ocv = row[XMLNames.REESS_OCV_OCV].ToString().ToDouble();
+
+				entries.Add(new XElement(_vif + XMLNames.REESS_MapEntry,
+					new XAttribute(XMLNames.REESS_OCV_SoC, soc),
+					new XAttribute(XMLNames.REESS_OCV_OCV, ocv.ToXMLFormat(2))));
+			}
+			return new XElement(_vif + XMLNames.REESS_OCV, entries);
+		}
+		
+		private XElement GetCurrentLimits(DataTable batteryMaxCurrentMap)
+		{
+			var entries = new List<XElement>();
+
+			foreach (DataRow row in batteryMaxCurrentMap.Rows)
+			{
+				var soc = row[XMLNames.REESS_CurrentLimits_SoC];
+				var maxChargingCurrent = row[XMLNames.REESS_CurrentLimits_MaxChargingCurrent].ToString().ToDouble();
+				var maxDischargingCurrent = row[XMLNames.REESS_CurrentLimits_MaxDischargingCurrent].ToString().ToDouble();
+
+				entries.Add(new XElement(_vif + XMLNames.REESS_MapEntry,
+					new XAttribute(XMLNames.REESS_OCV_SoC, soc),
+					new XAttribute(XMLNames.REESS_CurrentLimits_MaxChargingCurrent, maxChargingCurrent.ToXMLFormat(2)),
+					new XAttribute(XMLNames.REESS_CurrentLimits_MaxDischargingCurrent, maxDischargingCurrent.ToXMLFormat(2))
+				));
+			}
+
+			return new XElement(_vif + XMLNames.REESS_CurrentLimits, entries);
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineGENType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineGENType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..58f6eb5c68f01e8931345715d4b2b00efea78336
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineGENType.cs
@@ -0,0 +1,67 @@
+using System.Collections.Generic;
+using System.Data;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFElectricMachineGENType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFElectricMachineGENType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public virtual XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+
+			foreach (var entry in inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries) {
+
+				if (entry.Position == PowertrainPosition.GEN)
+					return GetElectricMachineGENType(entry);
+			}
+
+			return null;
+		}
+		
+		#endregion
+
+
+		private XElement GetElectricMachineGENType(ElectricMachineEntry<IElectricMotorDeclarationInputData> electricMachineData)
+		{
+			return new XElement(_vif + XMLNames.Component_ElectricMachineGEN,
+				new XElement(_vif + XMLNames.ElectricMachine_PowertrainPosition,
+					electricMachineData.Position.ToXmlFormat()),
+				new XElement(_vif + XMLNames.ElectricMachine_Count, electricMachineData.Count),
+				_vifFactory.GetElectricMachineSystemType().GetElement(electricMachineData.ElectricMachine),
+				GetADC(electricMachineData.ADC)
+				);
+		}
+
+		protected virtual XElement GetADC(IADCDeclarationInputData adcData)
+		{
+			if (adcData == null)
+				return null;
+			
+			return new XElement(_vif + XMLNames.Component_ADC,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "ADCDataDeclarationType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, adcData.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, adcData.Model),
+					new XElement(_vif + XMLNames.Report_Component_CertificationNumber, adcData.CertificationNumber),
+					new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(adcData.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, adcData.AppVersion),
+					new XElement(_vif + XMLNames.ADC_Ratio, adcData.Ratio.ToXMLFormat(3)),
+					new XElement(_vif + XMLNames.Component_CertificationMethod, adcData.CertificationMethod.ToXMLFormat())
+				)
+			);
+		}
+
+
+
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9545147c1681f73e5b3c4a3891cec78e5693307b
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs
@@ -0,0 +1,156 @@
+using System.Collections.Generic;
+using System.Data;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public interface IXmlElectricMachineSystemType
+	{
+		XElement GetElement(IElectricMotorDeclarationInputData em);
+	}
+
+
+	public class XmlElectricMachineSystemMeasuredType : AbstractVIFXmlType, IXmlElectricMachineSystemType
+	{
+
+		public XmlElectricMachineSystemMeasuredType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IVIFElectricMachineSystemType
+
+		public virtual XElement GetElement(IElectricMotorDeclarationInputData em)
+		{
+			return new XElement(_vif + XMLNames.ElectricMachineSystem,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "ElectricMachineSystemDataDeclarationType"),
+					GetElectricMachineSystemCommon(em),
+					GetElectricMachineSystemPowerRange(em),
+					new XElement(_vif + XMLNames.ElectricMachine_DcDcConverterIncluded, em.DcDcConverterIncluded),
+					new XElement(_vif + XMLNames.ElectricMachine_IHPCType, em.IHPCType),
+					GetVoltageLevels(em.VoltageLevels, em.CertificationMethod),
+					GetDragCurve(em.DragCurve),
+					GetConditioning(em.Conditioning)
+				)
+			);
+		}
+		
+		#endregion
+
+		protected virtual List<XElement> GetElectricMachineSystemCommon(IElectricMotorDeclarationInputData em)
+		{
+			return new List<XElement> {
+				new XElement(_vif + XMLNames.Component_Manufacturer, em.Manufacturer),
+				new XElement(_vif + XMLNames.Component_Model, em.Model),
+				new XElement(_vif + XMLNames.Component_CertificationMethod, em.CertificationMethod.ToXMLFormat()),
+				em.CertificationMethod == CertificationMethod.StandardValues 
+					? null 
+					: new  XElement(_vif + XMLNames.Component_CertificationNumber, em.CertificationNumber),
+				new XElement(_vif + XMLNames.Component_Date,
+					XmlConvert.ToString(em.Date, XmlDateTimeSerializationMode.Utc)),
+				new XElement(_vif + XMLNames.Component_AppVersion, em.AppVersion),
+				new XElement(_vif + XMLNames.ElectricMachine_ElectricMachineType, em.ElectricMachineType.ToString()),
+			};
+		}
+
+		protected virtual List<XElement> GetElectricMachineSystemPowerRange(IElectricMotorDeclarationInputData em)
+		{
+			return new List<XElement> {
+				new XElement(_vif + XMLNames.ElectricMachine_R85RatedPower, em.R85RatedPower.ToXMLFormat(0)),
+				new XElement(_vif + XMLNames.ElectricMachine_RotationalInertia, em.Inertia.ToXMLFormat(2))
+			};
+		}
+		
+
+		protected virtual List<XElement> GetVoltageLevels(IList<IElectricMotorVoltageLevel> voltageLevels, CertificationMethod certificationMethod)
+		{
+			var result = new List<XElement>();
+
+			foreach (var voltageLevel in voltageLevels) {
+
+				var entry = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel,
+					voltageLevels.Count > 1
+						? new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageLevel.VoltageLevel.ToXMLFormat(0))
+						: null,
+					new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageLevel.ContinuousTorque.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque,
+						voltageLevel.ContinuousTorqueSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque,
+						voltageLevel.OverloadTorque.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque,
+						voltageLevel.OverloadTestSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration,
+						voltageLevel.OverloadTime.ToXMLFormat(2)), GetMaxTorqueCurve(voltageLevel.FullLoadCurve)
+				);
+				result.Add(entry);
+			}
+			
+			return result;
+		}
+
+
+		protected virtual XElement GetMaxTorqueCurve(DataTable maxTorqueData)
+		{
+			var maxTorqueCurveEntries = new List<XElement>();
+
+			for (int r = 0; r < maxTorqueData.Rows.Count; r++)
+			{
+				var row = maxTorqueData.Rows[r];
+				var outShaftSpeed = row[XMLNames.MaxTorqueCurve_OutShaftSpeed];
+				var maxTorque = row[XMLNames.MaxTorqueCurve_MaxTorque];
+				var minTorque = row[XMLNames.MaxTorqueCurve_MinTorque];
+
+				var element = new XElement(_vif + XMLNames.MaxTorqueCurve_Entry,
+					new XAttribute(XMLNames.MaxTorqueCurve_OutShaftSpeed, outShaftSpeed),
+					new XAttribute(XMLNames.MaxTorqueCurve_MaxTorque, maxTorque),
+					new XAttribute(XMLNames.MaxTorqueCurve_MinTorque, minTorque)
+				);
+
+				maxTorqueCurveEntries.Add(element);
+			}
+
+			return new XElement(_vif + XMLNames.MaxTorqueCurve, maxTorqueCurveEntries);
+		}
+
+
+		protected XElement GetDragCurve(TableData dragCurve)
+		{
+			var entries = new List<XElement>();
+			foreach (DataRow rowEntry in dragCurve.Rows) 
+			{
+				var outShaftSpeed = rowEntry[XMLNames.DragCurve_OutShaftSpeed].ToString().ToDouble();
+				var dragTorque = rowEntry[XMLNames.DragCurve_DragTorque].ToString().ToDouble();
+
+				var entry = new XElement(_vif + XMLNames.DragCurve_Entry,
+					new XAttribute(XMLNames.DragCurve_OutShaftSpeed, outShaftSpeed.ToXMLFormat(2)),
+					new XAttribute(XMLNames.DragCurve_DragTorque, dragTorque.ToXMLFormat(2)));
+
+				entries.Add(entry);
+			}
+
+			return new XElement(_vif + XMLNames.DragCurve, entries);
+		}
+
+
+		protected XElement GetConditioning(DataTable iepcData)
+		{
+			if (iepcData == null)
+				return null;
+
+			var entries = new List<XElement>();
+			for (int r = 0; r < iepcData.Rows.Count; r++)
+			{
+
+				var coolantTempInLet = iepcData.Rows[r][XMLNames.Conditioning_CoolantTempInlet];
+				var coolingPower = iepcData.Rows[r][XMLNames.Conditioning_CoolingPower];
+
+				entries.Add(new XElement(_vif + XMLNames.Conditioning_Entry,
+					new XAttribute(XMLNames.Conditioning_CoolantTempInlet, coolantTempInLet),
+					new XAttribute(XMLNames.Conditioning_CoolingPower, coolingPower)));
+			}
+
+			return new XElement(_vif + XMLNames.Conditioning, entries);
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1582901c6038fe647b035a9ee9c5779acfe1cbb2
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineType.cs
@@ -0,0 +1,58 @@
+using System.Collections.Generic;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFElectricMachineType : VIFElectricMachineGENType
+	{
+		public VIFElectricMachineType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var electricMachineEntries = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries;
+			if (electricMachineEntries == null || electricMachineEntries.Count == 0)
+				return null;
+
+			foreach (var electricMachine in electricMachineEntries) {
+				if (electricMachine.Position != PowertrainPosition.GEN)
+					return GetElectricMachineType(electricMachine);
+			}
+
+			return null;
+		}
+
+		#endregion
+		
+		private XElement GetElectricMachineType(ElectricMachineEntry<IElectricMotorDeclarationInputData> electricMachineData)
+		{
+			return new XElement(_vif + XMLNames.Component_ElectricMachine,
+				new XElement(_vif + XMLNames.ElectricMachine_PowertrainPosition,
+					electricMachineData.Position.ToXmlFormat()),
+				new XElement(_vif + XMLNames.ElectricMachine_Count, electricMachineData.Count),
+				_vifFactory.GetElectricMachineSystemType().GetElement(electricMachineData.ElectricMachine),
+				GetADC(electricMachineData.ADC),
+				Get25GearRatio(electricMachineData.RatioPerGear)
+			);
+		}
+
+		private XElement Get25GearRatio(double[] gearRatios)
+		{
+			if (gearRatios == null)
+				return null;
+
+			var results = new List<XElement>();
+			for (int i = 0; i < gearRatios.Length; i++) {
+				results.Add(new XElement(_vif + XMLNames.Gear_Ratio, new XAttribute(XMLNames.ElectricMachine_P2_5GearRatios_Gear_Attr, i + 1),
+					gearRatios[i].ToXMLFormat(3)));
+			}
+
+			return new XElement(_vif + XMLNames.ElectricMachine_P2_5GearRatios, results);
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMotorTorqueLimitsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMotorTorqueLimitsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e7e4fc4ac42e911cf9b3c0385545df423a6ddd6b
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMotorTorqueLimitsType.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFElectricMotorTorqueLimitsType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFElectricMotorTorqueLimitsType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var elTorqueLimits = inputData.JobInputData.Vehicle.ElectricMotorTorqueLimits;
+			if (elTorqueLimits == null || elTorqueLimits.Count == 0)
+				return null;
+
+			var electricMachine = new List<XElement>();
+			foreach (var entry in elTorqueLimits) {
+				electricMachine.Add(new XElement(_v24 + XMLNames.Component_ElectricMachine,
+					new XElement(_v24 + XMLNames.ElectricMachine_Position, entry.Key.ToXmlFormat()),
+					GetVoltageLevels(entry.Value)));
+			}
+
+			var xmlType = inputData.JobInputData.Vehicle.VehicleType == VectoSimulationJobType.SerialHybridVehicle
+				? "ElectricMachineTorqueLimitsSerialHybridType"
+				: "ElectricMachineTorqueLimitsType";
+			return new XElement(_vif + XMLNames.ElectricMotorTorqueLimits,
+				new XAttribute(_xsi + XMLNames.XSIType, xmlType),
+				new XAttribute("xmlns", _v24),
+				electricMachine);
+		}
+
+		private  List<XElement> GetVoltageLevels(List<Tuple<Volt, TableData>> voltageLevels)
+		{
+			var voltageEntries = new List<XElement>();
+			foreach (var voltageLevel in voltageLevels) 
+			{
+				var voltage = voltageLevel.Item1;
+				var maxTorqueCurveEntries = new List<XElement>();
+				for (int i = 0; i < voltageLevel.Item2.Rows.Count; i++) {
+
+					var row = voltageLevel.Item2.Rows[i];
+					var outShaftSpeed = row[XMLNames.MaxTorqueCurve_OutShaftSpeed];
+					var maxTorque = row[XMLNames.MaxTorqueCurve_MaxTorque];
+					var minTorque = row[XMLNames.MaxTorqueCurve_MinTorque];
+
+					var element = new XElement(_v23 + XMLNames.MaxTorqueCurve_Entry,
+						new XAttribute(XMLNames.MaxTorqueCurve_OutShaftSpeed, outShaftSpeed),
+						new XAttribute(XMLNames.MaxTorqueCurve_MaxTorque, maxTorque),
+						new XAttribute(XMLNames.MaxTorqueCurve_MinTorque, minTorque)
+					);
+
+					maxTorqueCurveEntries.Add(element);
+				}
+				
+				voltageEntries.Add( new XElement(_v24 + XMLNames.ElectricMachine_VoltageLevel, 
+					new XElement(_v24 + XMLNames.VoltageLevel_Voltage, voltage.ToXMLFormat(0)),
+					new XElement(_v24 + XMLNames.MaxTorqueCurve, maxTorqueCurveEntries)));
+
+			}
+
+			return voltageEntries;
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFEngineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFEngineType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6258d8454e3eceefcb5458013fb604aa85137271
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFEngineType.cs
@@ -0,0 +1,82 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFEngineType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFEngineType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var engine = inputData.JobInputData.Vehicle.Components.EngineInputData;
+			if (engine == null)	
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Engine,
+					new XElement(_vif + XMLNames.ComponentDataWrapper,
+						new XAttribute(_xsi + XMLNames.XSIType, "EngineDataVIFType"),
+						new XElement(_vif + XMLNames.Component_Manufacturer, engine.Manufacturer),
+						new XElement(_vif + XMLNames.Component_Model, engine.Model),
+						new XElement(_vif + XMLNames.Component_CertificationNumber, engine.CertificationNumber),
+						new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(engine.Date, XmlDateTimeSerializationMode.Utc)),
+						new XElement(_vif + XMLNames.Component_AppVersion, engine.AppVersion),
+						new XElement(_vif + XMLNames.Engine_Displacement,
+							engine.Displacement.ConvertToCubicCentiMeter().ToXMLFormat(0)),
+						new XElement(_vif + XMLNames.Engine_RatedSpeed, engine.RatedSpeedDeclared.AsRPM.ToXMLFormat(0)),
+						new XElement(_vif + XMLNames.Engine_RatedPower, engine.RatedPowerDeclared.ToXMLFormat(0)),
+						new XElement(_vif + XMLNames.Engine_MaxTorque, engine.MaxTorqueDeclared.ToXMLFormat(0)),
+						new XElement(
+							_vif + XMLNames.Engine_WHRType,
+							new XElement(_vif + XMLNames.Engine_WHR_MechanicalOutputICE, (engine.WHRType & WHRType.MechanicalOutputICE) != 0),
+							new XElement(_vif + XMLNames.Engine_WHR_MechanicalOutputIDrivetrain, (engine.WHRType & WHRType.MechanicalOutputDrivetrain) != 0),
+							new XElement(_vif + XMLNames.Engine_WHR_ElectricalOutput, (engine.WHRType & WHRType.ElectricalOutput) != 0)
+						),
+						GetEngineModes(engine.EngineModes))
+					);
+		}
+
+		private List<XElement> GetEngineModes(IList<IEngineModeDeclarationInputData> engineModes)
+		{
+			var modes = new List<XElement>();
+			foreach (var mode in engineModes)
+			{
+				modes.Add(
+					new XElement(
+						_vif + XMLNames.Engine_FuelModes,
+						new XElement(_vif + XMLNames.Engine_IdlingSpeed, mode.IdleSpeed.AsRPM.ToXMLFormat(0)),
+						new XElement(
+							_vif + XMLNames.Engine_FullLoadAndDragCurve,
+							FullLoadCurveReader.Create(mode.FullLoadCurve, true).FullLoadEntries.Select(
+								x => new XElement(
+									_vif + XMLNames.Engine_FullLoadCurve_Entry,
+									new XAttribute(XMLNames.Engine_EngineFullLoadCurve_EngineSpeed_Attr, x.EngineSpeed.AsRPM.ToXMLFormat(2)),
+									new XAttribute(XMLNames.Engine_FullLoadCurve_MaxTorque_Attr, x.TorqueFullLoad.ToXMLFormat(2)),
+									new XAttribute(XMLNames.Engine_FullLoadCurve_DragTorque_Attr, x.TorqueDrag.ToXMLFormat(2)))
+							)),
+						new XElement(
+							_vif + "Fuels",
+							mode.Fuels.Select(x => new XElement(_vif + XMLNames.Engine_FuelType, x.FuelType.ToXMLFormat())))
+					)
+				);
+			}
+
+			return modes;
+		}
+
+
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3545218ed395c1ec99669e045097edd737b1b894
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFIepcType.cs
@@ -0,0 +1,211 @@
+using System.Collections.Generic;
+using System.Data;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFIepcType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFIepcType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var iepc = inputData.JobInputData.Vehicle.Components.IEPC;
+			if (iepc == null)
+				return null;
+
+			var xmlIepc = iepc as AbstractCommonComponentType;
+			if (xmlIepc == null) {
+				throw new VectoException("IEPC requires input to be in XML format");
+			}
+
+			var certificationMethod = xmlIepc.XMLSource
+				.SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.Component_CertificationMethod))?.InnerText;
+
+			return new XElement(_vif + XMLNames.Component_IEPC,
+					new XElement(_vif + XMLNames.ComponentDataWrapper,
+						new XAttribute(_xsi + XMLNames.XSIType, "IEPCDataDeclarationType"),
+						new XElement(_vif + XMLNames.Component_Manufacturer, iepc.Manufacturer),
+						new XElement(_vif + XMLNames.Component_Model, iepc.Model),
+						new XElement(_vif + XMLNames.Component_CertificationNumber, iepc.CertificationNumber),
+						new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(iepc.Date, XmlDateTimeSerializationMode.Utc)),
+						new XElement(_vif + XMLNames.Component_AppVersion, iepc.AppVersion),
+						new XElement(_vif + XMLNames.ElectricMachine_ElectricMachineType, iepc.ElectricMachineType.ToString()),
+						new XElement(_vif + XMLNames.Component_CertificationMethod, certificationMethod),
+						new XElement(_vif + XMLNames.ElectricMachine_R85RatedPower, iepc.R85RatedPower.ToXMLFormat(0)),
+						new XElement(_vif + XMLNames.ElectricMachine_RotationalInertia, iepc.Inertia.ToXMLFormat(2)),
+						new XElement(_vif + XMLNames.IEPC_DifferentialIncluded, iepc.DifferentialIncluded),
+						new XElement(_vif + XMLNames.IEPC_DesignTypeWheelMotor, iepc.DesignTypeWheelMotor),
+						iepc.NrOfDesignTypeWheelMotorMeasured == null
+							? null
+							: new XElement(_vif + XMLNames.IEPC_NrOfDesignTypeWheelMotorMeasured, iepc.NrOfDesignTypeWheelMotorMeasured.Value),
+						GetGears(iepc.Gears),
+						GetVoltageLevels(iepc.VoltageLevels),
+						GetDragCurves(iepc.DragCurves),
+						GetConditioning(iepc.Conditioning)
+					)
+			);
+		}
+		
+		#endregion
+
+
+		private XElement GetGears(IList<IGearEntry> gearsData)
+		{
+			var gears = new List<XElement>();
+			
+			foreach (var gearEntry in gearsData) {
+
+				var currentGear = new XElement(_vif + XMLNames.Gear_EntryName,
+					new XAttribute("number", gearEntry.GearNumber.ToString()),
+					new XElement(_vif + XMLNames.GearRatio_Ratio, gearEntry.Ratio.ToXMLFormat(3)),
+					gearEntry.MaxOutputShaftTorque == null 
+						? null
+						: new XElement(_vif + XMLNames.Gear_MaxOutputShaftTorque, gearEntry.MaxOutputShaftTorque.ToXMLFormat(0)),
+
+					gearEntry.MaxOutputShaftSpeed == null 
+						? null 
+						: new XElement(_vif + XMLNames.Gear_MaxOutputShaftSpeed, gearEntry.MaxOutputShaftSpeed.AsRPM.ToXMLFormat(0))
+					);
+				gears.Add(currentGear);
+			}
+			
+			return new XElement(_vif + XMLNames.Gearbox_Gears, 
+				new XAttribute(_xsi + XMLNames.XSIType, "IEPCGearsDeclarationType"),
+				gears);
+		}
+
+
+		private IList<XElement> GetVoltageLevels(IList<IElectricMotorVoltageLevel> voltageData)
+		{
+			var voltageLevels = new List<XElement>();
+
+			foreach (var voltageEntry in voltageData) {
+
+				var voltage = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel,
+					voltageEntry.VoltageLevel == null 
+						? null 
+						: new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageEntry.VoltageLevel.ToXMLFormat(0)),
+					new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageEntry.ContinuousTorque.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, voltageEntry.ContinuousTorqueSpeed.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, voltageEntry.OverloadTorque.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, voltageEntry.OverloadTestSpeed.ToXMLFormat(2)),
+					new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, voltageEntry.OverloadTime.ToXMLFormat(2)),
+					GetMaxTorqueCurve(voltageEntry.FullLoadCurve)
+					//GetPowerMap(voltageEntry.PowerMap)
+				);
+
+				voltageLevels.Add(voltage);
+			}
+
+			return voltageLevels;
+		}
+
+
+		private XElement GetMaxTorqueCurve(DataTable maxTorqueData)
+		{
+			var maxTorqueCurveEntries = new List<XElement>();
+
+			for (int r = 0; r < maxTorqueData.Rows.Count; r++) {
+				var row = maxTorqueData.Rows[r];
+				var outShaftSpeed = row[XMLNames.MaxTorqueCurve_OutShaftSpeed];
+				var maxTorque = row[XMLNames.MaxTorqueCurve_MaxTorque];
+				var minTorque = row[XMLNames.MaxTorqueCurve_MinTorque];
+				
+				var element = new XElement(_v23 + XMLNames.MaxTorqueCurve_Entry,
+					new XAttribute(XMLNames.MaxTorqueCurve_OutShaftSpeed, outShaftSpeed),
+					new XAttribute(XMLNames.MaxTorqueCurve_MaxTorque, maxTorque),
+					new XAttribute(XMLNames.MaxTorqueCurve_MinTorque, minTorque)
+				);
+
+				maxTorqueCurveEntries.Add(element);
+			}
+
+			return new XElement(_vif + XMLNames.MaxTorqueCurve, maxTorqueCurveEntries);
+		}
+		
+		private List<XElement> GetPowerMap(IList<IElectricMotorPowerMap> powerMapData)
+		{
+			var powerMaps = new List<XElement>();
+
+			foreach (var powerMapEntry in powerMapData) {
+				
+				var entries = new List<XElement>();
+				for (int r = 0; r < powerMapEntry.PowerMap.Rows.Count; r++) {
+					var outShaftSpeed = powerMapEntry.PowerMap.Rows[r][XMLNames.PowerMap_OutShaftSpeed].ToString().ToDouble();
+					var torque = powerMapEntry.PowerMap.Rows[r][XMLNames.PowerMap_Torque].ToString().ToDouble();
+					var electricPower = powerMapEntry.PowerMap.Rows[r][XMLNames.PowerMap_ElectricPower].ToString().ToDouble();
+
+					var entry = new XElement(_vif + XMLNames.PowerMap_Entry,
+						new XAttribute(XMLNames.PowerMap_OutShaftSpeed, outShaftSpeed.ToXMLFormat(2)),
+						new XAttribute(XMLNames.PowerMap_Torque, torque.ToXMLFormat(2)),
+						new XAttribute(XMLNames.PowerMap_ElectricPower, electricPower.ToXMLFormat(2)));
+					entries.Add(entry);
+				}
+
+				var powerEntry = new XElement(_vif + XMLNames.PowerMap,
+					new XAttribute("gear", powerMapEntry.Gear),
+					entries);
+
+				powerMaps.Add(powerEntry);
+			}
+
+			return powerMaps;
+		}
+
+		private IList<XElement> GetDragCurves(IList<IDragCurve> dragCurves)
+		{
+			var result = new List<XElement>();
+			
+			foreach (var dragCurve in dragCurves) {
+				var entries = new List<XElement>();
+				for (int r = 0; r < dragCurve.DragCurve.Rows.Count; r++) {
+					var outShaftSpeed = dragCurve.DragCurve.Rows[r][XMLNames.DragCurve_OutShaftSpeed].ToString().ToDouble();
+					var dragTorque = dragCurve.DragCurve.Rows[r][XMLNames.DragCurve_DragTorque].ToString().ToDouble();
+
+					var entry = new XElement(_vif + XMLNames.DragCurve_Entry,
+						new XAttribute(XMLNames.DragCurve_OutShaftSpeed, outShaftSpeed.ToXMLFormat(2)),
+						new XAttribute(XMLNames.DragCurve_DragTorque, dragTorque.ToXMLFormat(2)));
+
+					entries.Add(entry);
+				}
+
+				result.Add(new  XElement(_vif + XMLNames.DragCurve, 
+					new XAttribute(XMLNames.DragCurve_Gear, dragCurve.Gear.Value),
+					entries));
+			}
+
+			return result;
+		}
+
+		private XElement GetConditioning(DataTable iepcData)
+		{
+			if (iepcData == null)
+				return null;
+
+			var entries = new List<XElement>();
+			for (int r = 0; r < iepcData.Rows.Count; r++) {
+
+				var coolantTempInLet = iepcData.Rows[r][XMLNames.Conditioning_CoolantTempInlet];
+				var coolingPower = iepcData.Rows[r][XMLNames.Conditioning_CoolingPower];
+
+				entries.Add(new XElement(_vif + XMLNames.Conditioning_Entry, 
+					new XAttribute(XMLNames.Conditioning_CoolantTempInlet, coolantTempInLet),
+					new XAttribute(XMLNames.Conditioning_CoolingPower, coolingPower)));
+			}
+			
+			return new XElement(_vif + XMLNames.Conditioning, entries);
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0754d15218f0ae7404fb5329d27b60dfd72bf7ef
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs
@@ -0,0 +1,43 @@
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFRetarderType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFRetarderType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var retarder = inputData.JobInputData.Vehicle.Components.RetarderInputData;
+			if (retarder == null || retarder.Type.IsOneOf(RetarderType.EngineRetarder, RetarderType.None,
+					RetarderType.LossesIncludedInTransmission))
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Retarder,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "RetarderDataVIFType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, retarder.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, retarder.Model),
+					new XElement(_vif + XMLNames.Component_CertificationMethod, retarder.CertificationMethod.ToXMLFormat()),
+					retarder.CertificationMethod == CertificationMethod.StandardValues
+						? null
+						: new XElement(_vif + XMLNames.Report_Component_CertificationNumber,
+							retarder.CertificationNumber),
+					new XElement(_vif + XMLNames.Component_Date,
+						XmlConvert.ToString(retarder.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, retarder.AppVersion),
+					new XElement(_vif + XMLNames.Vehicle_RetarderRatio, retarder.Ratio.ToXMLFormat(3))
+				));
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..715819fe9ed699dc44d11d4e5c581b3f85835fcb
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs
@@ -0,0 +1,45 @@
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFTorqueConverterType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFTorqueConverterType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var torque = inputData.JobInputData.Vehicle.Components.TorqueConverterInputData;
+			if (torque == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_TorqueConverter,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "TorqueConverterDataVIFType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, torque.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, torque.Model),
+					new XElement(_vif + XMLNames.Component_CertificationMethod,
+						torque.CertificationMethod.ToXMLFormat()),
+					torque.CertificationMethod == CertificationMethod.StandardValues
+						? null
+						: new XElement(_vif + XMLNames.Report_Component_CertificationNumber,
+							torque.CertificationNumber),
+					new XElement(_vif + XMLNames.Component_Date,
+						XmlConvert.ToString(torque.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, torque.AppVersion)
+				));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueLimitsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueLimitsType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f665a33df79ae19bf7ceb4cae383d0b3de2537e4
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueLimitsType.cs
@@ -0,0 +1,37 @@
+using System.Linq;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+    public class VIFTorqueLimitsType : AbstractVIFXmlType, IXmlTypeWriter
+    {
+		public VIFTorqueLimitsType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			if (inputData.JobInputData.Vehicle.TorqueLimits == null ||
+				inputData.JobInputData.Vehicle.TorqueLimits.Count == 0)
+				return null;
+
+			var torqueLimits = inputData.JobInputData.Vehicle.TorqueLimits;
+
+			return new XElement(_vif + XMLNames.Vehicle_TorqueLimits,
+				new XAttribute(_xsi + XMLNames.XSIType, "TorqueLimitsType"),
+				new XAttribute("xmlns", _v20.NamespaceName),
+				torqueLimits
+					.OrderBy(x => x.Gear)
+					.Select(entry => new XElement(_v20 + XMLNames.Vehicle_TorqueLimits_Entry,
+							new XAttribute(XMLNames.Vehicle_TorqueLimits_Entry_Gear_Attr, entry.Gear),
+							new XAttribute(XMLNames.Vehicle_TorqueLimits_Entry_MaxTorque_Attr, entry.MaxTorque.ToXMLFormat(0))
+						)
+					));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTransmissionType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTransmissionType.cs
new file mode 100644
index 0000000000000000000000000000000000000000..fee5ab2a148c1aba8a73dc86f58270e1fbab1c69
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTransmissionType.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
+{
+	public class VIFTransmissionType : AbstractVIFXmlType, IXmlTypeWriter
+	{
+		public VIFTransmissionType(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		#region Implementation of IXmlTypeWriter
+
+		public XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var transmission = inputData.JobInputData.Vehicle.Components.GearboxInputData;
+			if (transmission == null)
+				return null;
+
+			return new XElement(_vif + XMLNames.Component_Transmission,
+				new XElement(_vif + XMLNames.ComponentDataWrapper,
+					new XAttribute(_xsi + XMLNames.XSIType, "TransmissionDataVIFType"),
+					new XElement(_vif + XMLNames.Component_Manufacturer, transmission.Manufacturer),
+					new XElement(_vif + XMLNames.Component_Model, transmission.Model),
+					new XElement(_vif + XMLNames.Component_Gearbox_CertificationMethod,
+						transmission.CertificationMethod.ToXMLFormat()),
+					transmission.CertificationMethod == CertificationMethod.StandardValues
+						? null
+						: new XElement(_vif + XMLNames.Component_CertificationNumber, transmission.CertificationNumber),
+					new XElement(_vif + XMLNames.Component_Date,
+						XmlConvert.ToString(transmission.Date, XmlDateTimeSerializationMode.Utc)),
+					new XElement(_vif + XMLNames.Component_AppVersion, transmission.AppVersion),
+					new XElement(_vif + XMLNames.Gearbox_TransmissionType, transmission.Type.ToXMLFormat()),
+					new XElement(_vif + XMLNames.Gearbox_Gears,
+						new XAttribute(_xsi + XMLNames.XSIType, "TransmissionGearsVIFType"),
+						transmission.Gears.Select(
+							x => new XElement(
+								_vif + XMLNames.Gearbox_Gears_Gear,
+								new XAttribute(XMLNames.Gearbox_Gear_GearNumber_Attr, x.Gear),
+								new XElement(_vif + XMLNames.Gearbox_Gear_Ratio, x.Ratio.ToXMLFormat(3)),
+								x.MaxTorque != null
+									? new XElement(_vif + XMLNames.Gearbox_Gears_MaxTorque, x.MaxTorque.ToXMLFormat(0))
+									: null,
+								x.MaxInputSpeed != null
+									? new XElement(_vif + XMLNames.Gearbox_Gear_MaxSpeed,
+										x.MaxInputSpeed.AsRPM.ToXMLFormat(0))
+									: null)
+						)
+					)
+				)
+			);
+		}
+
+		#endregion
+	}
+
+
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleParameterGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleParameterGroup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0fae518bb6ecf906991815222c975899110a8710
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleParameterGroup.cs
@@ -0,0 +1,334 @@
+using System.Collections.Generic;
+using System.Xml;
+using System.Xml.Linq;
+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
+{
+
+	public class PrimaryBusGeneralParameterGroup : AbstractVIFGroupWriter
+	{
+		public PrimaryBusGeneralParameterGroup(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>
+			{
+				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)),
+			};
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class PrimaryBusChassisParameterGroup : AbstractVIFGroupWriter
+	{
+		public PrimaryBusChassisParameterGroup(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>
+			{
+				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)),
+			};
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class PrimaryBusRetarderParameterGroup : AbstractVIFGroupWriter
+	{
+		public PrimaryBusRetarderParameterGroup(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>
+			{
+				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,
+			};
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class PrimaryBusXeVParameterGroup : AbstractVIFGroupWriter
+	{
+		public PrimaryBusXeVParameterGroup(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> {
+				new XElement(_vif + XMLNames.Vehicle_OvcHev, vehicle.OvcHev),
+			};
+			return result;
+		}
+
+		#endregion
+	}
+
+	
+	public class ConventionalVIFVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public ConventionalVIFVehicleParameterGroup(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_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;
+		}
+
+		#endregion
+	}
+
+
+	public class HevIepcSVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public HevIepcSVehicleParameterGroup(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_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)));
+			result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat()));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel()));
+			result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData));
+			result.Add(_vifReportFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			var electricMotorTorque = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData);
+			if(electricMotorTorque != null)
+				result.Add(electricMotorTorque);
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class HevSxVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public HevSxVehicleParameterGroup(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_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)));
+			result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat()));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel()));
+			result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData));
+			result.Add(_vifReportFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			var electricMotorTorque = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData);
+			if (electricMotorTorque != null)
+				result.Add(electricMotorTorque);
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class IepcVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public IepcVehicleParameterGroup(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.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData));
+			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(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel()));
+			result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData));
+			result.Add(_vifReportFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class PevExVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public PevExVehicleParameterGroup(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.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat()));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel()));
+			result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData));
+			result.Add(_vifReportFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			var motorTorqueLimits = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData);
+			if(motorTorqueLimits != null)
+				result.Add(motorTorqueLimits);
+			
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class PevIEPCVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public PevIEPCVehicleParameterGroup(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.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_AngledriveType, (vehicle.Components.AngledriveInputData?.Type ?? AngledriveType.None).ToXMLFormat()));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle));
+			result.Add(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel()));
+			result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData));
+			result.Add(_vifReportFactory.GetIEPCADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			var motorTorqueLimits = _vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData);
+			if (motorTorqueLimits != null)
+				result.Add(motorTorqueLimits);
+
+			return result;
+		}
+
+		#endregion
+	}
+
+	public class HevPxVehicleParameterGroup : AbstractVIFGroupWriter
+	{
+		public HevPxVehicleParameterGroup(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_IdlingSpeed, vehicle.EngineIdleSpeed.AsRPM.ToXMLFormat(0)));
+			result.AddRange(_vifReportFactory.GetPrimaryBusRetarderParameterGroup().GetElements(inputData));
+			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(new XElement(_vif + XMLNames.Vehicle_ArchitectureID, vehicle.ArchitectureID.GetLabel()));
+			result.AddRange(_vifReportFactory.GetPrimaryBusXevParameterGroup().GetElements(inputData));
+			result.Add(_vifReportFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
+			result.Add(_vifReportFactory.GetTorqueLimitsType().GetElement(inputData));
+			result.Add(_vifReportFactory.GetElectricMotorTorqueLimitsType().GetElement(inputData));
+			result.Add(_vifReportFactory.GetBoostingLimitationsType().GetElement(inputData));
+
+			return result;
+		}
+
+		#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/PrimaryVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleWriter.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1b838f10fc15bb077ca2badd50018dabefc9080f
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryVehicleWriter.cs
@@ -0,0 +1,264 @@
+using System.Xml.Linq;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	public abstract class VehicleWriter : IXmlTypeWriter
+	{
+		protected readonly IVIFReportFactory _vifReportFactory;
+
+		protected XNamespace _vif = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+		protected XNamespace _xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+
+		protected VehicleWriter(IVIFReportFactory vifReportFactory)
+		{
+			_vifReportFactory = vifReportFactory;
+		}
+		
+
+		#region Implementation of IXmlTypeWriter
+
+		public abstract XElement GetElement(IDeclarationInputDataProvider inputData);
+
+		#endregion
+	}
+
+
+	public class ConventionalVehicleType : VehicleWriter
+	{
+		public ConventionalVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+		
+		#region Overrides of VehicleWriter
+		
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetConventionalVehicleGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetConventionalComponentType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+					new XAttribute(_xsi + XMLNames.XSIType, "ConventionalVehicleVIFType"),
+					vehicleData);
+		}
+
+		#endregion
+	}
+
+
+	public class HevIepcSVehicleType : VehicleWriter
+	{
+		public HevIepcSVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetHevIepcSVehicleParameterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetHevIepcSComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+					new XAttribute(_xsi + XMLNames.XSIType, "HEV-IEPC-S_VehicleVIFType"),
+					vehicleData);
+		}
+
+		#endregion
+	}
+
+
+	public class HevPxVehicleType : VehicleWriter
+	{
+		public HevPxVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+
+			var vehicleData = _vifReportFactory.GetHevPxVehicleParameterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetHevPxComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV-Px_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+
+	public class HevS2VehicleType : VehicleWriter
+	{
+		public HevS2VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetHevSxVehicleParameterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetHevS2ComponentVIFType().GetElement(inputData));
+			
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV-Sx_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+
+	public class HevS3VehicleType : VehicleWriter
+	{
+		public HevS3VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetHevSxVehicleParameterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetHevS3ComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV-Sx_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+
+	public class HevS4VehicleType : VehicleWriter
+	{
+		public HevS4VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetHevSxVehicleParameterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetHevS4ComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "HEV-Sx_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+	public class IepcVehicleType : VehicleWriter
+	{
+		public IepcVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetIepcVehicleParameterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetPevIEPCComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "IEPC_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+
+	public class PevE2VehicleType : VehicleWriter
+	{
+		public PevE2VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetPevExVehicleParmeterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetPevE2ComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_Ex_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+	public class PevE3VehicleType : VehicleWriter
+	{
+		public PevE3VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetPevExVehicleParmeterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetPevE3ComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_Ex_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+	public class PevE4VehicleType : VehicleWriter
+	{
+		public PevE4VehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetPevExVehicleParmeterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetPevE4ComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "PEV_Ex_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#endregion
+	}
+
+	public class PevIEPCVehicleType : VehicleWriter
+	{
+		public PevIEPCVehicleType(IVIFReportFactory vifReportFactory) : base(vifReportFactory) { }
+
+		#region Overrides of VehicleWriter
+
+		public override XElement GetElement(IDeclarationInputDataProvider inputData)
+		{
+			var vehicleData = _vifReportFactory.GetPevIEPCVehicleParmeterGroup().GetElements(inputData);
+			vehicleData.Add(_vifReportFactory.GetPevIEPCComponentVIFType().GetElement(inputData));
+
+			return new XElement(_vif + XMLNames.Component_Vehicle,
+				new XAttribute(_xsi + XMLNames.XSIType, "IEPC_VehicleVIFType"),
+				vehicleData);
+		}
+
+		#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/VehicleInformationFile_0_1/VIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..da2414c8c771d3d37b6e1b0e03fda5f2ad073eb9
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFNinjectModule.cs
@@ -0,0 +1,503 @@
+using Ninject.Activation;
+using Ninject.Extensions.ContextPreservation;
+using Ninject.Extensions.Factory;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.InterimComponents;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport;
+using TUGraz.VectoCore.Utils.Ninject;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1
+{
+	internal class VIFNinjectModule : MRFNinjectModule
+	{
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			LoadModule<ContextPreservationModule>();
+
+			Bind<IVIFReportInterimFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod,
+				6, 6, 
+				typeof(IVIFReportInterimFactory).GetMethod(nameof(IVIFReportInterimFactory.GetInterimVIFReport)) )).InSingletonScope();
+
+			Bind<IVIFReportFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(nameCombinationMethod,
+				6, 6, typeof(IVIFReportFactory).GetMethod(nameof(IVIFReportFactory.GetVIFReport))
+				)).InSingletonScope();
+			
+			
+			#region Primary Vehicle Information File Reports
+
+			Bind<IXMLVehicleInformationFile>().To<Conventional_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<HEV_Px_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<HEV_S2_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<HEV_S3_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+			Bind<IXMLVehicleInformationFile>().To<HEV_S4_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<HEV_IEPC_S_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<PEV_E2_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<PEV_E3_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<PEV_E4_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<PEV_IEPC_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLVehicleInformationFile>().To<Exempted_PrimaryBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+			#endregion
+
+			#region Complete(d) Primary Vehicle Information File Reports
+
+			// -- Reports
+
+			Bind<IXMLMultistepIntermediateReport>().To<Conventional_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ParallelHybridVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S_IEPC,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<HEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.SerialHybridVehicle,
+					ArchitectureID.S4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E2,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E3,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<PEV_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.E4,
+					false,
+					false,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<IEPC_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.BatteryElectricVehicle,
+					ArchitectureID.UNKNOWN,
+					false,
+					true,
+					false)));
+
+			Bind<IXMLMultistepIntermediateReport>().To<Exempted_CompletedBus_VIF>().Named(nameCombinationMethod.Invoke(
+				ToParams(VehicleCategoryHelper.PrimaryBus,
+					VectoSimulationJobType.ConventionalVehicle,
+					ArchitectureID.UNKNOWN,
+					true,
+					false,
+					false)));
+
+			// -- Vehicle type writers
+
+			Bind<IXmlMultistepTypeWriter>().To<ConventionalInterimVehicleType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetConventionalVehicleType());
+
+			Bind<IXmlMultistepTypeWriter>().To<HEVInterimVehicleType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetHEVVehicleType());
+
+			Bind<IXmlMultistepTypeWriter>().To<PEVInterimVehicleType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetPEVVehicleType());
+
+			Bind<IXmlMultistepTypeWriter>().To<IEPCInterimVehicleType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetIEPCVehicleType());
+
+
+			Bind<IXmlMultistepTypeWriter>().To<ExemptedInterimVehicleType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetExemptedVehicleType());
+
+			// -- Components type writers
+
+			Bind<IReportMultistepCompletedBusTypeWriter>().To<ConventionalComponentsInterimVIFType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetConventionalInterimComponentsType());
+
+			Bind<IReportMultistepCompletedBusTypeWriter>().To<XEVComponentsInterimVIFType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetxEVInterimComponentsType());
+
+			// -- ADAS type writers
+
+			Bind<IVIFFAdasType>().To<VIFCompletedConventionalAdasType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetConventionalInterimADASType());
+
+			Bind<IVIFFAdasType>().To<VIFCompletedHEVAdasType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetHEVInterimADASType());
+
+			Bind<IVIFFAdasType>().To<VIFCompletedPEVAdasType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetPEVInterimADASType());
+
+			Bind<IVIFFAdasType>().To<VIFCompletedIEPCAdasType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetIEPCInterimADASType());
+
+
+			// -- Airdrag type writers
+
+			Bind<IReportMultistepCompletedBusTypeWriter>().To<AirdragInterimType>().When(AccessedViaInterimVIFFactory)
+                .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetInterimAirdragType());
+
+            // -- Aux type writers
+			
+			Bind<IReportMultistepCompletedBusTypeWriter>().To<ConventionalInterimAuxiliaryType>().When(AccessedViaInterimVIFFactory)
+                .NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetInterimConventionalAuxiliariesType());
+
+			Bind<IReportMultistepCompletedBusTypeWriter>().To<XEVInterimAuxiliaryType>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetInterimxEVAuxiliariesType());
+
+			// -- Parameter Groups
+
+			Bind<IReportMultistepCompletedBusOutputGroup>().To<CompletedBusGeneralParametersGroup>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusGeneralParametersGroup());
+
+			Bind<IReportMultistepCompletedBusOutputGroup>().To<GetCompletedBusParametersGroup>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusParametersGroup());
+
+			Bind<IReportMultistepCompletedBusOutputGroup>().To<CompletedBusPassengerCountGroup>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusPassengerCountGroup());
+
+			Bind<IReportMultistepCompletedBusOutputGroup>().To<CompletedBusDimensionsGroup>().When(AccessedViaInterimVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportInterimFactory f) => f.GetCompletedBusDimensionsGroup());
+
+			#endregion
+
+			#region VehicleTypes
+
+			Bind<IXmlTypeWriter>().To<ConventionalVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalVehicleType());
+
+			Bind<IXmlTypeWriter>().To<HevIepcSVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevIepcSVehicleType());
+
+			Bind<IXmlTypeWriter>().To<HevPxVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevPxVehicleType());
+
+			Bind<IXmlTypeWriter>().To<HevS2VehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS2VehicleType());
+
+			Bind<IXmlTypeWriter>().To<HevS3VehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS3VehicleType());
+
+			Bind<IXmlTypeWriter>().To<HevS4VehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS4VehicleType());
+
+			Bind<IXmlTypeWriter>().To<IepcVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIepcVehicleType());
+
+			Bind<IXmlTypeWriter>().To<PevE2VehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE2VehicleType());
+
+			Bind<IXmlTypeWriter>().To<PevE3VehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE3VehicleType());
+
+			Bind<IXmlTypeWriter>().To<PevE4VehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE4VehicleType());
+
+			Bind<IXmlTypeWriter>().To<PevIEPCVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCVehicleType());
+
+			Bind<IXmlTypeWriter>().To<ExemptedVehicleType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetExemptedVehicleType());
+
+			#endregion
+
+
+			#region Component Group
+
+			Bind<IXmlTypeWriter>().To<ConventionalComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalComponentType());
+
+			Bind<IXmlTypeWriter>().To<HevIepcSComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevIepcSComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<HevPxComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevPxComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<HevS2ComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS2ComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<HevS3ComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS3ComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<HevS4ComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevS4ComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<PevE2ComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE2ComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<PevE3ComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE3ComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<PevE4ComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevE4ComponentVIFType());
+
+			Bind<IXmlTypeWriter>().To<IepcComponentVIFType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCComponentVIFType());
+
+			#endregion
+
+			#region Vehicle Group
+
+			Bind<IReportOutputGroup>().To<ConventionalVIFVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalVehicleGroup());
+
+			Bind<IReportOutputGroup>().To<PrimaryBusGeneralParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusGeneralParameterGroup());
+
+			Bind<IReportOutputGroup>().To<PrimaryBusChassisParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusChassisParameterGroup());
+
+			Bind<IReportOutputGroup>().To<PrimaryBusRetarderParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusRetarderParameterGroup());
+
+			Bind<IReportOutputGroup>().To<PrimaryBusXeVParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPrimaryBusXevParameterGroup());
+
+			Bind<IReportOutputGroup>().To<HevIepcSVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevIepcSVehicleParameterGroup());
+
+			Bind<IReportOutputGroup>().To<HevSxVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHevSxVehicleParameterGroup());
+
+			Bind<IReportOutputGroup>().To<IepcVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIepcVehicleParameterGroup());
+
+			Bind<IReportOutputGroup>().To<PevExVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevExVehicleParmeterGroup());
+			
+			Bind<IReportOutputGroup>().To<PevIEPCVehicleParameterGroup>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPevIEPCVehicleParmeterGroup());
+			
+			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
+
+			Bind<IVIFFAdasType>().To<VIFConventionalAdasType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetConventionalADASType());
+
+			Bind<IVIFFAdasType>().To<VIFHEVAdasType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetHEVADASType());
+
+			Bind<IVIFFAdasType>().To<VIFPEVAdasType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetPEVADASType());
+
+			Bind<IVIFFAdasType>().To<VIFIEPCAdasType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIEPCADASType());
+
+			Bind<IXmlTypeWriter>().To<VIFAngleDriveType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAngelDriveType());
+
+			Bind<IXmlTypeWriter>().To<VIFAuxiliaryType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryType());
+
+			Bind<IXmlTypeWriter>().To<VIFAuxiliaryHevSType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryHevSType());
+
+			Bind<IXmlTypeWriter>().To<VIFAuxiliaryIEPC_SType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryIEPC_SType());
+
+			Bind<IXmlTypeWriter>().To<VIFAuxiliaryHevPType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryHevPType());
+
+			Bind<IXmlTypeWriter>().To<VIFAuxiliaryIEPCType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryIEPCType());
+
+			Bind<IXmlTypeWriter>().To<VIFAuxiliaryPEVType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAuxiliaryPEVType());
+
+			Bind<IXmlTypeWriter>().To<VIFAxlegearType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAxlegearType());
+
+			Bind<IXmlTypeWriter>().To<VIFRetarderType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetRetarderType());
+
+			Bind<IXmlTypeWriter>().To<VIFAxleWheelsType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetAxleWheelsType());
+
+			Bind<IXmlTypeWriter>().To<VIFBoostingLimitationsType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetBoostingLimitationsType());
+
+			Bind<IXmlTypeWriter>().To<VIFElectricEnergyStorageType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricEnergyStorageType());
+
+			Bind<IXmlTypeWriter>().To<VIFElectricMachineGENType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineGENType());
+
+			Bind<IXmlElectricMachineSystemType>().To<XmlElectricMachineSystemMeasuredType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineSystemType());
+
+			Bind<IXmlTypeWriter>().To<VIFElectricMachineType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineType());
+			
+			Bind<IXmlTypeWriter>().To<VIFElectricMotorTorqueLimitsType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMotorTorqueLimitsType());
+
+			Bind<IXmlTypeWriter>().To<VIFEngineType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetEngineType());
+
+			Bind<IXmlTypeWriter>().To<VIFTorqueConverterType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetTorqueConvertType());
+
+			Bind<IXmlTypeWriter>().To<VIFIepcType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetIepcType());
+
+			Bind<IXmlTypeWriter>().To<VIFTorqueLimitsType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetTorqueLimitsType());
+
+			Bind<IXmlTypeWriter>().To<VIFTransmissionType>().When(AccessedViaVIFFactory)
+				.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetTransmissionType());
+
+			#endregion
+		}
+
+
+		private bool AccessedViaVIFFactory(IRequest request)
+		{
+			if (request.ParentRequest == null)
+			{
+				return false;
+			}
+			return typeof(IVIFReportFactory).IsAssignableFrom(request.ParentRequest.Service);
+		}
+
+
+		private bool AccessedViaInterimVIFFactory(IRequest request)
+		{
+			if (request.ParentRequest == null) {
+				return false;
+			}
+			return typeof(IVIFReportInterimFactory).IsAssignableFrom(request.ParentRequest.Service);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Interim.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Interim.cs
new file mode 100644
index 0000000000000000000000000000000000000000..287f6703d2d5e8d2b4c0664a1155444856328523
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Interim.cs
@@ -0,0 +1,307 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Hashing;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoHashing;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport
+{
+	public abstract class AbstractVehicleInformationFileCompleted : IXMLMultistepIntermediateReport
+	{
+		protected XNamespace VIF = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
+
+		protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
+		protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#";
+
+		protected IPrimaryVehicleInformationInputDataProvider _primaryVehicleInputData;
+		protected IList<IManufacturingStageInputData> _manufacturingStageInputData;
+		protected IManufacturingStageInputData _consolidatedInputData;
+		protected IVehicleDeclarationInputData _vehicleInputData;
+
+		protected XElement _primaryVehicle;
+		protected List<XElement> _manufacturingStages;
+		protected List<XAttribute> _namespaceAttributes;
+		
+		protected readonly IVIFReportInterimFactory _vifFactory;
+		protected IMultistageVIFInputData _inputData;
+
+		protected AbstractVehicleInformationFileCompleted(IVIFReportInterimFactory vifReportFactory)
+		{
+			_manufacturingStages = new List<XElement>();
+			_namespaceAttributes = new List<XAttribute>();
+
+			_vifFactory = vifReportFactory;
+		}
+
+		#region Implementation of IXMLVehicleInformationFile
+
+
+		public void Initialize(VectoRunData modelData)
+		{
+			//InitializeVehicleData(modelData.MultistageVIFInputData);
+
+			_primaryVehicleInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.PrimaryVehicle;
+			_manufacturingStageInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.ManufacturingStages;
+			_consolidatedInputData = modelData.MultistageVIFInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage;
+			_vehicleInputData = modelData.MultistageVIFInputData.VehicleInputData;
+
+			_inputData = modelData.MultistageVIFInputData;
+
+			SetInputXMLData(_primaryVehicleInputData.Vehicle.XMLSource);
+		}
+
+		private void SetInputXMLData(XmlNode primeVehicleNode)
+		{
+			var nodes = GetDocumentNodes(primeVehicleNode);
+			var documentNode = GetDocumentNode(nodes);
+			SetXmlNamespaceAttributes(nodes);
+
+			var xDocument = XElement.Parse(documentNode.InnerXml);
+			foreach (var xElement in xDocument.Descendants()) {
+				if (xElement.Name.LocalName == XMLNames.Bus_PrimaryVehicle)
+					_primaryVehicle = xElement;
+				else if (xElement.Name.LocalName == XMLNames.ManufacturingStep)
+					_manufacturingStages.Add(xElement);
+			}
+
+			if (_manufacturingStages.Count == 0)
+				_manufacturingStages = null;
+		}
+
+		private List<XmlNode> GetDocumentNodes(XmlNode primeVehicleNode)
+		{
+			var nodes = new List<XmlNode>();
+			NodeParentSearch(primeVehicleNode, nodes);
+			return nodes;
+		}
+
+		private XmlNode GetDocumentNode(List<XmlNode> nodes)
+		{
+			if (nodes == null || nodes.Count == 0)
+				return null;
+
+			foreach (var node in nodes) {
+				if (node.NodeType == XmlNodeType.Document)
+					return node;
+			}
+			return null;
+		}
+
+		private void SetXmlNamespaceAttributes(List<XmlNode> nodes)
+		{
+			if (nodes == null || nodes.Count == 0)
+				return;
+			XmlAttributeCollection namespaceAttributes = null;
+			foreach (var node in nodes) {
+				if (node.LocalName == XMLNames.VectoOutputMultistep) {
+					namespaceAttributes = node.Attributes;
+					break;
+				}
+			}
+
+			if (namespaceAttributes == null || namespaceAttributes.Count == 0)
+				return;
+
+			foreach (XmlAttribute attribute in namespaceAttributes) {
+				if (string.IsNullOrEmpty(attribute.Prefix))
+					_namespaceAttributes.Add(new XAttribute(attribute.LocalName, attribute.Value));
+				else if (attribute.Prefix == "xmlns")
+					_namespaceAttributes.Add(new XAttribute(XNamespace.Xmlns + attribute.LocalName, attribute.Value));
+				else if (attribute.Prefix == "xsi")
+					_namespaceAttributes.Add(new XAttribute(xsi + attribute.LocalName, attribute.Value));
+			}
+		}
+
+		private void NodeParentSearch(XmlNode currentNode, List<XmlNode> nodes)
+		{
+			if (currentNode?.ParentNode == null || nodes == null)
+				return;
+
+			nodes.Add(currentNode.ParentNode);
+			NodeParentSearch(currentNode.ParentNode, nodes);
+		}
+
+		public XDocument Report { get; protected set; }
+		
+		public void GenerateReport()
+		{
+			var retVal = new XDocument();
+			retVal.Add(
+				new XElement(VIF + XMLNames.VectoOutputMultistep,
+					_namespaceAttributes,
+					_primaryVehicle,
+					_manufacturingStages,
+					GenerateInputManufacturingStage()
+				)
+			);
+			Report = retVal;
+		}
+
+		#endregion
+
+		protected abstract XElement GenerateInputManufacturingStage();
+	}
+
+	// ----------------------------------
+
+	internal abstract class VehicleInformationFile_InterimStep : AbstractVehicleInformationFileCompleted
+	{
+		protected VehicleInformationFile_InterimStep(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+		protected override XElement GenerateInputManufacturingStage()
+		{
+			var multistageId = $"{VectoComponents.VectoManufacturingStep.HashIdPrefix()}{GetGUID()}";
+			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
+
+			var stage = new XElement(VIF + XMLNames.ManufacturingStep,
+				new XAttribute(XMLNames.ManufacturingStep_StepCount, GetStageNumber()),
+				new XAttribute(XNamespace.Xmlns + "xsi", xsi),
+				new XElement(VIF + XMLNames.Report_DataWrap,
+					new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStepDataType"),
+					new XAttribute(XMLNames.Component_ID_Attr, multistageId),
+					GetHashPreviousStepElement(),
+					GetVehicleElement(),
+					XMLHelper.GetApplicationInfo(VIF)));
+
+			var sigXElement = GetSignatureElement(stage);
+			stage.LastNode.Parent.Add(sigXElement);
+			return stage;
+		}
+
+		protected abstract XElement GetVehicleElement();
+
+		private XElement GetHashPreviousStepElement()
+		{
+			DigestData digitData;
+			if (_manufacturingStageInputData == null || _manufacturingStageInputData.Count == 0) {
+				digitData = _primaryVehicleInputData.VehicleSignatureHash;
+			} else {
+				digitData = _manufacturingStageInputData.Last().Signature;
+			}
+
+			return new XElement(VIF + "HashPreviousStep",
+				digitData.ToXML(di));
+		}
+
+		private XElement GetSignatureElement(XElement stage)
+		{
+			var stream = new MemoryStream();
+			var w = new XmlTextWriter(stream, Encoding.UTF8);
+			stage.WriteTo(w);
+			w.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
+
+			return new XElement(VIF + XMLNames.DI_Signature,
+				VectoHash.Load(stream).ComputeXmlHash
+					(VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod)
+			);
+		}
+
+		private int GetStageNumber()
+		{
+			if (_manufacturingStageInputData == null || _manufacturingStageInputData.Count == 0)
+				return 2;
+
+			return _manufacturingStageInputData.Last().StepCount + 1;
+		}
+
+		protected string GetGUID()
+		{
+			return Guid.NewGuid().ToString("n").Substring(0, 20);
+		}
+	}
+
+	// ----------------------------------
+
+	internal class Conventional_CompletedBus_VIF : VehicleInformationFile_InterimStep
+	{
+		public Conventional_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VehicleInformationFile_InterimStep
+
+		protected override XElement GetVehicleElement()
+		{
+            return _vifFactory.GetConventionalVehicleType().GetElement(_inputData);
+		}
+
+		#endregion
+	}
+
+	// ----------------------------------
+
+	internal class HEV_CompletedBus_VIF : VehicleInformationFile_InterimStep
+	{
+		public HEV_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VehicleInformationFile_InterimStep
+
+		protected override XElement GetVehicleElement()
+		{
+			return _vifFactory.GetHEVVehicleType().GetElement(_inputData);
+		}
+
+		#endregion
+	}
+
+	// ----------------------------------
+
+	internal class PEV_CompletedBus_VIF : VehicleInformationFile_InterimStep
+	{
+		public PEV_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VehicleInformationFile_InterimStep
+
+		protected override XElement GetVehicleElement()
+		{
+			return _vifFactory.GetPEVVehicleType().GetElement(_inputData);
+		}
+
+		#endregion
+	}
+
+	// ----------------------------------
+
+	internal class IEPC_CompletedBus_VIF : VehicleInformationFile_InterimStep
+	{
+		public IEPC_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VehicleInformationFile_InterimStep
+
+		protected override XElement GetVehicleElement()
+		{
+			return _vifFactory.GetIEPCVehicleType().GetElement(_inputData);
+		}
+
+		#endregion
+	}
+
+	// ----------------------------------
+
+	internal class Exempted_CompletedBus_VIF : VehicleInformationFile_InterimStep
+	{
+		public Exempted_CompletedBus_VIF(IVIFReportInterimFactory vifFactory) : base(vifFactory) { }
+
+
+		#region Overrides of VehicleInformationFile_InterimStep
+
+		protected override XElement GetVehicleElement()
+		{
+			return _vifFactory.GetExemptedVehicleType().GetElement(_inputData);
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Primary.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Primary.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9ab107c7e8db4d9b64912670f38fda2ba5d17e01
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VehicleInformationFile/VehicleInformationFile_Primary.cs
@@ -0,0 +1,137 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.InputData;
+
+namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport
+{
+	internal abstract class VehicleInformationFile_PrimaryStep : AbstractVehicleInformationFile
+	{
+		private string _outputDataType;
+
+		public VehicleInformationFile_PrimaryStep(IVIFReportFactory vifFactory) : base(vifFactory)
+		{
+			_tns = VIF;
+		}
+
+		#region Overrides of AbstractVIFReport
+
+		public override string OutputDataType => _outputDataType;
+
+		
+
+		#endregion
+	}
+
+	internal class Conventional_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public Conventional_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetConventionalVehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class HEV_Px_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public HEV_Px_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetHevPxVehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class HEV_S2_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public HEV_S2_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetHevS2VehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class HEV_S3_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public HEV_S3_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetHevS3VehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class HEV_S4_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public HEV_S4_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetHevS4VehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class HEV_IEPC_S_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public HEV_IEPC_S_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetHevIepcSVehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class PEV_E2_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public PEV_E2_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetPevE2VehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class PEV_E3_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public PEV_E3_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetPevE3VehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class PEV_E4_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public PEV_E4_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetPevE4VehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class PEV_IEPC_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public PEV_IEPC_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetPevIEPCVehicleType().GetElement(inputData);
+		}
+	}
+
+	internal class Exempted_PrimaryBus_VIF : VehicleInformationFile_PrimaryStep
+	{
+		public Exempted_PrimaryBus_VIF(IVIFReportFactory vifFactory) : base(vifFactory) { }
+
+		protected override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			Vehicle = _vifFactory.GetExemptedVehicleType().GetElement(inputData);
+		}
+	}
+}
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/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
index 83820bd6682132c3db7b990a2d56bb56181abae0..8014f54f467732810739382b03926e1f6967addc 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
@@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		}
 	}
 
-	public class XMLMultistageBusReport: IXMLMultistageReport 
+	public class XMLMultistageBusReport: IXMLMultistepIntermediateReport 
 	{
 		protected XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
 		protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#";
@@ -89,6 +89,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		public XMLMultistageBusReport()
 		{
+			throw new VectoException("do not use anymore!");
 			_manufacturingStages = new List<XElement>();
 			_namespaceAttributes = new List<XAttribute>();
 		}
@@ -217,7 +218,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		private XElement GenerateInputManufacturingStage()
 		{
 			var multistageId = $"{VectoComponents.VectoManufacturingStep.HashIdPrefix()}{GetGUID()}";
-			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
+			var vehicleId = $"{VectoComponents.VectoInterimVehicleInformation.HashIdPrefix()}{GetGUID()}";
 
 			var stage = new XElement(tns + XMLNames.ManufacturingStep,
 				new XAttribute(XMLNames.ManufacturingStep_StepCount, GetStageNumber()),
@@ -327,7 +328,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			
 			return new XElement(
 				v24 + XMLNames.Vehicle_ADAS,
-				new XAttribute(xsi + "type", "ADAS_Conventional_Type"),
+				new XAttribute(xsi + XMLNames.XSIType, "ADAS_Conventional_Type"),
 				new XElement(v24 + XMLNames.Vehicle_ADAS_EngineStopStart, adasData.EngineStopStart),
 				new XElement(v24 + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adasData.EcoRoll.WithoutEngineStop()),
 				new XElement(v24 + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adasData.EcoRoll.WithEngineStop()),
@@ -510,7 +511,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 			return new XElement(v24 + XMLNames.BusAux_HVAC,
 				hvac.SystemConfiguration != null
-					? new XElement(v24 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.GetXmlFormat()) : null,
+					? new XElement(v24 + XMLNames.Bus_SystemConfiguration, hvac.SystemConfiguration.ToXmlFormat()) : null,
 				hvac.HeatPumpTypeCoolingDriverCompartment != null && hvac.HeatPumpTypeHeatingDriverCompartment != null
 					? new XElement(v24 + XMLNames.Bus_HeatPumpTypeDriver, 
 						new XElement(v24 + XMLNames.BusHVACHeatPumpCooling,  hvac.HeatPumpTypeCoolingDriverCompartment.GetLabel()),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
index 29d5de3a55aaf693d5b5aa82b493b63d248da16e..4f07df1870f816006c89b9af2d5d1bd18b8683fe 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
@@ -25,8 +25,9 @@ using TUGraz.VectoHashing;
 
 namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile
 {
-	public class XMLPrimaryBusVehicleReport : IXMLPrimaryVehicleReport
+	public class XMLPrimaryBusVehicleReport : IXMLVehicleInformationFile
 	{
+		public XNamespace Tns => tns;
 		protected XNamespace tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1";
 		protected XNamespace di = "http://www.w3.org/2000/09/xmldsig#";
 		protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
@@ -46,6 +47,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		public XMLPrimaryBusVehicleReport()
 		{
+			throw new NotImplementedException("use new implementation...");
 			VehiclePart = new XElement(tns + XMLNames.Component_Vehicle);
 			Results = new XElement(tns + XMLNames.Report_Results);
 		}
@@ -79,12 +81,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		{
 			var results = new XElement(Results);
 			results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error"));
-			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
+			var vehicleId = $"{VectoComponents.VectoPrimaryVehicleInformation.HashIdPrefix()}{GetGUID()}";
 
 			var primaryVehicle = new XElement(tns + XMLNames.Bus_PrimaryVehicle,
 				new XElement(tns + XMLNames.Report_DataWrap,
 					new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
-					new XAttribute(xsi + "type", "PrimaryVehicleDataType"),
+					new XAttribute(xsi + XMLNames.XSIType, "PrimaryVehicleDataType"),
 					new XAttribute("xmlns", tns),
 					VehiclePart,
 					InputDataIntegrity,
@@ -131,9 +133,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public virtual void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			VehiclePart.Add(
-				new XAttribute(xsi + "type", "VehiclePIFType"),
+				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)),
@@ -165,7 +167,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			return new XElement(
 				tns + XMLNames.Vehicle_ADAS,
 				new XAttribute(
-					xsi + "type",
+					xsi + XMLNames.XSIType,
 					$"{adasData.InputData.XMLSource.SchemaInfo.SchemaType.QualifiedName.Name}"),
 				new XAttribute("xmlns", ns),
 				XElement.Parse(adasData.InputData.XMLSource.OuterXml).Elements()
@@ -185,7 +187,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			return new XElement(
 				tns + XMLNames.Vehicle_TorqueLimits,
 				new XAttribute(
-					xsi + "type", $"{tcLimits.SchemaInfo.SchemaType.QualifiedName.Name}"),
+					xsi + XMLNames.XSIType, $"{tcLimits.SchemaInfo.SchemaType.QualifiedName.Name}"),
 				new XAttribute("xmlns", ns.NamespaceName),
 				XElement.Parse(tcLimits.OuterXml).Elements()
 			);
@@ -195,7 +197,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		{
 			return new XElement(
 				tns + XMLNames.Vehicle_Components,
-				new XAttribute(xsi + "type", "VehicleComponentsPIFType"),
+				new XAttribute(xsi + XMLNames.XSIType, "Vehicle_Conventional_ComponentsVIFType"),
 				GetEngineDescription(modelData.EngineData, fuelModes),
 				GetGearboxDescription(modelData.GearboxData),
 				GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData),
@@ -213,7 +215,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			
 			return new XElement(tns + XMLNames.Component_TorqueConverter,
 				new XElement(tns + XMLNames.Report_DataWrap,
-					new XAttribute(xsi + "type", "TorqueConverterDataPIFType"),
+					new XAttribute(xsi + XMLNames.XSIType, "TorqueConverterDataVIFType"),
 					GetCommonDescription(torqueConverter),
 					new XElement(tns + XMLNames.Component_AppVersion, torqueConverter.AppVersion)
 				));
@@ -227,7 +229,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			
 			return new XElement(tns + XMLNames.Component_AxleWheels,
 					new XElement(tns + XMLNames.Report_DataWrap, 
-						new XAttribute(xsi + "type", "AxleWheelsDataPIFType"),
+						new XAttribute(xsi + XMLNames.XSIType, "AxleWheelsDataVIFType"),
 						new XElement(tns + XMLNames.AxleWheels_Axles,
 							GetAxlesNodes(axlesNodes)
 						)));
@@ -242,8 +244,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 				var axleNumber = axleNode.Attributes[XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr].Value;
 				var axle = new XElement(tns + XMLNames.AxleWheels_Axles_Axle,
 							new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, axleNumber),
-							new XAttribute(XNamespace.Xmlns + "v2.0", v20),
-							new XAttribute(xsi + "type", "v2.0:AxleDataDeclarationType"),
+							//new XAttribute(XNamespace.Xmlns + "v2.0", v20),
+							new XAttribute(xsi + XMLNames.XSIType, "AxleDataDeclarationType"),
 								XElement.Parse(axleNode.OuterXml.Replace("xsi:type=\"TyreDataDeclarationType\"", "xsi:type=\"v2.0:TyreDataDeclarationType\"")).Elements());
 				
 				axles.Add(axle);
@@ -264,7 +266,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 			var result =  new XElement(tns + XMLNames.Component_Auxiliaries,
 				new XElement(tns + XMLNames.ComponentDataWrapper,
-					new XAttribute(xsi + "type", "AuxiliaryDataPIFType"),
+					new XAttribute(xsi + XMLNames.XSIType, "AUX_Conventional_PrimaryBusType"),
 					//new XAttribute("xmlns", tns.NamespaceName), //automically created
 					new XElement(tns + XMLNames.BusAux_Fan, new XElement(tns + XMLNames.BusAux_Technology,  aux.FanTechnology)),
 					GetSteeringPumpElement(aux.SteeringPumpTechnology),
@@ -385,7 +387,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		private XElement GetAxlegearDescription(AxleGearData axleGearData)
 		{
 			return WrapComponent(
-				XMLNames.Component_Axlegear, "AxlegearDataPIFType",
+				XMLNames.Component_Axlegear, "AxlegearDataVIFType",
 				GetCommonDescription(axleGearData),
 				new XElement(tns + XMLNames.Component_AppVersion, axleGearData.InputData.AppVersion),
 				new XElement(tns + XMLNames.Axlegear_LineType, axleGearData.LineType.ToXMLFormat()),
@@ -394,10 +396,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		private XElement GetAngledriveDescription(AngledriveData angledriveData)
 		{
-			if (angledriveData == null) 
+			if (angledriveData == null) {
 				return null;
+			} 
+				
 			
-			return WrapComponent(XMLNames.Component_Angledrive, "AngledriveDataPIFType",
+			return WrapComponent(XMLNames.Component_Angledrive, "AngledriveDataVIFType",
 				GetCommonDescription(angledriveData),
 					new XElement(tns + XMLNames.Component_AppVersion, angledriveData.InputData.AppVersion),
 					new XElement(tns + XMLNames.AngleDrive_Ratio, angledriveData.Angledrive.Ratio.ToXMLFormat(3))
@@ -407,12 +411,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		private XElement GetGearboxDescription(GearboxData gearboxData)
 		{
 			var retVal = WrapComponent(
-				"Transmission", "TransmissionDataPIFType",
+				"Transmission", "TransmissionDataVIFType",
 				GetCommonDescription(gearboxData),
 				new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()),
 				new XElement(
 					tns + XMLNames.Gearbox_Gears,
-					new XAttribute(xsi + "type", "TransmissionGearsPIFType"),
+					new XAttribute(xsi + XMLNames.XSIType, "TransmissionGearsVIFType"),
 					gearboxData.Gears.Select(
 						x =>
 							new XElement(
@@ -432,6 +436,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 
 		private XElement GetEngineDescription(CombustionEngineData engineData, List<List<FuelData.Entry>> fuelModes)
 		{
+			
 			var fuels = new List<XElement>();
 			foreach (var mode in engineData.InputData.EngineModes) {
 				fuels.Add(
@@ -455,7 +460,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 			}
 
 			var retVal = WrapComponent(
-				XMLNames.Component_Engine, "EngineDataPIFType",
+				XMLNames.Component_Engine, "EngineDataVIFType",
 				GetCommonDescription(engineData),
 				new XElement(tns + XMLNames.Engine_Displacement, engineData.Displacement.ConvertToCubicCentiMeter().ToXMLFormat(0)),
 				new XElement(tns + XMLNames.Engine_RatedSpeed, engineData.RatedSpeedDeclared.AsRPM.ToXMLFormat(0)),
@@ -464,11 +469,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 				new XElement(
 					tns + XMLNames.Engine_WHRType,
 					new XElement(
-						v23 + XMLNames.Engine_WHR_MechanicalOutputICE, (engineData.WHRType & WHRType.MechanicalOutputICE) != 0),
+						tns + XMLNames.Engine_WHR_MechanicalOutputICE, (engineData.WHRType & WHRType.MechanicalOutputICE) != 0),
 					new XElement(
-						v23 + XMLNames.Engine_WHR_MechanicalOutputIDrivetrain,
+						tns + XMLNames.Engine_WHR_MechanicalOutputIDrivetrain,
 						(engineData.WHRType & WHRType.MechanicalOutputDrivetrain) != 0),
-					new XElement(v23 + XMLNames.Engine_WHR_ElectricalOutput, (engineData.WHRType & WHRType.ElectricalOutput) != 0)
+					new XElement(tns + XMLNames.Engine_WHR_ElectricalOutput, (engineData.WHRType & WHRType.ElectricalOutput) != 0)
 				),
 				fuels
 			);
@@ -482,11 +487,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 				tns + elementName,
 				new XElement(
 					tns + XMLNames.ComponentDataWrapper,
-					new XAttribute(xsi + "type", dataType),
+					new XAttribute(xsi + XMLNames.XSIType, dataType),
 					commonElements,
 					specificElements));
 		}
-
+	 
 
 		private object[] GetCommonDescription(CombustionEngineData data)
 		{
@@ -530,36 +535,36 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		{
 			_allSuccess &= resultEntry.Status == VectoRun.Status.Success;
 
-			//if (resultEntry.Status == VectoRun.Status.Success) {
-			//	_weightedPayload += resultEntry.Payload * resultEntry.WeightingFactor;
-			//	_weightedCo2 += resultEntry.CO2Total / resultEntry.Distance * resultEntry.WeightingFactor;
-			//}
-			Results.Add(
-				new XElement(
-					tns + XMLNames.Report_Result_Result,
-					new XAttribute(
-						XMLNames.Report_Result_Status_Attr,
-						resultEntry.Status == VectoRun.Status.Success ? "success" : "error"),
-					new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, resultEntry.VehicleClass.GetClassNumber()),
-					new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()),
-					new XElement(
-						tns + XMLNames.Report_ResultEntry_SimulationParameters,
-						new XElement(
-							tns + XMLNames.Report_ResultEntry_TotalVehicleMass,
-							XMLHelper.ValueAsUnit(resultEntry.TotalVehicleMass, XMLNames.Unit_kg, 2)),
-						new XElement(
-							tns + XMLNames.Report_Result_Payload, XMLHelper.ValueAsUnit(resultEntry.Payload, XMLNames.Unit_kg, 2)),
-						new XElement(
-							tns + XMLNames.Report_ResultEntry_PassengerCount,
-							resultEntry.PassengerCount?.ToXMLFormat(2) ?? "NaN"),
-						new XElement(
-							tns + XMLNames.Report_Result_FuelMode,
-							resultEntry.FuelData.Count > 1
-								? XMLNames.Report_Result_FuelMode_Val_Dual
-								: XMLNames.Report_Result_FuelMode_Val_Single)
-					),
-					GetResults(resultEntry)));
-		}
+            //if (resultEntry.Status == VectoRun.Status.Success) {
+            //	_weightedPayload += resultEntry.Payload * resultEntry.WeightingFactor;
+            //	_weightedCo2 += resultEntry.CO2Total / resultEntry.Distance * resultEntry.WeightingFactor;
+            //}
+            Results.Add(
+                new XElement(
+                    tns + XMLNames.Report_Result_Result,
+                    new XAttribute(
+                        XMLNames.Report_Result_Status_Attr,
+                        resultEntry.Status == VectoRun.Status.Success ? "success" : "error"),
+                    new XElement(tns + XMLNames.Report_Results_PrimaryVehicleSubgroup, resultEntry.VehicleClass.GetClassNumber()),
+                    new XElement(tns + XMLNames.Report_Result_Mission, resultEntry.Mission.ToXMLFormat()),
+                    new XElement(
+                        tns + XMLNames.Report_ResultEntry_SimulationParameters,
+                        new XElement(
+                            tns + XMLNames.Report_ResultEntry_TotalVehicleMass,
+                            XMLHelper.ValueAsUnit(resultEntry.TotalVehicleMass, XMLNames.Unit_kg, 2)),
+                        new XElement(
+                            tns + XMLNames.Report_Result_Payload, XMLHelper.ValueAsUnit(resultEntry.Payload, XMLNames.Unit_kg, 2)),
+                        new XElement(
+                            tns + XMLNames.Report_ResultEntry_PassengerCount,
+                            resultEntry.PassengerCount?.ToXMLFormat(2) ?? "NaN"),
+                        new XElement(
+                            tns + XMLNames.Report_Result_FuelMode,
+                            resultEntry.FuelData.Count > 1
+                                ? XMLNames.Report_Result_FuelMode_Val_Dual
+                                : XMLNames.Report_Result_FuelMode_Val_Single)
+                    ),
+                    GetResults(resultEntry)));
+        }
 
 		private object[] GetResults(XMLDeclarationReport.ResultEntry resultEntry)
 		{
diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs
index c5734c20a941ecc764680d429908ef1f1866004a..d7aa6efde1c45ed942b7f75c650cd841d6ef6968 100644
--- a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/AbstractComponentWriter.cs
@@ -162,7 +162,7 @@ namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer
 		{
 			var xsns = Writer.RegisterNamespace(XMLDefinitions.XML_SCHEMA_NAMESPACE);
 			return new XAttribute(
-				xsns + "type", $"{Writer.GetNSPrefix(ComponentDataNamespace.NamespaceName)}:{XMLDataType}");
+				xsns + XMLNames.XSIType, $"{Writer.GetNSPrefix(ComponentDataNamespace.NamespaceName)}:{XMLDataType}");
 		}
 
 		public virtual object[] WriteXML(IAdvancedDriverAssistantSystemsEngineering inputData)
diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs
index 7a264233edcb4550215c763921976fdbc3a37e38..dd0542a3e98f2369cc732aede44e81f4da7c271f 100644
--- a/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/Engineering/XMLEngineeringWriter.cs
@@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.OutputData.XML.Engineering
 				new XElement(
 					v10Inp + XMLNames.VectoComponentEngineering,
 					new XAttribute(
-						xsns + "type", $"{GetNSPrefix(v10Def.NamespaceName)}:VectoComponentEngineeringType"),
+						xsns + XMLNames.XSIType, $"{GetNSPrefix(v10Def.NamespaceName)}:VectoComponentEngineeringType"),
 					GetNamespaceAttributes(),
 					GetSchemaLocations(),
 					new XElement(
diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs
index b5e32a7a021ee7eb94a07d0b2439e7d55c4de491..f859fc1bf2953cef3cf42fac0f948dcfa27e52fa 100644
--- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs
@@ -18,10 +18,10 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
 			return new XElement[] {
 				new XElement(writerNamespace + XMLNames.Bus_HeightIntegratedBody,
 					vehicle.Height.ConvertToMilliMeter()),
-				new XElement(writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter()),
-				new XElement(writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter()),
+				new XElement(writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter().ToXMLFormat(0)),
+				new XElement(writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter().ToXMLFormat(0)),
 				new XElement(writerNamespace + XMLNames.Bus_EntranceHeight,
-					vehicle.EntranceHeight.ConvertToMilliMeter())
+					vehicle.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0))
 			};
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs
index fb1acfd11c5d401f29126f559b33ea1f8c826de9..90246d90b312b4297fcafd2833196bb8b9811702 100644
--- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/Components/Auxiliaries/BusAuxHVACConventionalGroupWriter.cs
@@ -23,7 +23,7 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Compon
 			var elements = new List<XElement>();
 
 			elements.Add(new XElement(_writerNamespace + XMLNames.Bus_SystemConfiguration, 
-				aux.HVACAux.SystemConfiguration.GetXmlFormat()));
+				aux.HVACAux.SystemConfiguration.ToXmlFormat()));
 
 			elements.AddRange(_groupWriterFactory
 				.GetBusAuxiliariesDeclarationGroupWriter(GroupNames.BusAuxHVACHeatPumpSequenceGroup, _writerNamespace)
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs
index 47ab2e5bb42d3161bce0e91fdbf78bc522d8b1c7..888ff037c5950917b4320435ab026a098f2f991c 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationNamespaces.cs
@@ -13,15 +13,15 @@ namespace TUGraz.VectoCore.OutputData.XML
 		public static readonly XNamespace Xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
 		public static readonly XNamespace Tns = "urn:tugraz:ivt:VectoAPI:DeclarationInput";
 		public static readonly XNamespace Tns_v20 = Tns.NamespaceName + ":v2.0";
-		public static readonly XNamespace V26 = DeclarationDefinition + ":DEV:v2.6";
+		//public static readonly XNamespace V26 = DeclarationDefinition + ":DEV:v2.6";
 		public static readonly XNamespace V21 = DeclarationDefinition + ":v2.1";
-		public static readonly XNamespace V23 = DeclarationDefinition + ":DEV:v2.3";
+		public static readonly XNamespace V23 = DeclarationDefinition + ":v2.3";
 		public static readonly XNamespace V24 = DeclarationDefinition + ":v2.4";
 		public static readonly XNamespace V20 = DeclarationDefinition + ":v2.0";
 		public static readonly XNamespace V10 = DeclarationDefinition + ":v1.0";
-		public static readonly XNamespace V28 = DeclarationDefinition + ":DEV:v2.8";
-		public static readonly XNamespace v2_10_1 = DeclarationDefinition + ":DEV:v2.10.1";
-		public static readonly XNamespace v2_10_2 = DeclarationDefinition + ":DEV:v2.10.2";
+		//public static readonly XNamespace V28 = DeclarationDefinition + ":DEV:v2.8";
+		//public static readonly XNamespace v2_10_1 = DeclarationDefinition + ":DEV:v2.10.1";
+		//public static readonly XNamespace v2_10_2 = DeclarationDefinition + ":DEV:v2.10.2";
 		public static readonly XNamespace Di = "http://www.w3.org/2000/09/xmldsig#";
 
 		public static readonly string DeclarationRootNamespace = "urn:tugraz:ivt:VectoAPI:DeclarationJob";
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index 94eb0b24302e3cb824756009de2f173d96aff83d..7cdfff60bd38a6f915d12d5c40b02d17e4f05aac 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -237,7 +237,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 				WeightingGroup = DeclarationData.WeightingGroup.Lookup(
 						modelData.VehicleData.VehicleClass, modelData.VehicleData.SleeperCab.Value,
-						modelData.EngineData.RatedPowerDeclared);
+						modelData.EngineData?.RatedPowerDeclared ?? Watt.Create(0));
 			}
 
 			_weightingFactors = WeightingGroup == WeightingGroup.Unknown
@@ -248,19 +248,19 @@ namespace TUGraz.VectoCore.OutputData.XML
 			InstantiateReports(modelData);
 
 			ManufacturerRpt.Initialize(modelData, fuelModes);
-			CustomerRpt.Initialize(modelData, fuelModes);
+			CustomerRpt?.Initialize(modelData, fuelModes);
 		}
 
 		public WeightingGroup WeightingGroup { get; protected set; }
 
 		protected virtual void InstantiateReports(VectoRunData modelData)
 		{
-			if (modelData.Exempted) {
-				ManufacturerRpt = new XMLManufacturerReportExemptedTruck();
-			} else {
-				ManufacturerRpt = new XMLManufacturerReportTruck();
-			}
-			CustomerRpt = new XMLCustomerReport();
+			//if (modelData.Exempted) {
+			//	ManufacturerRpt = new XMLManufacturerReportExemptedTruck();
+			//} else {
+			//	ManufacturerRpt = new XMLManufacturerReportTruck();
+			//}
+			//CustomerRpt = new XMLCustomerReport();
 		}
 
 		private static IDictionary<Tuple<MissionType, LoadingType>, double> ZeroWeighting =>
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
index 18d8a1e85ecdd895948090b3846024ae1743645a..5c4f366dd67215160f704204ca4c0f908e10da1a 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs
@@ -13,12 +13,13 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport;
 namespace TUGraz.VectoCore.OutputData.XML {
 	public class XMLDeclarationReportCompletedVehicle : XMLDeclarationReport
 	{
-		public XMLDeclarationReportCompletedVehicle(IReportWriter writer, bool writePIF = false) : base(writer) { }
+		public XMLDeclarationReportCompletedVehicle(IReportWriter writer) : base(writer) { }
 
 		public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleReportInputData { get; set; }
 
 		#region Overrides of XMLDeclarationReport
 
+
 		protected override void InstantiateReports(VectoRunData modelData)
 		{
 			ManufacturerRpt = modelData.Exempted
@@ -101,5 +102,6 @@ namespace TUGraz.VectoCore.OutputData.XML {
 				OutputReports();
 			}
 		}
+
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
index ad95a11bea40adcef0ae56fb10791115b9e70ed1..64cefe551683f1dd912d3bd5477c8150582c4b84 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportFactory.cs
@@ -7,17 +7,33 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
 
 namespace TUGraz.VectoCore.OutputData.XML
 {
     class XMLDeclarationReportFactory : IXMLDeclarationReportFactory
     {
+		private readonly IManufacturerReportFactory _mrfFactory;
+		private readonly ICustomerInformationFileFactory _cifFactory;
+		private readonly IVIFReportFactory _vifFactory;
+		private readonly IVIFReportInterimFactory _vifInterimFactory;
+
 		#region Implementation of IXMLDeclarationReportFactory
 
+		
+		public XMLDeclarationReportFactory(IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory, IVIFReportFactory vifFactory, IVIFReportInterimFactory vifInterimFactory)
+		{
+			_mrfFactory = mrfFactory;
+			_cifFactory = cifFactory;
+			_vifFactory = vifFactory;
+			_vifInterimFactory = vifInterimFactory;
+		}
 		public IDeclarationReport CreateReport(IInputDataProvider input, IOutputDataWriter outputWriter)
 		{
 			switch (input) {
-				case IMultistageBusInputDataProvider multistageBusInputDataProvider:
+				case IMultistepBusInputDataProvider multistageBusInputDataProvider:
 					break;
 				case ISingleBusInputDataProvider singleBusInputDataProvider:
 					return new XMLDeclarationReport(outputWriter);
@@ -53,14 +69,14 @@ namespace TUGraz.VectoCore.OutputData.XML
 		{
 			if (multistageVifInputData.VehicleInputData == null)
 			{
-				var reportCompleted = new XMLDeclarationReportCompletedVehicle(outputDataWriter, true)
+				var reportCompleted = new XMLDeclarationReportCompletedVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory)
 				{
 					PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle,
 				};
 				return reportCompleted;
 			}
 			else {
-				var report = new XMLDeclarationReportMultistageBusVehicle(outputDataWriter);
+				var report = new XMLDeclarationReportInterimVehicle_09(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, _vifInterimFactory);
 				return report;
 			}
 		}
@@ -71,21 +87,19 @@ namespace TUGraz.VectoCore.OutputData.XML
 			var vehicleCategory = declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory;
 			if (vehicleCategory.IsLorry())
 			{
-				return new XMLDeclarationReport(outputDataWriter);
+				return new XMLDeclarationReport09(outputDataWriter, _mrfFactory, _cifFactory);
 			}
 
 			if (vehicleCategory.IsBus())
 				switch (declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory)
 				{
 					case VehicleCategory.HeavyBusCompletedVehicle:
-						return new XMLDeclarationReportCompletedVehicle(outputDataWriter,
-												declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle)
+						return new XMLDeclarationReportCompletedVehicle(outputDataWriter)
 											{
 												PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData,
 											};
 					case VehicleCategory.HeavyBusPrimaryVehicle:
-						return new XMLDeclarationReportPrimaryVehicle(outputDataWriter,
-												declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle);
+						return new XMLDeclarationReportPrimaryVehicle(outputDataWriter);
 
 					default:
 						break;
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
index c2ba05703732a8c25a4d0f5e6a8123828388ab17..f43b744104bccdb232a27443433523775c2fc887 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportMultistageBusVehicle.cs
@@ -3,19 +3,25 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
 
 namespace TUGraz.VectoCore.OutputData.XML
 {
+	/// <summary>
+	/// Create VIF of an interim (or the complete(d) step
+	/// </summary>
 	public class XMLDeclarationReportMultistageBusVehicle : XMLDeclarationReport
 	{
-		private IXMLMultistageReport _multistageBusReport;
+		protected IXMLMultistepIntermediateReport _multistageBusReport;
 
 		public XMLDeclarationReportMultistageBusVehicle(IReportWriter writer)
 			: base(writer)
 		{
+			throw new NotImplementedException();
+			//throw new VectoException("Used here");
 			//_multistageBusReport = new XMLMultistageBusReport();
 		}
 		
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
index 36bdb48f59d0c32501569a67a651132268576c30..633400763537d0101d3e3f0f1c055f6bf28720e4 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportPrimaryVehicle.cs
@@ -10,16 +10,16 @@ using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
 namespace TUGraz.VectoCore.OutputData.XML {
 	public class XMLDeclarationReportPrimaryVehicle : XMLDeclarationReport
 	{
-		protected IXMLPrimaryVehicleReport PrimaryReport;
+		protected IXMLVehicleInformationFile VehicleInformationFile;
 
 
-		public XMLDeclarationReportPrimaryVehicle(IReportWriter writer, bool writePIF = false) : base(writer)
+		public XMLDeclarationReportPrimaryVehicle(IReportWriter writer) : base(writer)
 		{
 		}
 
 		public override XDocument CustomerReport => null;
 
-		public override XDocument PrimaryVehicleReport => PrimaryReport?.Report;
+		public override XDocument PrimaryVehicleReport => VehicleInformationFile?.Report;
 
 
 		#region Overrides of XMLDeclarationReport
@@ -29,12 +29,12 @@ namespace TUGraz.VectoCore.OutputData.XML {
 			if (modelData.Exempted) {
 				ManufacturerRpt = new XMLManufacturerReportExeptedPrimaryBus();
 				CustomerRpt = new XMLCustomerReportExemptedPrimaryBus();
-				PrimaryReport = new XMLExemptedPrimaryBusVehicleReport();
+				VehicleInformationFile = new XMLExemptedPrimaryBusVehicleReport();
 
 			} else {
 				ManufacturerRpt = new XMLManufacturerReportPrimaryBus();
 				CustomerRpt = new XMLCustomerReport();
-				PrimaryReport = new XMLPrimaryBusVehicleReport();
+				VehicleInformationFile = new XMLPrimaryBusVehicleReport();
 			}
 
 
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
 		{
 			base.InitializeReport(modelData, fuelModes);
-			PrimaryReport.Initialize(modelData,fuelModes);
+			VehicleInformationFile.Initialize(modelData,fuelModes);
 		}
 
 
@@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 		protected override void WriteResult(ResultEntry result)
 		{
 			base.WriteResult(result);
-			PrimaryReport.WriteResult(result);
+			VehicleInformationFile.WriteResult(result);
 		}
 
 		protected override void GenerateReports()
@@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 			ManufacturerRpt.GenerateReport();
 			var fullReportHash = GetSignature(ManufacturerRpt.Report);
 			CustomerRpt.GenerateReport(fullReportHash);
-			PrimaryReport.GenerateReport(fullReportHash);
+			VehicleInformationFile.GenerateReport(fullReportHash);
 		}
 
 	
@@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.OutputData.XML {
 		protected override void OutputReports()
 		{
 			Writer.WriteReport(ReportType.DeclarationReportManufacturerXML, ManufacturerRpt.Report);
-			Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, PrimaryReport.Report);
+			Writer.WriteReport(ReportType.DeclarationReportPrimaryVehicleXML, VehicleInformationFile.Report);
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e6946487e5b81f3441a5caa39e36d89be7204f4e
--- /dev/null
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport_0_9.cs
@@ -0,0 +1,226 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
+
+namespace TUGraz.VectoCore.OutputData.XML
+{
+	/// <summary>
+	/// Create MRF and VIF for primary bus
+	/// </summary>
+	public class XMLDeclarationReportPrimaryVehicle_09 : XMLDeclarationReportPrimaryVehicle
+	{
+				private readonly IManufacturerReportFactory _mrfFactory;
+		private readonly IVIFReportFactory _vifFactory;
+
+		public XMLDeclarationReportPrimaryVehicle_09(IReportWriter writer,
+			IManufacturerReportFactory mrfFactory,
+			ICustomerInformationFileFactory cifFactory,
+			IVIFReportFactory vifFactory) : base(writer)
+		{
+			_mrfFactory = mrfFactory;
+			//_cifFactory = cifFactory;
+			_vifFactory = vifFactory;
+		}
+
+
+
+
+		protected override void InstantiateReports(VectoRunData modelData)
+		{
+			var vehicleData = modelData.VehicleData.InputData;
+			var iepc = vehicleData.Components?.IEPC != null;
+			var ihpc =
+				vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0;
+
+			ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory,
+				vehicleData.VehicleType,
+				vehicleData.ArchitectureID,
+				vehicleData.ExemptedVehicle,
+				iepc,
+				ihpc);
+
+			VehicleInformationFile = _vifFactory.GetVIFReport(vehicleData.VehicleCategory,
+                vehicleData.VehicleType,
+                vehicleData.ArchitectureID,
+                vehicleData.ExemptedVehicle,
+                iepc,
+                ihpc);
+
+
+		}
+
+	}
+
+    // --------------------------------------------------
+
+    /// <summary>
+    /// Create VIF of an interim (or the complete(d) step
+    /// </summary>
+    public class XMLDeclarationReportInterimVehicle_09 : XMLDeclarationReport
+	{
+		protected readonly IVIFReportFactory _vifFactory;
+
+		protected IXMLMultistepIntermediateReport MultistepIntermediateBusReport;
+		protected readonly IVIFReportInterimFactory _interimFactory;
+
+		public XMLDeclarationReportInterimVehicle_09(IReportWriter writer,
+			IManufacturerReportFactory mrfFactory,
+			ICustomerInformationFileFactory cifFactory,
+			IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory) : base(writer)
+		{
+			_vifFactory = vifFactory;
+			_interimFactory = interimFactory;
+		}
+
+		#region Overrides of XMLDeclarationReport
+
+		protected override void InstantiateReports(VectoRunData modelData)
+		{
+			var vehicleData = modelData.VehicleData.InputData;
+			var iepc = vehicleData.Components?.IEPC != null;
+			var ihpc =
+				vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0;
+
+			MultistepIntermediateBusReport = _interimFactory.GetInterimVIFReport(vehicleData.VehicleCategory,
+				vehicleData.VehicleType,
+				vehicleData.ArchitectureID,
+				vehicleData.ExemptedVehicle,
+				iepc,
+				ihpc);
+		}
+
+		#endregion
+
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			//_multistageBusReport =
+			//	modelData.Exempted ? new XMLMultistageExemptedBusReport() : new XMLMultistageBusReport();
+			
+			InstantiateReports(modelData);
+
+			MultistepIntermediateBusReport.Initialize(modelData);
+		}
+
+		protected override void GenerateReports()
+		{
+			MultistepIntermediateBusReport.GenerateReport();
+		}
+
+		protected override void OutputReports()
+		{
+			Writer.WriteReport(ReportType.DeclarationReportMultistageVehicleXML, MultistepIntermediateBusReport.Report);
+		}
+
+		protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
+		{
+			throw new NotSupportedException();
+		}
+		protected override void WriteResult(ResultEntry result)
+		{
+			throw new NotSupportedException();
+		}
+	}
+
+
+	// --------------------------------------------------
+
+	/// <summary>
+	/// Create MRF and CIF of the complete(d) step
+	/// </summary>
+	public class XMLDeclarationReportCompletedVehicle_09 : XMLDeclarationReportCompletedVehicle
+	{
+		protected readonly ICustomerInformationFileFactory _cifFactory;
+		protected readonly IManufacturerReportFactory _mrfFactory;
+
+		public XMLDeclarationReportCompletedVehicle_09(IReportWriter writer, IManufacturerReportFactory mrfFactory,
+			ICustomerInformationFileFactory cifFactory,
+			IVIFReportFactory vifFactory) : base(writer)
+		{
+            _cifFactory = cifFactory;
+			_mrfFactory = mrfFactory;
+		}
+
+		#region Overrides of XMLDeclarationReportCompletedVehicle
+
+		protected override void InstantiateReports(VectoRunData modelData)
+		{
+			var inputData = modelData.InputData as IXMLMultistageInputDataProvider;
+			var primaryVehicle = inputData.JobInputData.PrimaryVehicle.Vehicle;
+
+			var ihpc = (primaryVehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0;
+			var iepc = (primaryVehicle.Components?.IEPC != null);
+			ManufacturerRpt = _mrfFactory.GetManufacturerReport(
+				inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
+				inputData.JobInputData.JobType,
+				primaryVehicle.ArchitectureID,
+				primaryVehicle.ExemptedVehicle,
+				iepc,
+				ihpc);
+
+			CustomerRpt = _cifFactory.GetCustomerReport(
+				inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
+				inputData.JobInputData.JobType,
+				primaryVehicle.ArchitectureID,
+				primaryVehicle.ExemptedVehicle,
+				iepc,
+				ihpc);
+
+		}
+
+		#endregion
+	}
+	// --------------------------------------------------
+
+	/// <summary>
+	/// Create MRF and CIF for lorries
+	/// </summary>
+	public class XMLDeclarationReport09 : XMLDeclarationReport
+	{
+		private readonly IManufacturerReportFactory _mrfFactory;
+		private readonly ICustomerInformationFileFactory _cifFactory;
+
+
+
+		public XMLDeclarationReport09(IReportWriter writer, IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory) : base(writer)
+		{
+			_mrfFactory = mrfFactory;
+			_cifFactory = cifFactory;
+		}
+
+		protected override void InstantiateReports(VectoRunData modelData)
+		{
+			var vehicleData = modelData.VehicleData.InputData;
+			var iepc = vehicleData.Components?.IEPC != null;
+			var ihpc =
+				vehicleData.Components?.ElectricMachines?.Entries?.Count(e => e.ElectricMachine.IHPCType != "None") > 0;
+
+			ManufacturerRpt = _mrfFactory.GetManufacturerReport(vehicleData.VehicleCategory,
+				vehicleData.VehicleType,
+				vehicleData.ArchitectureID,
+				vehicleData.ExemptedVehicle,
+				iepc,
+				ihpc);
+			CustomerRpt = _cifFactory.GetCustomerReport(vehicleData.VehicleCategory,
+				vehicleData.VehicleType,
+				vehicleData.ArchitectureID,
+				vehicleData.ExemptedVehicle,
+				iepc,
+				ihpc);
+		}
+
+
+
+
+
+
+
+	}
+
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd
index 78764b8033a7723f1cbb5e99b45d87d4c52b49bf..a19c7634b62f20bf1f46de5f538d421f901abe8f 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.3.xsd
@@ -10,6 +10,8 @@ Changelog:
 	03.02.2022: First official version uploaded to CITnet
 	04.04.2022: Changes in 'TyreDimensionType': remove space between tyre design code and rim diameter (205/70 R15, 205/80 R15) 
     01.06.2022: Change type of WHTC Correction factors, CFRegPer, BFColdHot: constraint > 0.0
+    23.08.2022: Bugfix IEPC standard values: require gear attribute for power map, allow multiple power maps; 
+                                             require gear attribute for drac curve, allow multiple drag curves
 -->
 	<xs:complexType name="AbstractADCDataDeclarationType" abstract="true">
 		<xs:complexContent>
@@ -1267,11 +1269,18 @@ Changelog:
 					</xs:element>
 					<xs:element name="Gears" type="v2.3:AbstractIEPCGearsDeclarationType"/>
 					<xs:element name="VoltageLevel" type="v2.3:IEPCSystemVoltageLevelStandardValuesType"/>
-					<xs:element name="DragCurve">
+					<xs:element name="DragCurve" maxOccurs="unbounded">
 						<xs:complexType>
 							<xs:sequence>
 								<xs:element name="Entry" type="v2.3:IEPCSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/>
 							</xs:sequence>
+							<xs:attribute name="gear" use="required">
+								<xs:simpleType>
+									<xs:restriction base="xs:int">
+										<xs:minInclusive value="1"/>
+									</xs:restriction>
+								</xs:simpleType>
+							</xs:attribute>
 						</xs:complexType>
 					</xs:element>
 				</xs:sequence>
@@ -1425,11 +1434,18 @@ Changelog:
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
-					<xs:element name="PowerMap">
+					<xs:element name="PowerMap" maxOccurs="unbounded">
 						<xs:complexType>
 							<xs:sequence>
 								<xs:element name="Entry" type="v2.3:IEPCSystemPowerMapEntryType" minOccurs="4" maxOccurs="unbounded"/>
 							</xs:sequence>
+							<xs:attribute name="gear" use="required">
+								<xs:simpleType>
+									<xs:restriction base="xs:int">
+										<xs:minInclusive value="1"/>
+									</xs:restriction>
+								</xs:simpleType>
+							</xs:attribute>
 						</xs:complexType>
 					</xs:element>
 				</xs:sequence>
@@ -1541,7 +1557,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1551,7 +1567,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1561,7 +1577,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1571,7 +1587,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1581,7 +1597,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1595,7 +1611,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1605,7 +1621,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1615,7 +1631,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1625,7 +1641,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
@@ -1635,7 +1651,7 @@ Changelog:
 				</xs:annotation>
 				<xs:simpleType>
 					<xs:restriction base="v1.0:Double4">
-						<xs:minExclusive value="0.0"/>
+						<xs:minExclusive value="0.0000"/>
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
index 5a3b759a27ffdb905ae0c8267bdb234712c82f01..442ca7176a4c1075b6fd1520c175ba398f66e299 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
+<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
 	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
@@ -15,7 +15,7 @@ Changelog:
     12.04.2022: Remove TorqueLimits element on vehicle level for PEV, HEV-S, HEV-IEPC-S
                 Remove BoostingLimitations for HEV-IEPC-S
 	14.04.2022: Added new RetarderTypeType definition to cover AxlegearInputRetarder (used only for E3, S3, S-IEPC, E-IEPC)
--->
+	17.08.2022 Changed datatype of ChassisConfiguration, AxleConfiguration and LegislativeCategory for Vehicle_Exempted_MediumLorryDeclarationType-->
 	<xs:complexType name="Abstract_ADAS_ConventionalType" abstract="true">
 		<xs:complexContent>
 			<xs:extension base="v2.1:AbstractAdvancedDriverAssistantSystemsType"/>
@@ -405,6 +405,11 @@ Changelog:
 							<xs:sequence>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemGen_Conventional_SequenceGroup"/>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+								<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P316 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -567,6 +572,11 @@ Changelog:
 							<xs:sequence>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"/>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+								<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P316 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -728,6 +738,11 @@ Changelog:
 							<xs:sequence>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemGen_HEV-S_SequenceGroup"/>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+								<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P316 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -764,7 +779,7 @@ Changelog:
 									</xs:annotation>
 									<xs:complexType>
 										<xs:simpleContent>
-											<xs:extension base="v2.4:AuxPSTechnology_PEV_LorryType">
+											<xs:extension base="v2.4:AuxSPTechnology_PEV_LorryType">
 												<xs:attribute name="axleNumber" use="required">
 													<xs:simpleType>
 														<xs:restriction base="xs:int">
@@ -1791,17 +1806,17 @@ Changelog:
 			<xs:extension base="v2.0:AbstractVehicleDeclarationType">
 				<xs:sequence>
 					<xs:group ref="v2.4:Vehicle_GeneralParametersSequenceGroup"/>
-					<xs:element name="LegislativeCategory" type="v2.4:LegislativeCategoryHeavyLorryDeclarationType">
+					<xs:element name="LegislativeCategory" type="v2.4:LegislativeCategoryMediumLorryDeclarationType">
 						<xs:annotation>
 							<xs:documentation>P251 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationHeavyLorryDeclarationType">
+					<xs:element name="ChassisConfiguration" type="v2.4:ChassisConfigurationMediumLorryDeclarationType">
 						<xs:annotation>
 							<xs:documentation>P036 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationHeavyLorryDeclarationType">
+					<xs:element name="AxleConfiguration" type="v2.4:AxleConfigurationMediumLorryDeclarationType">
 						<xs:annotation>
 							<xs:documentation>P037 - enum</xs:documentation>
 						</xs:annotation>
@@ -1946,7 +1961,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-IEPC-S_LorryDeclarationType"/>
@@ -1970,7 +1985,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-IEPC-S_LorryDeclarationType"/>
@@ -2004,7 +2019,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-IEPC-S_PrimaryBusDeclarationType"/>
@@ -2028,7 +2043,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
@@ -2054,7 +2069,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
@@ -2090,7 +2105,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
@@ -2116,7 +2131,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/>
@@ -2140,7 +2155,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/>
@@ -2174,7 +2189,7 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
+					<xs:group ref="v2.4:Vehicle_HEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_PrimaryBusDeclarationType"/>
@@ -2235,7 +2250,6 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_IEPC_LorryDeclarationType"/>
 				</xs:sequence>
@@ -2253,7 +2267,6 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_IEPC_LorryDeclarationType"/>
 				</xs:sequence>
@@ -2281,7 +2294,6 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_IEPC_PrimaryBusDeclarationType"/>
 				</xs:sequence>
@@ -2341,7 +2353,6 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_PEV_LorryDeclarationType"/>
@@ -2360,7 +2371,6 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_PEV_LorryDeclarationType"/>
@@ -2389,7 +2399,6 @@ Changelog:
 							<xs:documentation>P400 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/>
 					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_PEV_PrimaryBusDeclarationType"/>
@@ -3202,11 +3211,6 @@ Changelog:
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
-			<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
-				<xs:annotation>
-					<xs:documentation>P316 - bool</xs:documentation>
-				</xs:annotation>
-			</xs:element>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="BusAuxPneumaticSystemGen_Conventional_SequenceGroup">
@@ -3802,7 +3806,7 @@ Changelog:
 			</xs:element>
 		</xs:sequence>
 	</xs:group>
-	<xs:group name="Vehicle_xEV-Parameters_SequenceGroup">
+	<xs:group name="Vehicle_HEV-Parameters_SequenceGroup">
 		<xs:sequence>
 			<xs:element name="OvcHev" type="xs:boolean">
 				<xs:annotation>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..0b375190eb80eda16da43a62bb6e3cdde9141a91
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
@@ -0,0 +1,2070 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" xmlns:dd="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" schemaLocation="VectoDeclarationDefinitions.2.0.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaLocation="VectoDeclarationDefinitions.2.4.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/>
+	<xs:complexType name="ConventionalLorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="Conventional_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_Px_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="HEV_Px_IHPC_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S2_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="HEV_S2_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S3_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="HEV_S3_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S4_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="HEV_S4_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_IEPC_S_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="HEV_IEPC_S_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E2_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="PEV_E2_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E3_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="PEV_E3_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E4_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="PEV_E4_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_IEPC_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="PEV_IEPC_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Conventional_CompletedBusOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="Abstract_Conventional_CompltededBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_CompletedBusOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="Abstract_HEV_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_CompletedBusOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="Abstract_PEV_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Exempted_LorryOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="Exempted_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Exempted_CompletedBusOutputType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="Exempted_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignaturePrimaryVehicle" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignaturePrimaryVehicle" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType">
+						<xs:annotation>
+							<xs:documentation>II.3</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Results" type="ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<!--Vehicle Types-->
+	<xs:complexType name="Conventional_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="GeneralVehicleSequenceGroup"/>
+			<xs:group ref="LorryGeneralVehicleSequenceGroup"/>
+			<xs:group ref="WHR_DualFuelSequenceGroup"/>
+			<xs:element name="ADAS" type="ConventionalADASType"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="TransmissionGroup"/>
+			<xs:element name="Retarder" type="xs:boolean"/>
+			<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV_Px_IHPC_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="HEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="HEVADASType"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:group ref="TransmissionGroup"/>
+			<xs:element name="Retarder" type="xs:boolean"/>
+			<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV_S2_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="HEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="HEVADASType"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:group ref="TransmissionGroup"/>
+			<xs:element name="Retarder"/>
+			<xs:element name="AxleRatio"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV_S3_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="HEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="HEVADASType"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:element name="Retarder"/>
+			<xs:element name="AxleRatio"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV_S4_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="HEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="HEVADASType"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV_IEPC_S_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="HEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="HEVADASType"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:element name="Retarder"/>
+			<xs:element name="AxleRatio" minOccurs="0"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV_E2_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="PEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="PEVADASType"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:group ref="TransmissionGroup"/>
+			<xs:element name="Retarder"/>
+			<xs:element name="AxleRatio"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV_E3_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="PEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="PEVADASType"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:element name="Retarder"/>
+			<xs:element name="AxleRatio"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV_E4_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="PEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="PEVADASType"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV_IEPC_LorryVehicleType">
+		<xs:sequence>
+			<xs:group ref="PEV_LorryVehicleTypeGroup"/>
+			<xs:element name="ADAS" type="PEVADASType"/>
+			<xs:group ref="ElectricMachineGroup"/>
+			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:element name="Retarder"/>
+			<xs:element name="AxleRatio" minOccurs="0"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="LorryAuxGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Conventional_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_Conventional_CompltededBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="ConventionalCompletedBusVehicleTypeGroup"/>
+					<xs:element name="ADAS" type="ConventionalADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="ConventionalCompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_Px_IHPC_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Px_IHPC_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S2_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S3_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S4_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_IEPC-S_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType" minOccurs="0"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E2_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E3_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E4_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_IEPC_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType" minOccurs="0"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Exempted_LorryVehicleType">
+		<xs:sequence>
+			<xs:element name="Manufacturer" type="v1.0:ManufacturerType"/>
+			<xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/>
+			<xs:element name="Model" type="v1.0:ModelType">
+				<xs:annotation>
+					<xs:documentation>1.1.2. Vehicle model/Commercial Name</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:group ref="GeneralVehicleSequenceGroup"/>
+			<xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType">
+				<xs:annotation>
+					<xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType"/>
+			<xs:element name="ZeroEmissionVehicle"/>
+			<xs:element name="VehicleTechnologyExempted"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Exempted_CompletedBusVehicleType">
+		<xs:sequence>
+			<xs:group ref="ExemptedCompletedBusVehicleTypeGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="RatedPowerType">
+		<xs:simpleContent>
+			<xs:extension base="xs:int">
+				<xs:attribute name="unit" type="out:PowerUnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:simpleType name="LegislativeCategoryType">
+		<xs:union memberTypes="v2.4:LegislativeCategoryHeavyLorryDeclarationType v2.4:LegislativeCategoryMediumLorryDeclarationType v2.4:LegislativeCategoryPrimaryBusDeclarationType"/>
+	</xs:simpleType>
+	<xs:group name="GeneralVehicleSequenceGroup">
+		<xs:sequence>
+			<xs:element name="VIN" type="v1.0:VINType"/>
+			<xs:element name="VehicleCategory" type="LegislativeCategoryType"/>
+			<xs:element name="AxleConfiguration" type="v1.0:VehicleAxleConfigurationDeclarationType"/>
+			<xs:element name="TechnicalPermissibleMaximumLadenMass">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="v1.0:VehicleGrossVehicleMassType">
+							<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="VehicleGroup" type="xs:string"/>
+			<xs:element name="VehicleGroupCO2" type="xs:string"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="LorryGeneralVehicleSequenceGroup">
+		<xs:sequence>
+			<xs:element name="Manufacturer" type="v1.0:ManufacturerType"/>
+			<xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/>
+			<xs:element name="Model" type="v1.0:ModelType"/>
+			<xs:element name="VehicleTypeApprovalNumber" type="v2.4:VehicleTypeApprovalNumberType" minOccurs="0"/>
+			<xs:element name="CorrectedActualMass">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="v1.0:VehicleCurbMassChassisType">
+							<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="VocationalVehicle" type="v1.0:VocationalVehicleType"/>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType"/>
+			<xs:element name="ZeroEmissionVehicle" type="v1.0:ZeroEmissionVehicleType"/>
+			<xs:element name="HybridElectricHDV" type="v1.0:HybridElectricHDVType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="WHR_DualFuelSequenceGroup">
+		<xs:sequence>
+			<xs:element name="WasteHeatRecovery" type="xs:boolean"/>
+			<xs:element name="DualFuelVehicle" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_VehicleSequenceGroup">
+		<xs:sequence>
+			<xs:group ref="WHR_DualFuelSequenceGroup"/>
+			<xs:element name="HEVArchitecture" type="xs:string"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV_VehicleSequenceGroup">
+		<xs:sequence>
+			<xs:element name="PEVArchitecture" type="xs:string"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_LorryVehicleTypeGroup">
+		<xs:sequence>
+			<xs:group ref="GeneralVehicleSequenceGroup"/>
+			<xs:group ref="LorryGeneralVehicleSequenceGroup"/>
+			<xs:group ref="HEV_VehicleSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV_LorryVehicleTypeGroup">
+		<xs:sequence>
+			<xs:group ref="GeneralVehicleSequenceGroup"/>
+			<xs:group ref="LorryGeneralVehicleSequenceGroup"/>
+			<xs:group ref="PEV_VehicleSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ConventionalCompletedBusVehicleTypeGroup">
+		<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:element name="Model" type="xs:string"/>
+			<xs:sequence>
+				<xs:element name="CorrectedActualMass">
+					<xs:complexType>
+						<xs:simpleContent>
+							<xs:extension base="xs:int">
+								<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
+							</xs:extension>
+						</xs:simpleContent>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+				<xs:group ref="WHR_DualFuelSequenceGroup"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEVCompletedBusVehicleTypeGroup">
+		<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:element name="Model" type="xs:string"/>
+			<xs:sequence>
+				<xs:element name="CorrectedActualMass">
+					<xs:complexType>
+						<xs:simpleContent>
+							<xs:extension base="xs:int">
+								<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
+							</xs:extension>
+						</xs:simpleContent>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+				<xs:group ref="WHR_DualFuelSequenceGroup"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEVCompletedBusVehicleTypeGroup">
+		<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:element name="Model" type="xs:string"/>
+			<xs:sequence>
+				<xs:element name="CorrectedActualMass">
+					<xs:complexType>
+						<xs:simpleContent>
+							<xs:extension base="xs:int">
+								<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
+							</xs:extension>
+						</xs:simpleContent>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ExemptedCompletedBusVehicleTypeGroup">
+		<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:element name="Model" type="xs:string"/>
+			<xs:sequence>
+				<xs:element name="CorrectedActualMass">
+					<xs:complexType>
+						<xs:simpleContent>
+							<xs:extension base="xs:int">
+								<xs:attribute name="unit" type="out:MassUnitType" use="required"/>
+							</xs:extension>
+						</xs:simpleContent>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="EngineCapacityType">
+		<xs:simpleContent>
+			<xs:extension base="xs:double"/>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:group name="EngineGroup">
+		<xs:sequence>
+			<xs:element name="EngineRatedPower">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="v1.0:EngineRatedPower">
+							<xs:attribute name="unit" type="out:PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="EngineCapacity">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="EngineCapacityType">
+							<xs:attribute name="unit" type="out:VolumeUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="FuelTypes">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="FuelType" type="v1.0:FuelTypeType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="TransmissionGroup">
+		<xs:sequence>
+			<xs:element name="TransmissionValues" type="xs:string"/>
+			<xs:element name="TransmissionType" type="v2.3:GearboxTransmissionTypeType"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="AxleWheelsGroup">
+		<xs:sequence>
+			<xs:element name="AverageRRC" type="v1.0:TyreRRCISOType"/>
+			<xs:element name="Axle" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="TyreDimension" type="v2.3:TyreDimensionType"/>
+						<xs:element name="FuelEfficiencyClass" type="xs:string"/>
+						<xs:element name="TyreCertificationNumber" type="v1.0:CertificationNumberType"/>
+					</xs:sequence>
+					<xs:attribute name="axleNumber"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ElectricMachineGroup">
+		<xs:sequence>
+			<xs:element name="TotalRatedPropulsionPower">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="RatedPowerType"/>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="VoltageLevels">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="VoltageLevel" maxOccurs="unbounded">
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="MaxContinuousPropulsionPower" type="RatedPowerType"/>
+								</xs:sequence>
+								<xs:attribute name="voltage"/>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="REESSGroup">
+		<xs:sequence>
+			<xs:element name="TotalStorageCapacity">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="UsableStorageCapacity">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="LorryAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ConventionalCompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPump">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="ElectricSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AlternatorTechnology"/>
+						<xs:sequence minOccurs="0">
+							<xs:element name="MaxAlternatorPower">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="ElectricStorageCapacity">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartCompressionSystem" type="xs:boolean"/>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_Px_IHPC_CompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPump">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="ElectricSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AlternatorTechnology"/>
+						<xs:sequence minOccurs="0">
+							<xs:element name="MaxAlternatorPower">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="ElectricStorageCapacity">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartCompressionSystem" type="xs:boolean"/>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_Sx_CompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPump">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="ElectricSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AlternatorTechnology"/>
+						<xs:sequence minOccurs="0">
+							<xs:element name="MaxAlternatorPower">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="ElectricStorageCapacity">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV_CompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPump">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Technology" type="v2.4:AuxSPTechnologyLorryType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<!--Results-->
+	<xs:element name="VectoMockResults">
+		<xs:annotation>
+			<xs:documentation>This element is just for developing the XML Schema of the different types of results - can be removed later on</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="Results" type="ResultsType"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:complexType name="ResultsType">
+		<xs:sequence>
+			<xs:element name="Status">
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="success"/>
+						<xs:enumeration value="error"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:choice>
+				<xs:sequence>
+					<xs:element name="Result" type="AbstractResultType" maxOccurs="unbounded"/>
+					<xs:element name="Summary" type="AbstractResultSummaryType"/>
+				</xs:sequence>
+				<xs:element name="ExemptedVehicle">
+					<xs:complexType/>
+				</xs:element>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AbstractResultType" abstract="true">
+		<xs:attribute name="status" use="required">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="success"/>
+					<xs:enumeration value="error"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessOCVHEVType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultType">
+				<xs:sequence>
+					<xs:group ref="ResultSuccessSimulationParametersGroup"/>
+					<xs:element name="OCVMode" minOccurs="2" maxOccurs="2">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AverageSpeed">
+									<xs:annotation>
+										<xs:documentation>I.2.2.1 / #60</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="xs:double">
+												<xs:attribute name="unit" type="SpeedUnitType" use="required"/>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="Fuel" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+												<xs:annotation>
+													<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+												</xs:annotation>
+											</xs:element>
+										</xs:sequence>
+										<xs:attribute name="type" type="xs:string" use="required"/>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="ElectricEnergy" type="ElectricEnergyType" minOccurs="0"/>
+								<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+							<xs:attribute name="type" use="required">
+								<xs:simpleType>
+									<xs:restriction base="xs:string">
+										<xs:enumeration value="charge depleting"/>
+										<xs:enumeration value="charge sustaining"/>
+									</xs:restriction>
+								</xs:simpleType>
+							</xs:attribute>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Total">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AverageSpeed">
+									<xs:annotation>
+										<xs:documentation>I.2.2.1 / #60</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="xs:double">
+												<xs:attribute name="unit" type="SpeedUnitType" use="required"/>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="Fuel" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+												<xs:annotation>
+													<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+												</xs:annotation>
+											</xs:element>
+										</xs:sequence>
+										<xs:attribute name="type" type="xs:string" use="required"/>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="ElectricEnergy" type="ElectricEnergyType"/>
+								<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:group ref="ElectricRangeSequenceGroup"/>
+								<xs:element name="UtilityFactor" type="xs:double"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessPEVType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultType">
+				<xs:sequence>
+					<xs:group ref="ResultSuccessSimulationParametersGroup"/>
+					<xs:element name="Total">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AverageSpeed">
+									<xs:annotation>
+										<xs:documentation>I.2.2.1 / #60</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="xs:double">
+												<xs:attribute name="unit" type="SpeedUnitType" use="required"/>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="ElectricEnergy" type="ElectricEnergyType"/>
+								<xs:sequence minOccurs="0">
+									<xs:element name="FC_ZEV_AuxHeater">
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+													<xs:annotation>
+														<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+													</xs:annotation>
+												</xs:element>
+											</xs:sequence>
+											<xs:attribute name="type" type="xs:string" use="required"/>
+										</xs:complexType>
+									</xs:element>
+									<xs:element name="CO2_ZEV_AuxHeater">
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+													<xs:annotation>
+														<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+													</xs:annotation>
+												</xs:element>
+											</xs:sequence>
+										</xs:complexType>
+									</xs:element>
+								</xs:sequence>
+								<xs:group ref="ElectricRangeSequenceGroup"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessConventionalType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultType">
+				<xs:sequence>
+					<xs:group ref="ResultSuccessSimulationParametersGroup"/>
+					<xs:element name="Total">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AverageSpeed">
+									<xs:annotation>
+										<xs:documentation>I.2.2.1 / #60</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="xs:double">
+												<xs:attribute name="unit" type="SpeedUnitType" use="required"/>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="Fuel" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+												<xs:annotation>
+													<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+												</xs:annotation>
+											</xs:element>
+										</xs:sequence>
+										<xs:attribute name="type" type="xs:string" use="required"/>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessNonOCVHEVType">
+		<xs:complexContent>
+			<xs:extension base="ResultSuccessConventionalType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultErrorType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultType">
+				<xs:sequence>
+					<xs:element name="Mission" type="MissionTypeType">
+						<xs:annotation>
+							<xs:documentation>I.2.1.1 / #56</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="SimulationParameters" type="SimulationParametersType"/>
+					<xs:element name="Error" type="xs:string"/>
+					<xs:element name="ErrorDetails" type="xs:string"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="SimulationParametersType">
+		<xs:sequence>
+			<xs:element name="TotalVehicleMass">
+				<xs:annotation>
+					<xs:documentation>I.2.1.4 / #59</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="MassUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:choice>
+				<xs:sequence>
+					<xs:element name="Payload">
+						<xs:annotation>
+							<xs:documentation>I.2.1.2 / #57</xs:documentation>
+						</xs:annotation>
+						<xs:complexType>
+							<xs:simpleContent>
+								<xs:extension base="xs:double">
+									<xs:attribute name="unit" type="MassUnitType" use="required"/>
+								</xs:extension>
+							</xs:simpleContent>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:sequence>
+					<xs:element name="MassPassengers">
+						<xs:annotation>
+							<xs:documentation>I.2.1.2 / #57</xs:documentation>
+						</xs:annotation>
+						<xs:complexType>
+							<xs:simpleContent>
+								<xs:extension base="xs:double">
+									<xs:attribute name="unit" type="MassUnitType" use="required"/>
+								</xs:extension>
+							</xs:simpleContent>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="PassengerCount" type="xs:double"/>
+				</xs:sequence>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:simpleType name="CO2UnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="g/km"/>
+			<xs:enumeration value="g/t-km"/>
+			<xs:enumeration value="g/p-km"/>
+			<xs:enumeration value="g/m³-km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="DistanceUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="PowerUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kW"/>
+			<xs:enumeration value="W"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="EnergyUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kWh"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="EnergyConsumptionUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kWh/km"/>
+			<xs:enumeration value="kWh/t-km"/>
+			<xs:enumeration value="kWh/m³-km"/>
+			<xs:enumeration value="kWh/p-km"/>
+			<xs:enumeration value="MJ/km"/>
+			<xs:enumeration value="MJ/t-km"/>
+			<xs:enumeration value="MJ/m³-km"/>
+			<xs:enumeration value="MJ/p-km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="FuelConsumptionUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="g/km"/>
+			<xs:enumeration value="g/t-km"/>
+			<xs:enumeration value="g/p-km"/>
+			<xs:enumeration value="g/m³-km"/>
+			<xs:enumeration value="l/100km"/>
+			<xs:enumeration value="l/t-km"/>
+			<xs:enumeration value="l/p-km"/>
+			<xs:enumeration value="l/m³-km"/>
+			<xs:enumeration value="MJ/km"/>
+			<xs:enumeration value="MJ/t-km"/>
+			<xs:enumeration value="MJ/m³-km"/>
+			<xs:enumeration value="MJ/p-km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="MassUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="kg"/>
+			<xs:enumeration value="t"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="PercentType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="%"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="SpeedUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="km/h"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="MissionTypeType">
+		<xs:restriction base="xs:token">
+			<xs:minLength value="1"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:complexType name="FuelConsumptionType">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="FuelConsumptionUnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="CO2Type">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="CO2UnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:group name="ResultSuccessSimulationParametersGroup">
+		<xs:sequence>
+			<xs:element name="Mission" type="MissionTypeType"/>
+			<xs:element name="SimulationParameters" type="SimulationParametersType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="EnergyConsumptionType">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="EnergyConsumptionUnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="FuelType"/>
+	<xs:complexType name="ElectricEnergyType">
+		<xs:sequence>
+			<xs:element name="EnergyConsumption" type="EnergyConsumptionType" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="ElectricRangeSequenceGroup">
+		<xs:sequence>
+			<xs:element name="ActualChargeDepletingRange">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="EquivalentAllElectricRange">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="ZeroCO2EmissionsRange">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="AbstractResultSummaryType" abstract="true"/>
+	<xs:complexType name="ResultSummaryConventionalType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultSummaryType">
+				<xs:sequence>
+					<xs:choice>
+						<xs:element name="AveragePayload">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:double">
+										<xs:attribute name="unit" type="MassUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="AveragePassengerCount" type="xs:double"/>
+					</xs:choice>
+					<xs:element name="Fuel" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+							<xs:attribute name="type" type="xs:string" use="required"/>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+						<xs:annotation>
+							<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSummaryOCVHEVType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultSummaryType">
+				<xs:sequence>
+					<xs:choice>
+						<xs:element name="AveragePayload">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:double">
+										<xs:attribute name="unit" type="MassUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="AveragePassengerCount" type="xs:double"/>
+					</xs:choice>
+					<xs:element name="Fuel" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+							<xs:attribute name="type" type="xs:string" use="required"/>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="ElectricEnergy" type="ElectricEnergyType"/>
+					<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+						<xs:annotation>
+							<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="ElectricRangeSequenceGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSummaryPEVType">
+		<xs:complexContent>
+			<xs:extension base="AbstractResultSummaryType">
+				<xs:sequence>
+					<xs:choice>
+						<xs:element name="AveragePayload">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:double">
+										<xs:attribute name="unit" type="MassUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="AveragePassengerCount" type="xs:double"/>
+					</xs:choice>
+					<xs:element name="ElectricEnergy" type="ElectricEnergyType"/>
+					<xs:sequence minOccurs="0">
+						<xs:element name="FC_ZEV_AuxHeater">
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded">
+										<xs:annotation>
+											<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+										</xs:annotation>
+									</xs:element>
+								</xs:sequence>
+								<xs:attribute name="type" type="xs:string" use="required"/>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="CO2_ZEV_AuxHeater">
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="CO2" type="CO2Type" maxOccurs="unbounded">
+										<xs:annotation>
+											<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+										</xs:annotation>
+									</xs:element>
+								</xs:sequence>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+					<xs:group ref="ElectricRangeSequenceGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSummaryNonOCVHEVType">
+		<xs:complexContent>
+			<xs:extension base="ResultSummaryConventionalType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ConventionalADASType">
+		<xs:sequence>
+			<xs:group ref="ConventionalADASGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEVADASType">
+		<xs:sequence>
+			<xs:group ref="HEVADASGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEVADASType">
+		<xs:sequence>
+			<xs:group ref="PEVADASGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!--ADAS-->
+	<xs:group name="ConventionalADASGroup">
+		<xs:sequence>
+			<xs:element name="EngineStopStart" type="xs:boolean"/>
+			<xs:element name="EcoRollWithoutEngineStopStart" type="xs:boolean"/>
+			<xs:element name="EcoRollWithEngineStopStart" type="xs:boolean"/>
+			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEVADASGroup">
+		<xs:sequence>
+			<xs:element name="EngineStopStart" type="xs:boolean"/>
+			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEVADASGroup">
+		<xs:sequence>
+			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_CompletedBusArchitectureGroup">
+		<xs:sequence>
+			<xs:element name="HEVArchitecture" type="xs:string"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV_CompletedBusArchitectureGroup">
+		<xs:sequence>
+			<xs:element name="PEVArchitecture" type="xs:string"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="Abstract_Conventional_CompltededBusVehicleType" abstract="true"/>
+	<xs:complexType name="Abstract_HEV_CompletedBusVehicleType" abstract="true"/>
+	<xs:complexType name="Abstract_PEV_CompletedBusVehicleType" abstract="true"/>
+</xs:schema>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd
index 25f7a38d2d25e2f14a3a19e87d919f60cabfc7d4..fcffb1566a4937edf7e4a89afaa23592b21f5ff7 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd
@@ -13,6 +13,7 @@
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7" schemaLocation="VectoOutputCustomer.0.7.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7.1" schemaLocation="VectoOutputCustomer.0.7.1.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.8" schemaLocation="VectoOutputCustomer.0.8.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" schemaLocation="VectoOutputCustomer.0.9.xsd"/>
 	<xs:element name="VectoCustomerInformation" type="tns:VectoCustomerInformationType"/>
 	<xs:complexType name="VectoCustomerInformationType">
 		<xs:sequence>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd
index 43f695abf03d9dea35bb2ed2c9c895186263f487..21584288ecbbef1532db23e9c177922bb9d50e81 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputDefinitions.xsd
@@ -32,4 +32,15 @@
 			<xs:enumeration value="km/h"/>
 		</xs:restriction>
 	</xs:simpleType>
+	<xs:simpleType name="VolumeUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="ltr"/>
+		</xs:restriction>
+	</xs:simpleType>
+		<xs:simpleType name="StorageCapacityUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="As"/>
+			<xs:enumeration value="Ah"/>
+		</xs:restriction>
+	</xs:simpleType>
 </xs:schema>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..df6fdc2b69510778527d2bd1753faad76f7b7a95
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
@@ -0,0 +1,2700 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:dd="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<!-- Imports_______________________________________________ -->
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" schemaLocation="VectoDeclarationDefinitions.2.0.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaLocation="VectoDeclarationDefinitions.2.4.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/>
+	<!-- End imports___________________________________________ -->
+	<xs:complexType name="ConventionalLorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:Conventional-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>II.2.5</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>II.2.5</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPCLorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-Px_IHPC-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-S2-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-S3-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-S4-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-IEPC-S-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-E2-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-E3-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-E4-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC_LorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-IEPC-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ConventionalPrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:Conventional-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPCPrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-Px_IHPC-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-S2-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-S3-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-S4-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-IEPC-S-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-E2-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-E3-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-E4-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC_PrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-IEPC-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ConventionalCompletedBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:Conventional-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEVCompletedBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:HEV-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEVCompletedBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:PEV-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ExemptedLorryManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:Exempted-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ExemptedPrimaryBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:Exempted-PrimaryBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ExemptedCompletedBusManufacturerOutputDataType">
+		<xs:complexContent>
+			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
+				<xs:sequence>
+					<xs:element name="Vehicle" type="mrf:Exempted-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
+					<xs:element name="Results" type="mrf:ResultsType"/>
+					<xs:element name="ApplicationInformation">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="SimulationToolVersion" type="xs:string">
+									<xs:annotation>
+										<xs:documentation>I.3.1.1 / #70</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+									<xs:annotation>
+										<xs:documentation>I.3.1.2 / #71</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+				<xs:attribute name="id" type="xs:NCName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<!--Vehicle-->
+	<xs:group name="GeneralVehicleOutputGroup">
+		<xs:sequence>
+			<xs:element name="Model" type="v1.0:ModelType">
+				<xs:annotation>
+					<xs:documentation>1.1.2. Vehicle model/Commercial Name</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VIN" type="v1.0:VINType">
+				<xs:annotation>
+					<xs:documentation>1.1.3. Vehicle identification number (VIN)</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VehicleTypeApprovalNumber" type="v2.4:VehicleTypeApprovalNumberType" minOccurs="0"/>
+			<xs:element name="VehicleCategory" type="mrf:LegislativeCategoryType"/>
+			<xs:element name="AxleConfiguration" type="v1.0:VehicleAxleConfigurationDeclarationType">
+				<xs:annotation>
+					<xs:documentation>1.1.5 Axle configuration</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType">
+				<xs:annotation>
+					<xs:documentation>1.1.6. Technical Permissible Maximum Laden Mass [t]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VehicleGroup" type="xs:string">
+				<xs:annotation>
+					<xs:documentation>1.1.7.Vehicle group (Annex 1)</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VehicleGroupCO2">
+				<xs:annotation>
+					<xs:documentation>1.1.7a (Sub)group for CO2 standards</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:minLength value="1"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="OffVehicleChargingGroup">
+		<xs:annotation>
+			<xs:documentation>			</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ManufacturerGroup">
+		<xs:annotation>
+			<xs:documentation>1.1.1. Name and address of manufacturer (s)
+			</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="Manufacturer" type="v1.0:ManufacturerType"/>
+			<xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="CompletedBusGeneralVehicleOutputGroup">
+		<xs:sequence>
+			<xs:element name="Manufacturers">
+				<xs:complexType>
+					<xs:sequence maxOccurs="unbounded">
+						<xs:element name="Step">
+							<xs:complexType>
+								<xs:group ref="mrf:ManufacturerGroup"/>
+								<xs:attribute name="Count" type="xs:int"/>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
+			<xs:group ref="mrf:CompletedBusSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="LorryGeneralVehicleOutputGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:ManufacturerGroup"/>
+			<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
+			<xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType">
+				<xs:annotation>
+					<xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VocationalVehicle" type="v1.0:VocationalVehicleType">
+				<xs:annotation>
+					<xs:documentation>1.1.9. Vocational Vehicle</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="ZeroEmissionVehicle" type="v1.0:ZeroEmissionVehicleType">
+				<xs:annotation>
+					<xs:documentation>1.1.10. Zero emission heavy-duty vehicle</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="HybridElectricHDV" type="v1.0:HybridElectricHDVType">
+				<xs:annotation>
+					<xs:documentation>1.1.11 Hyprid electric heavy-duty vehicle</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV-LorryVehicleOutputTypeSequenceGroup">
+		<xs:sequence>
+			<xs:element name="DualFuelVehicle" type="v1.0:DualFuelType">
+				<xs:annotation>
+					<xs:documentation>1.1.12. Dual-fuel vehicle</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:group ref="mrf:HEVVehicleSequenceGroup"/>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType">
+				<xs:annotation>
+					<xs:documentation>1.1.13 Sleeper cab</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="NgTankSystem" type="v1.0:NgTankSystemType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV-LorryVehicleOutputTypeSequenceGroup">
+		<xs:sequence>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType">
+				<xs:annotation>
+					<xs:documentation>1.1.13 Sleeper cab</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="PEVArchitecture" type="xs:string"/>
+			<xs:group ref="mrf:OffVehicleChargingGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEVVehicleSequenceGroup">
+		<xs:sequence>
+			<xs:element name="HEVArchitecture" type="xs:string"/>
+			<xs:group ref="mrf:OffVehicleChargingGroup"/>
+			<xs:element name="ADAS" type="mrf:HEVADASType"/>
+			<xs:element name="BoostingLimitations" type="mrf:BoostingLimitationsType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEVVehicleSequenceGroup">
+		<xs:sequence>
+			<xs:element name="PEVArchitecture" type="v2.4:ArchitectureIDType"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+			<xs:element name="ADAS" type="mrf:PEVADASType"/>
+			<xs:element name="BoostingLimitations" type="mrf:BoostingLimitationsType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="BoostingLimitationsType">
+		<xs:sequence>
+			<xs:element name="Entry" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:attribute name="boostingTorque" type="v1.0:Double2" use="required"/>
+					<xs:attribute name="rotationalSpeed" type="v1.0:Double2" use="required"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="CompletedBusSequenceGroup">
+		<xs:sequence>
+			<xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"/>
+			<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+			<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+			<xs:element name="ClassBus" type="v2.4:RegisteredClassType"/>
+			<xs:element name="NumberPassengersUpperDeck" type="xs:int"/>
+			<xs:element name="NumberPassengersLowerDeck" type="xs:int"/>
+			<xs:element name="BodyworkCode" type="v2.4:VehicleCodeType"/>
+			<xs:element name="LowEntry" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="CompletedBusVehicleDimensionSequenceGroup">
+		<xs:sequence>
+			<xs:element name="HeightIntegratedBody" type="v2.4:VehicleDimensionType"/>
+			<xs:element name="VehicleLength" type="v2.4:VehicleDimensionType"/>
+			<xs:element name="VehicleWidth" type="v2.4:VehicleDimensionType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="Conventional-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:Conventional-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
+			<xs:element name="Components" type="mrf:ConventionalLorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPC-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
+			<xs:element name="Components" type="mrf:HEV-Px_IHPC-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-S2-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-S3-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-S4-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-IEPC-S-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-E2-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-E3-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-E4-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-IEPC-LorryComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Conventional-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:Conventional-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
+			<xs:element name="Components" type="mrf:Conventional-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPC-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
+			<xs:element name="Components" type="mrf:HEV-Px_IHPC-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-S2-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-S3-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-S4-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:HEV-IEPC-S-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-E2-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-E3-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-E4-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC-PrimaryBus-VehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="Components" type="mrf:PEV-IEPC-PrimaryBusComponentsType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Conventional-CompletedBusVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:Conventional-CompletedBusVehicleOutputTypeGroup"/>
+			<xs:element name="ADAS" type="mrf:ConventionalADASType"/>
+			<xs:element name="Components">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+						<xs:element name="Auxiliaries" type="mrf:ConventionalCompletedBusAuxOutputType"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-CompletedBusVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEV-CompletedBusVehicleOutputTypeGroup"/>
+			<xs:element name="ADAS" type="mrf:HEVADASType"/>
+			<xs:element name="Components">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AirDrag" type="mrf:AirdragType"/>
+						<xs:element name="Auxiliaries" type="mrf:HEVCompletedBusAuxOutputType"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-CompletedBusVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEV-CompletedBusVehicleOutputTypeGroup"/>
+			<xs:element name="ADAS" type="mrf:PEVADASType"/>
+			<xs:element name="Components">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AirDrag" type="mrf:AirdragType"/>
+						<xs:element name="Auxiliaries" type="mrf:PEVCompletedBusAuxOutputType"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Exempted-LorryVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:ManufacturerGroup"/>
+			<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
+			<xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType">
+				<xs:annotation>
+					<xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType"/>
+			<xs:element name="ZeroEmissionVehicle" type="v1.0:ZeroEmissionVehicleType">
+				<xs:annotation>
+					<xs:documentation>1.1.10. Zero emission heavy-duty vehicle</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VehicleTechnologyExempted"/>
+			<xs:element name="SumNetPower">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="out:PowerUnitType"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Exempted-PrimaryBusVehicleOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:ExemptedPrimaryBusGeneralVehicleOutputGroup"/>
+			<xs:element name="VehicleTechnologyExempted" type="xs:string"/>
+			<xs:element name="SumNetPower">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="out:PowerUnitType"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Exempted-CompletedBusVehicleOutputType">
+		<xs:sequence>
+			<xs:sequence>
+				<xs:element name="Manufacturers">
+					<xs:complexType>
+						<xs:sequence maxOccurs="unbounded">
+							<xs:element name="Step">
+								<xs:complexType>
+									<xs:group ref="mrf:ManufacturerGroup"/>
+									<xs:attribute name="Count" type="xs:int"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
+				<xs:sequence>
+					<xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType"/>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+					<xs:element name="ClassBus" type="v2.4:RegisteredClassType"/>
+					<xs:element name="NumberPassengersUpperDeck" type="xs:int"/>
+					<xs:element name="NumberPassengersLowerDeck" type="xs:int"/>
+					<xs:element name="BodyworkCode" type="v2.4:VehicleCodeType"/>
+					<xs:element name="LowEntry" type="xs:boolean"/>
+				</xs:sequence>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:complexType>
+	<!--Components-->
+	<xs:complexType name="ConventionalLorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:ConventionalLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPC-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVLorryAuxOutputType"/>
+			<xs:element name="AirDrag" type="mrf:AirdragType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Conventional-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:Conventional_HEV_Px_PrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPC-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:Conventional_HEV_Px_PrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Angledrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:HEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="ElectricMachines" type="mrf:xEV-ElectricMachinesType"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="IEPCSpecifications" type="mrf:xEV-IEPC-Type"/>
+			<xs:element name="REESSSpecifications" type="mrf:REESSSpecificationsType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType" minOccurs="0"/>
+			<xs:element name="Axlegear" type="mrf:AxleGearType" minOccurs="0"/>
+			<xs:element name="AxleWheels" type="mrf:AxleWheelsType"/>
+			<xs:element name="Auxiliaries" type="mrf:PEVPrimaryBusAuxOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!--ElectricMachine, IEPC, REESS-->
+	<xs:complexType name="ElectricMachineSystemType">
+		<xs:sequence>
+			<xs:group ref="mrf:ElectricMachineGroup"/>
+			<xs:group ref="mrf:ElectricMachinePowerGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="xEV-IEPC-Type">
+		<xs:sequence>
+			<xs:group ref="mrf:IEPCGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="xEV-ElectricMachinesType">
+		<xs:sequence>
+			<xs:element name="ElectricMachine" type="mrf:ElectricMachineType" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AbstractREESSType" abstract="true"/>
+	<xs:complexType name="REESSSpecificationsType">
+		<xs:sequence>
+			<xs:choice>
+				<xs:sequence maxOccurs="unbounded">
+					<xs:element name="Battery" type="mrf:BatteryType"/>
+				</xs:sequence>
+				<xs:sequence>
+					<xs:element name="Capacitor" type="mrf:CapacitorType"/>
+				</xs:sequence>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="CapacitorType">
+		<xs:complexContent>
+			<xs:extension base="mrf:AbstractREESSType">
+				<xs:sequence>
+					<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+					<xs:element name="Capacitance" type="v2.3:CapacitanceType"/>
+					<xs:element name="MinVoltage" type="v2.3:CapacitorVoltageType"/>
+					<xs:element name="MaxVoltage" type="v2.3:CapacitorVoltageType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="BatteryType">
+		<xs:complexContent>
+			<xs:extension base="mrf:AbstractREESSType">
+				<xs:sequence>
+					<xs:group ref="mrf:REESSGroup"/>
+				</xs:sequence>
+				<xs:attribute name="stringId" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:group name="REESSGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="NominalVoltage" type="xs:int"/>
+			<xs:element name="TotalStorageCapacity">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="mrf:EnergyUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="TotalUsableCapacityInSimulation">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="mrf:EnergyUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="CertificationMethod" type="xs:string"/>
+		</xs:sequence>
+	</xs:group>
+	<!--Auxiliaries-->
+	<xs:complexType name="ConventionalLorryAuxOutputType">
+		<xs:sequence>
+			<xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyLorryType"/>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_1"/>
+			<xs:element name="ElectricSystem" type="mrf:LorryElectricSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEVLorryAuxOutputType">
+		<xs:sequence>
+			<xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyLorryType"/>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_1"/>
+			<xs:element name="ElectricSystem" type="mrf:LorryElectricSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEVLorryAuxOutputType">
+		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_1"/>
+			<xs:element name="ElectricSystem" type="mrf:LorryElectricSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Conventional_HEV_Px_PrimaryBusAuxOutputType">
+		<xs:sequence>
+			<xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyPrimaryBusType"/>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyPrimaryBusType"/>
+			<xs:element name="ElectricSystem" type="mrf:PrimaryBusElectricSystemType_Conventional_HEV"/>
+			<xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_PrimaryBus_Conventional_HEV_P"/>
+			<xs:element name="HVACSystem" type="mrf:HVACSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEVPrimaryBusAuxOutputType">
+		<xs:sequence>
+			<xs:element name="CoolingFanTechnology" type="v2.4:AuxFanTechnologyPrimaryBusType"/>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyPrimaryBusType"/>
+			<xs:element name="ElectricSystem" type="mrf:PrimaryBusElectricSystemType_Conventional_HEV"/>
+			<xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_PrimaryBus_HEV_S"/>
+			<xs:element name="HVACSystem">
+				<xs:complexType>
+					<xs:group ref="mrf:PrimaryBusHVACGroup"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEVPrimaryBusAuxOutputType">
+		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyPrimaryBusType"/>
+			<xs:element name="ElectricSystem" type="mrf:PrimaryBusElectricSystemType_PEV"/>
+			<xs:element name="PneumaticSystem" type="mrf:PneumaticSystemType_PrimaryBus_PEV_IEPC"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ConventionalCompletedBusAuxOutputType">
+		<xs:sequence>
+			<xs:element name="ElectricSystem" type="mrf:CompletedBusElectricSystemType"/>
+			<xs:element name="HVACSystem" type="mrf:ConventionalCompletedBusHVACSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEVCompletedBusAuxOutputType">
+		<xs:sequence>
+			<xs:element name="ElectricSystem" type="mrf:CompletedBusElectricSystemType"/>
+			<xs:element name="HVACSystem" type="mrf:xEV_CompletedBusHVACSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEVCompletedBusAuxOutputType">
+		<xs:sequence>
+			<xs:element name="ElectricSystem" type="mrf:CompletedBusElectricSystemType"/>
+			<xs:element name="HVACSystem" type="mrf:xEV_CompletedBusHVACSystemType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="CompletedBusElectricSystemGroup">
+		<xs:sequence>
+			<xs:element name="DayRunningLightsLED" type="xs:boolean"/>
+			<xs:element name="HeadLightsLED" type="xs:boolean"/>
+			<xs:element name="PositionLightsLED" type="xs:boolean"/>
+			<xs:element name="BrakeLightsLED" type="xs:boolean"/>
+			<xs:element name="InteriorLightsLED" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="CompletedBus_xEVHVACGroup">
+		<xs:sequence>
+			<xs:element name="WaterElectricHeater" type="xs:boolean"/>
+			<xs:element name="AirElectricHeater" type="xs:boolean"/>
+			<xs:element name="OtherHeatingTechnology" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="CompletedBus_HVACSystemGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:BusAuxHVACHeatPumpSequenceGroup"/>
+			<xs:element name="DoubleGlazing" type="xs:boolean"/>
+			<xs:element name="AdjustableAuxiliaryHeater" type="xs:boolean"/>
+			<xs:element name="SeparateAirDistributionDucts" type="xs:boolean"/>
+			<xs:element name="AuxiliaryHeaterPower" type="xs:int"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PrimaryBusHVACGroup">
+		<xs:sequence>
+			<xs:element name="AdjustableCoolantThermostat" type="xs:boolean"/>
+			<xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="ConventionalADASType">
+		<xs:sequence>
+			<xs:group ref="mrf:ConventionalADASGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEVADASType">
+		<xs:sequence>
+			<xs:group ref="mrf:HEVADASGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEVADASType">
+		<xs:sequence>
+			<xs:group ref="mrf:PEVADASGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<!--ADAS-->
+	<xs:group name="ConventionalADASGroup">
+		<xs:sequence>
+			<xs:element name="EngineStopStart" type="xs:boolean"/>
+			<xs:element name="EcoRollWithoutEngineStopStart" type="xs:boolean"/>
+			<xs:element name="EcoRollWithEngineStopStart" type="xs:boolean"/>
+			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEVADASGroup">
+		<xs:sequence>
+			<xs:element name="EngineStopStart" type="xs:boolean"/>
+			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEVADASGroup">
+		<xs:sequence>
+			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<!--ElectricMachine_IEPC-->
+	<xs:group name="ElectricMachineGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="ElectricMachineType" type="xs:string"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ElectricMachinePowerGroup">
+		<xs:sequence>
+			<xs:element name="RatedPower" type="mrf:RatedPowerType"/>
+			<xs:element name="VoltageLevels">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="VoltageLevel" maxOccurs="unbounded">
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="MaxContinuousPower" type="mrf:RatedPowerType"/>
+								</xs:sequence>
+								<xs:attribute name="voltage"/>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="IEPCGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:group ref="mrf:ElectricMachinePowerGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:element name="LowestTotalTransmissionRatio" type="v1.0:Double3"/>
+			<xs:element name="DifferentialIncluded" type="xs:boolean"/>
+			<xs:element name="DesignTypeWheelMotor" type="xs:boolean"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
+		</xs:sequence>
+	</xs:group>
+	<!--Axles-->
+	<xs:complexType name="AxleGearType">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="CertificationMethod" type="v1.0:AxlegearCertificationOptionType"/>
+			<xs:element name="AxleType" type="v1.0:AxlegearLineTypeType"/>
+			<xs:element name="Ratio" type="v1.0:AxlegearRatioType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="TyresOutputType">
+		<xs:sequence>
+			<xs:element name="TwinTyres" type="xs:boolean" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="TyreGroup">
+		<xs:sequence>
+			<xs:element name="TyreDimension" type="v2.3:TyreDimensionType"/>
+			<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"/>
+			<xs:element name="SpecificRRC" type="v1.0:TyreRRCISOType"/>
+			<xs:element name="DigestValue" type="xs:token"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="AxleWheelsType">
+		<xs:sequence>
+			<xs:element name="Axle" type="mrf:AxleType" minOccurs="2" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AxlesType">
+		<xs:sequence>
+			<xs:element name="Axle" type="mrf:AxleType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AxleType">
+		<xs:sequence>
+			<xs:element name="TwinTyres" type="xs:boolean" minOccurs="0"/>
+			<xs:element name="Tyre" type="mrf:TyreType"/>
+		</xs:sequence>
+		<xs:attribute name="axleNumber" type="xs:int" use="required"/>
+	</xs:complexType>
+	<xs:complexType name="AirdragType">
+		<xs:sequence>
+			<xs:element name="Model" type="v1.0:ModelType"/>
+			<xs:element name="CertificationMethod"/>
+			<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0"/>
+			<xs:element name="CdxA" type="v1.0:AirdragCdxAType"/>
+			<xs:element name="DigestValue" type="xs:token"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AngledriveType">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="CertificationMethod" type="v1.0:AngledriveCertificationOptionType"/>
+			<xs:element name="AngledriveRatio" type="v1.0:AngledriveRatioType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="PrimaryBusGeneralVehicleOutputGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:ManufacturerGroup"/>
+			<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
+			<xs:sequence>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ExemptedPrimaryBusGeneralVehicleOutputGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:ManufacturerGroup"/>
+			<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
+			<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="TorqueConverterType">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="RetarderType">
+		<xs:sequence>
+			<xs:element name="RetarderType" type="xs:string"/>
+			<xs:group ref="mrf:ComponentCommonOutputGroup" minOccurs="0"/>
+			<xs:element name="CertificationMethod" type="xs:string" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="TransmissionType">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
+			<xs:element name="Type" type="v2.3:GearboxTransmissionTypeType"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
+			<xs:element name="FinalGearRatio" type="v1.0:GearboxGearRatioType"/>
+			<xs:element name="PowerTakeOff" type="xs:boolean" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="EngineTorqueLimitsType">
+		<xs:sequence>
+			<xs:element name="EngineTorqueLimit" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="Gear" type="xs:int" use="required"/>
+							<xs:attribute name="unit" type="mrf:PercentType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="EngineOutputType">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="RatedPower" type="v1.0:EngineRatedPower"/>
+			<xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/>
+			<xs:element name="RatedSpeed" type="v1.0:EngineDeclaredSpeedType"/>
+			<xs:element name="Capacity" type="mrf:EngineCapacityType"/>
+			<xs:element name="FuelTypes">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="FuelType" type="v1.0:FuelTypeType" maxOccurs="unbounded"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="WasteHeatRecoverySystem" type="xs:boolean"/>
+			<xs:element name="WasteHeatRecoverySystemType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="ComponentCommonOutputGroup">
+		<xs:sequence>
+			<xs:element name="Model" type="v1.0:ModelType"/>
+			<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType"/>
+			<xs:element name="DigestValue" type="xs:token" minOccurs="0"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="EngineCapacityType">
+		<xs:simpleContent>
+			<xs:extension base="xs:double"/>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="AlternatorTechnologyType"/>
+	<xs:simpleType name="PowerType">
+		<xs:restriction base="xs:double"/>
+	</xs:simpleType>
+	<xs:simpleType name="StorageCapacityType">
+		<xs:restriction base="xs:double"/>
+	</xs:simpleType>
+	<xs:group name="Conventional-LorryVehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:LorryGeneralVehicleOutputGroup"/>
+			<xs:element name="DualFuelVehicle" type="v1.0:DualFuelType">
+				<xs:annotation>
+					<xs:documentation>1.1.12. Dual-fuel vehicle</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType">
+				<xs:annotation>
+					<xs:documentation>1.1.13 Sleeper cab</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="NgTankSystem" type="v1.0:NgTankSystemType" minOccurs="0"/>
+			<xs:element name="ADAS" type="mrf:ConventionalADASType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV-LorryVehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:LorryGeneralVehicleOutputGroup"/>
+			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV-LorryVehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:LorryGeneralVehicleOutputGroup"/>
+			<xs:element name="SleeperCab" type="v1.0:SleeperCabType">
+				<xs:annotation>
+					<xs:documentation>1.1.13 Sleeper cab</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:group ref="mrf:PEVVehicleSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Conventional-PrimaryBus-VehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:PrimaryBusGeneralVehicleOutputGroup"/>
+			<xs:element name="DualFuelVehicle" type="xs:boolean"/>
+			<xs:element name="ADAS" type="mrf:ConventionalADASType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV-PrimaryBus-VehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:PrimaryBusGeneralVehicleOutputGroup"/>
+			<xs:element name="DualFuelVehicle" type="xs:boolean"/>
+			<xs:group ref="mrf:HEVVehicleSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV-PrimaryBus-VehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:PrimaryBusGeneralVehicleOutputGroup"/>
+			<xs:group ref="mrf:PEVVehicleSequenceGroup"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Conventional-CompletedBusVehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:CompletedBusGeneralVehicleOutputGroup"/>
+			<xs:group ref="mrf:CompletedBusVehicleDimensionSequenceGroup"/>
+			<xs:element name="DoorDriveTechnology" type="v2.4:DoorDriveTechnologyType"/>
+			<xs:element name="NgTankSystem" type="v1.0:NgTankSystemType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV-CompletedBusVehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:CompletedBusGeneralVehicleOutputGroup"/>
+			<xs:group ref="mrf:CompletedBusVehicleDimensionSequenceGroup"/>
+			<xs:element name="DoorDriveTechnology" type="v2.4:DoorDriveTechnologyType"/>
+			<xs:element name="NgTankSystem" type="v1.0:NgTankSystemType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV-CompletedBusVehicleOutputTypeGroup">
+		<xs:sequence>
+			<xs:group ref="mrf:CompletedBusGeneralVehicleOutputGroup"/>
+			<xs:group ref="mrf:CompletedBusVehicleDimensionSequenceGroup"/>
+			<xs:element name="DoorDriveTechnology" type="v2.4:DoorDriveTechnologyType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="TyreType">
+		<xs:sequence>
+			<xs:group ref="mrf:TyreGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PrimaryBusElectricSystemType_Conventional_HEV">
+		<xs:sequence>
+			<xs:element name="AlternatorTechnology" type="v2.4:AlternatorTechnologyType"/>
+			<xs:element name="MaxAlternatorPower" type="mrf:PowerType" minOccurs="0"/>
+			<xs:element name="ElectricStorageCapacity" type="mrf:StorageCapacityType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PrimaryBusElectricSystemType_PEV">
+		<xs:sequence>
+			<xs:element name="ElectricStorageCapacity" type="mrf:StorageCapacityType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PneumaticSystemType_PrimaryBus_Conventional_HEV_P">
+		<xs:sequence>
+			<xs:element name="Technology" type="xs:string"/>
+			<xs:element name="CompressorRatio" type="v1.0:Double3"/>
+			<xs:element name="SmartCompressionSystem" type="xs:boolean"/>
+			<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+			<xs:element name="AirsuspensionControl" type="mrf:AirsuspensionControlType"/>
+			<xs:element name="ReagentDosing" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PneumaticSystemType_PrimaryBus_HEV_S">
+		<xs:sequence>
+			<xs:element name="Technology" type="xs:string"/>
+			<xs:element name="CompressorRatio" type="v1.0:Double3"/>
+			<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+			<xs:element name="AirsuspensionControl" type="mrf:AirsuspensionControlType"/>
+			<xs:element name="ReagentDosing" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PneumaticSystemType_PrimaryBus_PEV_IEPC">
+		<xs:sequence>
+			<xs:element name="Technology" type="xs:string"/>
+			<!-- <xs:element name="CompressorRatio" type="v1.0:Double3"/> -->
+			<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+			<xs:element name="AirsuspensionControl" type="mrf:AirsuspensionControlType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HVACSystemType">
+		<xs:group ref="mrf:PrimaryBusHVACGroup"/>
+	</xs:complexType>
+	<xs:complexType name="LorryElectricSystemType">
+		<xs:sequence>
+			<xs:element name="LEDHeadLights" type="xs:boolean"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PneumaticSystemType_1">
+		<xs:sequence>
+			<xs:element name="Technology" type="v2.4:AuxPSTechnologyLorryType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="CompletedBusElectricSystemType">
+		<xs:group ref="mrf:CompletedBusElectricSystemGroup"/>
+	</xs:complexType>
+	<xs:complexType name="ConventionalCompletedBusHVACSystemType">
+		<xs:sequence>
+			<xs:group ref="mrf:CompletedBus_HVACSystemGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="xEV_CompletedBusHVACSystemType">
+		<xs:sequence>
+			<xs:group ref="mrf:CompletedBus_HVACSystemGroup"/>
+			<xs:group ref="mrf:CompletedBus_xEVHVACGroup"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:simpleType name="AirsuspensionControlType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="mechanic"/>
+			<xs:enumeration value="electric"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="RatedPowerType">
+		<xs:restriction base="xs:int"/>
+	</xs:simpleType>
+	<xs:simpleType name="LegislativeCategoryType">
+		<xs:union memberTypes="v2.4:LegislativeCategoryHeavyLorryDeclarationType v2.4:LegislativeCategoryMediumLorryDeclarationType v2.4:LegislativeCategoryPrimaryBusDeclarationType"/>
+	</xs:simpleType>
+	<xs:complexType name="ADCType">
+		<xs:sequence>
+			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
+			<xs:element name="Ratio" type="v1.0:AngledriveRatioType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineType">
+		<xs:sequence>
+			<xs:sequence>
+				<!--xs:element name="CoupledAxleNumber" type="xs:int"/-->
+				<xs:element name="Position" type="v2.4:PowertrainPositionType"/>
+				<xs:element name="CountAtPosition" type="xs:int"/>
+			</xs:sequence>
+			<xs:element name="ElectricMachineSystem" type="mrf:ElectricMachineSystemType"/>
+			<xs:element name="ADC" type="mrf:ADCType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="BusAuxHVACHeatPumpSequenceGroup">
+		<xs:sequence>
+			<xs:element name="SystemConfiguration">
+				<xs:annotation>
+					<xs:documentation>P317 - [-]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="HeatPumpTypeDriverCompartment">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Cooling" type="v2.4:HeatPumpTypeDriverCompartmentType">
+							<xs:annotation>
+								<xs:documentation>P318 - enum</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+						<xs:element name="Heating" type="v2.4:HeatPumpTypeDriverCompartmentType">
+							<xs:annotation>
+								<xs:documentation>P319 - enum</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HeatPumpTypePassengerCompartment">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Cooling" type="v2.4:HeatPumpTypePassengerCompartmentType">
+							<xs:annotation>
+								<xs:documentation>P320 - enum</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+						<xs:element name="Heating" type="v2.4:HeatPumpTypePassengerCompartmentType">
+							<xs:annotation>
+								<xs:documentation>P321 - enum</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:simpleType name="ExemptedTechnologyType">
+		<xs:annotation>
+			<xs:documentation>P332 - enum</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="HEV Article 9 exempted"/>
+			<xs:enumeration value="PEV Article 9 exempted"/>
+			<xs:enumeration value="HV Article 9 exempted"/>
+			<xs:enumeration value="Fuel cell vehicle"/>
+			<xs:enumeration value="H2 ICE"/>
+			<xs:enumeration value="Dual fuel vehicle Article 9 exempted"/>
+			<xs:enumeration value="In-motion charging Article 9 exempted"/>
+			<xs:enumeration value="Other technology Article 9 exempted"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="SteeringPumpOutput">
+		<xs:union memberTypes="v2.4:AuxSPTechnologyLorryType v2.4:AuxSPTechnology_HEV-S_LorryType v2.4:AuxSPTechnology_PEV_LorryType"/>
+	</xs:simpleType>
+	<!--Results-->
+	<xs:element name="VectoMockResults">
+		<xs:annotation>
+			<xs:documentation>This element is just for developing the XML Schema of the different types of results - can be removed later on</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="Results" type="mrf:ResultsType"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:complexType name="ResultsType">
+		<xs:sequence>
+			<xs:element name="Status">
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="success"/>
+						<xs:enumeration value="error"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:choice>
+				<xs:sequence>
+					<xs:element name="Result" type="mrf:AbstractResultType" maxOccurs="unbounded"/>
+				</xs:sequence>
+				<xs:element name="ExemptedVehicle">
+					<xs:complexType/>
+				</xs:element>
+			</xs:choice>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AbstractResultType" abstract="true">
+		<xs:attribute name="status" use="required">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="success"/>
+					<xs:enumeration value="error"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessOVCHEVType">
+		<xs:complexContent>
+			<xs:extension base="mrf:AbstractResultType">
+				<xs:sequence>
+					<xs:group ref="mrf:ResultSuccessSimulationParametersGroup"/>
+					<xs:element name="OVCMode" minOccurs="2" maxOccurs="2">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="VehiclePerformance" type="mrf:VehiclePerformanceType"/>
+								<xs:element name="Fuel" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded">
+												<xs:annotation>
+													<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+												</xs:annotation>
+											</xs:element>
+										</xs:sequence>
+										<xs:attribute name="type" type="xs:string" use="required"/>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="ElectricEnergy" type="mrf:ElectricEnergyType" minOccurs="0"/>
+								<xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+							<xs:attribute name="type" use="required">
+								<xs:simpleType>
+									<xs:restriction base="xs:string">
+										<xs:enumeration value="charge depleting"/>
+										<xs:enumeration value="charge sustaining"/>
+									</xs:restriction>
+								</xs:simpleType>
+							</xs:attribute>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Total">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="VehiclePerformance" type="mrf:VehiclePerformanceOCVTotalType"/>
+								<xs:element name="Fuel" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded">
+												<xs:annotation>
+													<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+												</xs:annotation>
+											</xs:element>
+										</xs:sequence>
+										<xs:attribute name="type" type="xs:string" use="required"/>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="ElectricEnergy" type="mrf:ElectricEnergyType"/>
+								<xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:group ref="mrf:ElectricRangeSequenceGroup"/>
+								<xs:element name="UtilityFactor" type="xs:double"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessPEVType">
+		<xs:complexContent>
+			<xs:extension base="mrf:AbstractResultType">
+				<xs:sequence>
+					<xs:group ref="mrf:ResultSuccessSimulationParametersGroup"/>
+					<xs:element name="Total">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="VehiclePerformance" type="mrf:VehiclePerformancePEVType"/>
+								<xs:element name="ElectricEnergy" type="mrf:ElectricEnergyType"/>
+								<xs:sequence minOccurs="0">
+									<xs:element name="FC_ZEV_AuxHeater">
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded">
+													<xs:annotation>
+														<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+													</xs:annotation>
+												</xs:element>
+											</xs:sequence>
+											<xs:attribute name="type" type="xs:string" use="required"/>
+										</xs:complexType>
+									</xs:element>
+									<xs:element name="CO2_ZEV_AuxHeater">
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded">
+													<xs:annotation>
+														<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+													</xs:annotation>
+												</xs:element>
+											</xs:sequence>
+										</xs:complexType>
+									</xs:element>
+								</xs:sequence>
+								<xs:group ref="mrf:ElectricRangeSequenceGroup"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessConventionalType">
+		<xs:complexContent>
+			<xs:extension base="mrf:AbstractResultType">
+				<xs:sequence>
+					<xs:group ref="mrf:ResultSuccessSimulationParametersGroup"/>
+					<xs:element name="Total">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="VehiclePerformance" type="mrf:VehiclePerformanceType"/>
+								<xs:element name="Fuel" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="FuelConsumption" type="mrf:FuelConsumptionType" maxOccurs="unbounded">
+												<xs:annotation>
+													<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+												</xs:annotation>
+											</xs:element>
+										</xs:sequence>
+										<xs:attribute name="type" type="xs:string" use="required"/>
+									</xs:complexType>
+								</xs:element>
+								<xs:element name="CO2" type="mrf:CO2Type" maxOccurs="unbounded">
+									<xs:annotation>
+										<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultSuccessNonOCVHEVType">
+		<xs:complexContent>
+			<xs:extension base="mrf:ResultSuccessConventionalType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ResultErrorType">
+		<xs:complexContent>
+			<xs:extension base="mrf:AbstractResultType">
+				<xs:sequence>
+					<xs:element name="Mission" type="mrf:MissionTypeType">
+						<xs:annotation>
+							<xs:documentation>I.2.1.1 / #56</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="SimulationParameters" type="mrf:SimulationParametersType"/>
+					<xs:element name="VehicleGroup" type="xs:string"/>
+					<xs:element name="Error" type="xs:string"/>
+					<xs:element name="ErrorDetails" type="xs:string"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="SimulationParametersType">
+		<xs:sequence>
+			<xs:element name="TotalVehicleMass">
+				<xs:annotation>
+					<xs:documentation>I.2.1.4 / #59</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:MassUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="Payload">
+				<xs:annotation>
+					<xs:documentation>I.2.1.2 / #57</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:MassUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PassengerCount" type="xs:double" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:simpleType name="CO2UnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="g/km"/>
+			<xs:enumeration value="g/t-km"/>
+			<xs:enumeration value="g/p-km"/>
+			<xs:enumeration value="g/m³-km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="DistanceUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="EnergyConsumptionUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kWh/km"/>
+			<xs:enumeration value="kWh/t-km"/>
+			<xs:enumeration value="kWh/m³-km"/>
+			<xs:enumeration value="kWh/p-km"/>
+			<xs:enumeration value="MJ/km"/>
+			<xs:enumeration value="MJ/t-km"/>
+			<xs:enumeration value="MJ/m³-km"/>
+			<xs:enumeration value="MJ/p-km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="FuelConsumptionUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="g/km"/>
+			<xs:enumeration value="g/t-km"/>
+			<xs:enumeration value="g/p-km"/>
+			<xs:enumeration value="g/m³-km"/>
+			<xs:enumeration value="l/100km"/>
+			<xs:enumeration value="l/t-km"/>
+			<xs:enumeration value="l/p-km"/>
+			<xs:enumeration value="l/m³-km"/>
+			<xs:enumeration value="MJ/km"/>
+			<xs:enumeration value="MJ/t-km"/>
+			<xs:enumeration value="MJ/m³-km"/>
+			<xs:enumeration value="MJ/p-km"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="MassUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="kg"/>
+			<xs:enumeration value="t"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="PercentType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="%"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="PowerUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kW"/>
+			<xs:enumeration value="W"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="EnergyUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kWh"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="SpeedUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="km/h"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="AccelerationUnitType">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="m/s²"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="AngularVelocityUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="rpm"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="MissionTypeType">
+		<xs:restriction base="xs:token">
+			<xs:minLength value="1"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:complexType name="VehiclePerformanceType">
+		<xs:sequence>
+			<xs:element name="AverageSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.1 / #60</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="AverageDrivingSpeed">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MinSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.2 / #61</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MaxSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.3 / #62</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MaxDeceleration">
+				<xs:annotation>
+					<xs:documentation>I.2.2.4 / #63</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MaxAcceleration">
+				<xs:annotation>
+					<xs:documentation>I.2.2.5 / #64</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="FullLoadDrivingtimePercentage">
+				<xs:annotation>
+					<xs:documentation>I.2.2.6 / #65</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:double">
+						<xs:minInclusive value="0"/>
+						<xs:maxInclusive value="100"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="GearshiftCount" type="xs:int">
+				<xs:annotation>
+					<xs:documentation>I.2.2.7 / #66</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="EngineSpeedDriving" type="mrf:EngineSpeedDrivingType"/>
+			<xs:element name="AverageGearboxEfficiency" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:PercentType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="AverageAxlegearEfficiency" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:PercentType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="VehiclePerformancePEVType">
+		<xs:sequence>
+			<xs:element name="AverageSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.1 / #60</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="AverageDrivingSpeed">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MinSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.2 / #61</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MaxSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.3 / #62</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MaxDeceleration">
+				<xs:annotation>
+					<xs:documentation>I.2.2.4 / #63</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="MaxAcceleration">
+				<xs:annotation>
+					<xs:documentation>I.2.2.5 / #64</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AccelerationUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="FullLoadDrivingtimePercentage">
+				<xs:annotation>
+					<xs:documentation>I.2.2.6 / #65</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:double">
+						<xs:minInclusive value="0"/>
+						<xs:maxInclusive value="100"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="GearshiftCount" type="xs:int">
+				<xs:annotation>
+					<xs:documentation>I.2.2.7 / #66</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="AverageGearboxEfficiency" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:PercentType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="AverageAxlegearEfficiency" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:PercentType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="VehiclePerformanceOCVTotalType">
+		<xs:sequence>
+			<xs:element name="AverageSpeed">
+				<xs:annotation>
+					<xs:documentation>I.2.2.1 / #60</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="AverageDrivingSpeed">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:SpeedUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="FuelConsumptionType">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="mrf:FuelConsumptionUnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="CO2Type">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="mrf:CO2UnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="EngineSpeedDrivingType">
+		<xs:sequence>
+			<xs:element name="Min">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AngularVelocityUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="Average">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AngularVelocityUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="Max">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:AngularVelocityUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="ResultSuccessSimulationParametersGroup">
+		<xs:sequence>
+			<xs:element name="Mission" type="mrf:MissionTypeType"/>
+			<xs:element name="Distance">
+				<xs:annotation>
+					<xs:documentation>I.2.2.8 / #67</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="SimulationParameters" type="mrf:SimulationParametersType"/>
+			<xs:element name="PrimaryVehicleSubgroup" type="xs:string" minOccurs="0"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="EnergyConsumptionType">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="mrf:EnergyConsumptionUnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="FuelType"/>
+	<xs:complexType name="ElectricEnergyType">
+		<xs:sequence>
+			<xs:element name="EnergyConsumption" type="mrf:EnergyConsumptionType" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:group name="ElectricRangeSequenceGroup">
+		<xs:sequence>
+			<xs:element name="ActualChargeDepletingRange">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="EquivalentAllElectricRange">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="ZeroCO2EmissionsRange">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:DistanceUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+</xs:schema>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd
index be5f35c199845233d0656aa3c6cbfffe0ba0ba83..3113d85b0fc963438773259e8b7e93436e3ecf2b 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput" xmlns:mrf0.5="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" xmlns:mrf0.6="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.6" xmlns:mrf0.7="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" xmlns:mrf0.8="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.8"  xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:ns1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:DEV:v0.9.1" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput" xmlns:mrf0.5="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" xmlns:mrf0.6="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.6" xmlns:mrf0.7="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" xmlns:mrf0.8="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.8" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:ns1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:DEV:v0.9.1" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
 	<!-- 
 
          This is a convienience file that imports the schema for all supported versions of manufacturer records file and all supported declaration definitions
@@ -12,6 +12,7 @@
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" schemaLocation="VectoOutputManufacturer.0.7.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" schemaLocation="VectoOutputManufacturer.0.7.1.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.8" schemaLocation="VectoOutputManufacturer.0.8.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" schemaLocation="VectoOutputManufacturer.0.9.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
 	<xs:element name="VectoOutput" type="mrf:VectoOutputManufacturerType">
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
index eb4db2f62008514f6e38d572078374c2f89a8148..7a631f1390c359da7dbe2d7676e78fe24df67455 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 
-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:v2.3"  xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
@@ -9,28 +8,243 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaLocation="VectoDeclarationDefinitions.2.4.xsd"/>
+	<xs:complexType name="ElectricMachineSystemMaxTorqueEntryType">
+		<xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required">
+			<xs:annotation>
+				<xs:documentation>P468 - [rpm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="maxTorque" type="v2.3:maxTorqueType" use="required">
+			<xs:annotation>
+				<xs:documentation>P469 - [Nm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="minTorque" type="v2.3:minTorqueType" use="required">
+			<xs:annotation>
+				<xs:documentation>P470 - [Nm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemPowerMapEntryType">
+		<xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required">
+			<xs:annotation>
+				<xs:documentation>P473 - [rpm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="torque" type="v2.3:PowerMapTorqueType" use="required">
+			<xs:annotation>
+				<xs:documentation>P474 - [Nm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="electricPower" type="v2.3:PowerMapElectricPowerType" use="required">
+			<xs:annotation>
+				<xs:documentation>P475 - [W]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:element name="VectoMockResults">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="Results" type="vif:ResultsPrimaryVehicleType"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
 	<xs:element name="VectoOutputMultistep" type="vif:VectoOutputMultistepType">
 		<xs:annotation>
 			<xs:documentation>Comment describing your root element</xs:documentation>
 		</xs:annotation>
 	</xs:element>
-	<xs:complexType name="AbstractAngledriveDataPIFType" abstract="true"/>
-	<xs:complexType name="AbstractAuxiliaryDataPIFType" abstract="true"/>
-	<xs:complexType name="AbstractAxlegearDataPIFType" abstract="true"/>
-	<xs:complexType name="AbstractAxleWheelsComponentPIFType" abstract="true"/>
-	<xs:complexType name="AbstractAxleWheelsDataPIFType" abstract="true"/>
-	<xs:complexType name="AbstractEngineDataPIFType" abstract="true"/>
+	<xs:complexType name="Abstract_AUX_HEV-P_PrimaryBusDeclarationType" abstract="true"/>
+	<xs:complexType name="Abstract_AUX_HEV-S_PrimaryBusDeclarationType" abstract="true"/>
+	<xs:complexType name="Abstract_AUX_IEPC_PrimaryBusDeclarationType" abstract="true"/>
+	<xs:complexType name="Abstract_AUX_PEV_PrimaryBusDeclarationType" abstract="true"/>
+	<xs:group name="BusAuxElectricSystemSupplySequenceGroup">
+		<xs:sequence>
+			<xs:element name="SmartAlternator" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="RatedCurrent">
+							<xs:annotation>
+								<xs:documentation>P295 - [A]</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:integer">
+									<xs:minExclusive value="0"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+						<xs:element name="RatedVoltage">
+							<xs:annotation>
+								<xs:documentation>P296 - [V]</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:integer">
+									<xs:enumeration value="12"/>
+									<xs:enumeration value="24"/>
+									<xs:enumeration value="48"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="Battery" minOccurs="0" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="BatteryTechnology">
+							<xs:annotation>
+								<xs:documentation>P296 - enum</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:string">
+									<xs:enumeration value="lead-acid battery – conventional"/>
+									<xs:enumeration value="lead-acid battery – AGM"/>
+									<xs:enumeration value="lead-acid battery – gel"/>
+									<xs:enumeration value="li-ion battery - high power"/>
+									<xs:enumeration value="li-ion battery - high energy"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+						<xs:element name="RatedCapacity" type="xs:integer">
+							<xs:annotation>
+								<xs:documentation>P299 - [Ah]</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+						<xs:element name="NominalVoltage">
+							<xs:annotation>
+								<xs:documentation>P298 - [V]</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:integer">
+									<xs:enumeration value="12"/>
+									<xs:enumeration value="24"/>
+									<xs:enumeration value="48"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="Capacitor" minOccurs="0" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="CapacitorTechnology">
+							<xs:annotation>
+								<xs:documentation>P300 - [-]</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:string">
+									<xs:enumeration value="with DCDC converter"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+						<xs:element name="RatedCapacitance">
+							<xs:annotation>
+								<xs:documentation>P301 - [F]</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:integer">
+									<xs:minExclusive value="0"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+						<xs:element name="RatedVoltage">
+							<xs:annotation>
+								<xs:documentation>P302 - [V]</xs:documentation>
+							</xs:annotation>
+							<xs:simpleType>
+								<xs:restriction base="xs:integer">
+									<xs:minExclusive value="0"/>
+								</xs:restriction>
+							</xs:simpleType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="AbstractADCDataDeclarationType" abstract="true"/>
+	<xs:complexType name="AbstractAngledriveDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractAuxiliaryDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractAxlegearDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractAxleWheelsComponentVIFType" abstract="true"/>
+	<xs:complexType name="AbstractAxleWheelsDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractBatterySystemDataType" abstract="true">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractREESSDataType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AbstractCapacitorSystemDataType" abstract="true"/>
+	<xs:complexType name="AbstractElectricMachineSystemDataType" abstract="true"/>
+	<xs:complexType name="AbstractElectricMachineSystemVoltageLevelType" abstract="true"/>
+	<xs:complexType name="AbstractEngineDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractIEPCGearsDeclarationType" abstract="true"/>
 	<xs:complexType name="AbstractManufacturingStepDataType" abstract="true">
 		<xs:attribute name="id" type="xs:NCName" use="required"/>
 	</xs:complexType>
 	<xs:complexType name="AbstractPrimaryVehicleType" abstract="true"/>
-	<xs:complexType name="AbstractTorqueConverterDataPIFType" abstract="true"/>
-	<xs:complexType name="AbstractTransmissionDataPIFType" abstract="true"/>
-	<xs:complexType name="AbstractTransmissionGearsPIFType" abstract="true"/>
-	<xs:complexType name="AbstractVehicleComponentsPIFType" abstract="true"/>
-	<xs:complexType name="AngledriveDataPIFType">
+	<xs:complexType name="AbstractREESSDataType" abstract="true"/>
+	<xs:complexType name="AbstractTorqueConverterDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractTransmissionDataVIFType" abstract="true"/>
+	<xs:complexType name="AbstractTransmissionGearsVIFType" abstract="true"/>
+	<xs:complexType name="AbstractVehicleComponentsConventionalVIFType" abstract="true"/>
+	<xs:complexType name="AbstractVehicleComponentsHEV_Px_VIFType" abstract="true"/>
+	<xs:complexType name="AbstractVehicleComponentsHEV_Sx_VIFType" abstract="true"/>
+	<xs:complexType name="AbstractVehicleComponentsIEPC_S_VIFType" abstract="true"/>
+	<xs:complexType name="AbstractVehicleComponentsIEPC_VIFType" abstract="true"/>
+	<xs:complexType name="AbstractVehicleComponentsPEV_Ex_VIFType" abstract="true"/>
+	<xs:complexType name="AbstractVIFIEPCDataType" abstract="true"/>
+	<xs:complexType name="ADCComponentDeclarationType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractADCDataDeclarationType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ADCDataDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractADCDataDeclarationType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P220 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P221 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType">
+						<xs:annotation>
+							<xs:documentation>P265 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P223 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P224 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Ratio" type="v1.0:AngledriveRatioType">
+						<xs:annotation>
+							<xs:documentation>P176 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationMethod" type="v1.0:AngledriveCertificationOptionType">
+						<xs:annotation>
+							<xs:documentation>P258 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AngledriveDataVIFType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractAngledriveDataPIFType">
+			<xs:extension base="vif:AbstractAngledriveDataVIFType">
 				<xs:sequence>
 					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
 						<xs:annotation>
@@ -62,14 +276,53 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 							<xs:documentation>P224</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:element name="Ratio"/>
+					<xs:element name="Ratio" type="xs:double"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="RetarderDataVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractRetarderVIFDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P220</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P221</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationMethod" type="v1.0:AngledriveCertificationOptionType">
+						<xs:annotation>
+							<xs:documentation>P258 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P265</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P223</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P224</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="RetarderRatio" type="xs:double"/>
 				</xs:sequence>
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="AngledrivePIFType">
+	<xs:complexType name="AngledriveVIFType">
 		<xs:sequence>
-			<xs:element name="Data" type="vif:AbstractAngledriveDataPIFType"/>
+			<xs:element name="Data" type="vif:AbstractAngledriveDataVIFType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="ApplicationInformationPrimaryVehicleType">
@@ -86,14 +339,9 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:element>
 		</xs:sequence>
 	</xs:complexType>
-	<xs:complexType name="AuxiliaryComponentPIFType">
-		<xs:sequence>
-			<xs:element name="Data" type="vif:AbstractAuxiliaryDataPIFType"/>
-		</xs:sequence>
-	</xs:complexType>
-	<xs:complexType name="AuxiliaryDataPIFType">
+	<xs:complexType name="AUX_Conventional_PrimaryBusType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractAuxiliaryDataPIFType">
+			<xs:extension base="vif:AbstractAuxiliaryDataVIFType">
 				<xs:sequence>
 					<xs:element name="Fan">
 						<xs:complexType>
@@ -295,66 +543,344 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="AxlegearComponentPIFType">
-		<xs:sequence>
-			<xs:element name="Data" type="vif:AbstractAxlegearDataPIFType"/>
-		</xs:sequence>
-	</xs:complexType>
-	<xs:complexType name="AxlegearDataPIFType">
+	<xs:complexType name="AUX_HEV-P_PrimaryBusType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractAxlegearDataPIFType">
+			<xs:extension base="vif:Abstract_AUX_HEV-P_PrimaryBusDeclarationType">
 				<xs:sequence>
-					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
-						<xs:annotation>
-							<xs:documentation>P215</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="Model" type="v1.0:ModelType">
-						<xs:annotation>
-							<xs:documentation>P216</xs:documentation>
-						</xs:annotation>
+					<xs:element name="Fan">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Technology" type="v2.4:AuxFanTechnologyPrimaryBusType">
+									<xs:annotation>
+										<xs:documentation>P181 - enum</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
 					</xs:element>
-					<xs:element name="CertificationMethod" type="v1.0:AxlegearCertificationOptionType">
-						<xs:annotation>
-							<xs:documentation>P256 - [-]</xs:documentation>
-						</xs:annotation>
+					<xs:element name="SteeringPump">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Technology" maxOccurs="4">
+									<xs:annotation>
+										<xs:documentation>P182 - enum</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="v2.4:AuxSPTechnologyPrimaryBusType">
+												<xs:attribute name="axleNumber" use="required">
+													<xs:simpleType>
+														<xs:restriction base="xs:int">
+															<xs:minInclusive value="1"/>
+															<xs:maxInclusive value="4"/>
+														</xs:restriction>
+													</xs:simpleType>
+												</xs:attribute>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
 					</xs:element>
-					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>P264</xs:documentation>
-						</xs:annotation>
+					<xs:element name="ElectricSystem">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AlternatorTechnology" type="v2.4:AlternatorTechnology_HEV_Type">
+									<xs:annotation>
+										<xs:documentation>P294 - enum</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:group ref="vif:BusAuxElectricSystemSupplySequenceGroup" minOccurs="0"/>
+								<xs:element name="SupplyFromHEVPossible" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P303 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
 					</xs:element>
-					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
-						<xs:annotation>
-							<xs:documentation>P218</xs:documentation>
-						</xs:annotation>
+					<xs:element name="PneumaticSystem">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="vif:BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"/>
+								<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+							</xs:sequence>
+						</xs:complexType>
 					</xs:element>
-					<xs:element name="AppVersion" type="v1.0:AppVersionType">
-						<xs:annotation>
-							<xs:documentation>P219</xs:documentation>
-						</xs:annotation>
+					<xs:element name="HVAC">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AdjustableCoolantThermostat" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P324 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P326 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
 					</xs:element>
-					<xs:element name="LineType"/>
-					<xs:element name="Ratio"/>
 				</xs:sequence>
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="AxleWheelsComponentPIFType">
+	<xs:complexType name="AUX_HEV-S_PrimaryBusType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractAxleWheelsComponentPIFType">
+			<xs:extension base="vif:Abstract_AUX_HEV-S_PrimaryBusDeclarationType">
 				<xs:sequence>
-					<xs:element name="Data" type="vif:AbstractAxleWheelsDataPIFType"/>
+					<xs:element name="Fan">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Technology" type="v2.4:AuxFanTechnologyPrimaryBusType">
+									<xs:annotation>
+										<xs:documentation>P181 - enum</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="SteeringPump">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Technology" maxOccurs="4">
+									<xs:annotation>
+										<xs:documentation>P182 - enum</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="v2.4:AuxSPTechnology_HEV-S_PrimaryBusType">
+												<xs:attribute name="axleNumber" use="required">
+													<xs:simpleType>
+														<xs:restriction base="xs:int">
+															<xs:minInclusive value="1"/>
+															<xs:maxInclusive value="4"/>
+														</xs:restriction>
+													</xs:simpleType>
+												</xs:attribute>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="ElectricSystem">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AlternatorTechnology" type="v2.4:AlternatorTechnology_HEV-S_Type">
+									<xs:annotation>
+										<xs:documentation>P294 - enum</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="SupplyFromHEVPossible" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P303 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="PneumaticSystem">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="vif:BusAuxPneumaticSystemGen_HEV-S_SequenceGroup"/>
+								<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="HVAC">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AdjustableCoolantThermostat" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P324 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+								<xs:element name="EngineWasteGasHeatExchanger" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P326 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
 				</xs:sequence>
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="AxleWheelsDataPIFType">
-		<xs:annotation>
-			<xs:documentation>Axles &amp; Wheels Component</xs:documentation>
-		</xs:annotation>
+	<xs:complexType name="AUX_IEPC_PrimaryBusType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractAxleWheelsDataPIFType">
+			<xs:extension base="vif:Abstract_AUX_IEPC_PrimaryBusDeclarationType">
+				<xs:sequence>
+					<xs:element name="SteeringPump">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Technology" maxOccurs="4">
+									<xs:annotation>
+										<xs:documentation>P182 - enum</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="v2.4:AuxSPTechnology_PEV_PrimaryBusType">
+												<xs:attribute name="axleNumber" use="required">
+													<xs:simpleType>
+														<xs:restriction base="xs:int">
+															<xs:minInclusive value="1"/>
+															<xs:maxInclusive value="4"/>
+														</xs:restriction>
+													</xs:simpleType>
+												</xs:attribute>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="PneumaticSystem">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="vif:BusAuxPneumaticSystemGen_IEPC_SequenceGroup"/>
+								<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="HVAC">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AdjustableCoolantThermostat" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P324 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AUX_PEV_PrimaryBusType">
+		<xs:complexContent>
+			<xs:extension base="vif:Abstract_AUX_PEV_PrimaryBusDeclarationType">
+				<xs:sequence>
+					<xs:element name="SteeringPump">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Technology" maxOccurs="4">
+									<xs:annotation>
+										<xs:documentation>P182</xs:documentation>
+									</xs:annotation>
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="v2.4:AuxSPTechnology_PEV_PrimaryBusType">
+												<xs:attribute name="axleNumber" use="required">
+													<xs:simpleType>
+														<xs:restriction base="xs:int">
+															<xs:minInclusive value="1"/>
+															<xs:maxInclusive value="4"/>
+														</xs:restriction>
+													</xs:simpleType>
+												</xs:attribute>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="PneumaticSystem">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:group ref="vif:BusAuxPneumaticSystemGen_PEV_SequenceGroup"/>
+								<xs:group ref="vif:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="HVAC">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="AdjustableCoolantThermostat" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P324 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AuxiliaryComponentVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractAuxiliaryDataVIFType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AxlegearComponentVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractAxlegearDataVIFType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AxlegearDataVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractAxlegearDataVIFType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P215</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P216</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationMethod" type="v1.0:AxlegearCertificationOptionType">
+						<xs:annotation>
+							<xs:documentation>P256 - [-]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P264</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P218</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P219</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="LineType"/>
+					<xs:element name="Ratio"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AxleWheelsComponentVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractAxleWheelsComponentVIFType">
+				<xs:sequence>
+					<xs:element name="Data" type="vif:AbstractAxleWheelsDataVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AxleWheelsDataVIFType">
+		<xs:annotation>
+			<xs:documentation>Axles &amp; Wheels Component</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractAxleWheelsDataVIFType">
 				<xs:sequence>
 					<xs:element name="Axles">
 						<xs:complexType>
@@ -367,6 +893,198 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
+	<xs:complexType name="BatterySystemCurrentLimitsEntryType">
+		<xs:attribute name="SoC" type="v2.3:BatterySoCType" use="required">
+			<xs:annotation>
+				<xs:documentation>P529 - [%]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="maxChargingCurrent" type="v2.3:BatteryMaxCurrentType" use="required">
+			<xs:annotation>
+				<xs:documentation>P530 - [A]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="maxDischargingCurrent" type="v2.3:BatteryMaxCurrentType" use="required">
+			<xs:annotation>
+				<xs:documentation>P531 - [A]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemDataType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractBatterySystemDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<!-- <xs:annotation>
+							<xs:documentation>P511 - [-]</xs:documentation>
+							<xs:appinfo>
+								<vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">511</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description>
+							</xs:appinfo>
+						</xs:annotation> -->
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<!-- <xs:annotation>
+							<xs:documentation>P512 - [-]</xs:documentation>
+							<xs:appinfo>
+								<vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">512</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description>
+							</xs:appinfo>
+						</xs:annotation> -->
+					</xs:element>
+					<xs:element name="CertificationMethod" type="v2.3:CertificationMethodType">
+						<xs:annotation>
+							<xs:documentation>P516 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P513 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">513</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P514 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">514</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P515 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">515</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="BatteryType" type="v2.3:BatteryTypeType">
+						<xs:annotation>
+							<xs:documentation>P517 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="RatedCapacity">
+						<xs:annotation>
+							<xs:documentation>P518 - [Ah]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">518</vectoParam:parameterId>
+									<vectoParam:unit>Ah</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="ConnectorsSubsystemsIncluded" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P519 - bool</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">519</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="JunctionboxIncluded" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P520 - bool</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">520</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="TestingTemperature" type="xs:int" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P521 - [°C]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="BatterySystem">521</vectoParam:parameterId>
+									<vectoParam:unit>°C</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="OCV">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="vif:BatterySystemOCVEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="CurrentLimits">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="vif:BatterySystemCurrentLimitsEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemInternalResistanceEntryType">
+		<xs:attribute name="SoC" type="v2.3:BatterySoCType" use="required">
+			<xs:annotation>
+				<xs:documentation>P524 - [%]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="R_2" type="v2.3:InternalResistanceType" use="required">
+			<xs:annotation>
+				<xs:documentation>P525 - [mOhm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="R_10" type="v2.3:InternalResistanceType" use="required">
+			<xs:annotation>
+				<xs:documentation>P526 - [mOhm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="R_20" type="v2.3:InternalResistanceType" use="required">
+			<xs:annotation>
+				<xs:documentation>P527 - [mOhm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="R_120" type="v2.3:InternalResistanceType">
+			<xs:annotation>
+				<xs:documentation>P528 - [mOhm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemOCVEntryType">
+		<xs:attribute name="SoC" type="v2.3:BatterySoCType" use="required">
+			<xs:annotation>
+				<xs:documentation>P522 - [%]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="OCV" type="v2.3:BatteryOCVType" use="required">
+			<xs:annotation>
+				<xs:documentation>P523 - [V]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
 	<xs:complexType name="BusManufacturingStepDataType">
 		<xs:complexContent>
 			<xs:extension base="vif:AbstractManufacturingStepDataType">
@@ -378,21 +1096,513 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="CO2Type">
+	<xs:group name="BusAuxPneumaticSystemConsumerSequenceGroup">
+		<xs:sequence>
+			<xs:element name="SmartRegenerationSystem" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>P312 - bool</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="AirsuspensionControl">
+				<xs:annotation>
+					<xs:documentation>P315 - enum</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="mechanically"/>
+						<xs:enumeration value="electronically"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>P316 - bool</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup">
+		<xs:sequence>
+			<xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType">
+				<xs:annotation>
+					<xs:documentation>P309 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CompressorDrive">
+				<xs:annotation>
+					<xs:documentation>P310 - enum</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="mechanically"/>
+						<xs:enumeration value="electrically"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="Clutch" type="v2.4:PneumaticSystemClutchTypeType">
+				<xs:annotation>
+					<xs:documentation>P311 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CompressorRatio">
+				<xs:annotation>
+					<xs:documentation>P314 - [-]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="v1.0:Double3">
+						<xs:minInclusive value="0.000"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="SmartCompressionSystem" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>P313 - bool</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="BusAuxPneumaticSystemGen_IEPC_SequenceGroup">
+		<xs:sequence>
+			<xs:element name="CompressorDrive">
+				<xs:annotation>
+					<xs:documentation>P310 - enum</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="electrically"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="BusAuxPneumaticSystemGen_PEV_SequenceGroup">
+		<xs:sequence>
+			<xs:element name="CompressorDrive">
+				<xs:annotation>
+					<xs:documentation>P310 - enum</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="electrically"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="BusAuxPneumaticSystemGen_HEV-S_SequenceGroup">
+		<xs:sequence>
+			<xs:element name="SizeOfAirSupply" type="v2.4:PneumaticSystemTechnologyType">
+				<xs:annotation>
+					<xs:documentation>P309 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CompressorDrive">
+				<xs:annotation>
+					<xs:documentation>P310 - enum</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:enumeration value="mechanically"/>
+						<xs:enumeration value="electrically"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="Clutch" type="v2.4:PneumaticSystemClutchTypeType">
+				<xs:annotation>
+					<xs:documentation>P311 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CompressorRatio">
+				<xs:annotation>
+					<xs:documentation>P314 - [-]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="v1.0:Double3">
+						<xs:minInclusive value="0.000"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="CapacitorSystemDataType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractCapacitorSystemDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P532 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">532</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P533 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">533</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationMethod" type="v2.3:CertificationMethodType">
+						<xs:annotation>
+							<xs:documentation>P537 - enum</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">537</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P534 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">534</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P535 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">535</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P536 - [-]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">536</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Capacitance" type="v2.3:CapacitanceType">
+						<xs:annotation>
+							<xs:documentation>P538 - [F]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">538</vectoParam:parameterId>
+									<vectoParam:unit>F</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="InternalResistance" type="v2.3:InternalResistanceType">
+						<xs:annotation>
+							<xs:documentation>P539 - [mOhm]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">539</vectoParam:parameterId>
+									<vectoParam:unit>mOhm</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="MinVoltage" type="v2.3:CapacitorVoltageType">
+						<xs:annotation>
+							<xs:documentation>P540 - [V]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">540</vectoParam:parameterId>
+									<vectoParam:unit>V</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="MaxVoltage" type="v2.3:CapacitorVoltageType">
+						<xs:annotation>
+							<xs:documentation>P541 - [V]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="MaxChargingCurrent" type="v2.3:CapacitorMaxCurrentType">
+						<xs:annotation>
+							<xs:documentation>P542 - [A]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="MaxDischargingCurrent" type="v2.3:CapacitorMaxCurrentType">
+						<xs:annotation>
+							<xs:documentation>P543 - [A]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="TestingTemperature" type="xs:int" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P544 - [°C]</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="CapacitorSystem">544</vectoParam:parameterId>
+									<vectoParam:unit>°C</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="CO2Type">
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="vif:CO2UnitType" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="ConventionalVehicleVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractPrimaryVehicleType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
+					<xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType"/>
+					<xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/>
+					<xs:element name="AngledriveType" type="v1.0:AngledriveTypeType">
+						<xs:annotation>
+							<xs:documentation>P180 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_ConventionalType"/>
+					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
+					<xs:element name="Components" type="vif:AbstractVehicleComponentsConventionalVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ElectricEnergyStorageType">
+		<xs:choice>
+			<xs:element name="Capacitor" type="vif:REESSCapacitorType"/>
+			<xs:element name="Battery" type="vif:REESSBatteryType" maxOccurs="unbounded"/>
+		</xs:choice>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemConditioningEntryType">
+		<xs:attribute name="coolantTempInlet" type="v2.3:CoolantTempInletType" use="required">
+			<xs:annotation>
+				<xs:documentation>P476 - [°C]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="coolingPower" type="v2.3:CoolingPowerType" use="required">
+			<xs:annotation>
+				<xs:documentation>P477 - [W]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemDragTorqueEntryType">
+		<xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required">
+			<xs:annotation>
+				<xs:documentation>P471 - [rpm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="dragTorque" type="v2.3:DragTorqueType" use="required">
+			<xs:annotation>
+				<xs:documentation>P472 - [Nm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineGENType">
+		<xs:sequence>
+			<xs:element name="PowertrainPosition" type="v2.4:PowertrainPositionGENType">
+				<xs:annotation>
+					<xs:documentation>P403 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Count">
+				<xs:annotation>
+					<xs:documentation>P404 - [-]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:int">
+						<xs:minInclusive value="1"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="ElectricMachineSystem" type="vif:ElectricMachineSystemComponentDeclarationType"/>
+			<xs:element name="ADC" type="vif:ADCComponentDeclarationType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemComponentDeclarationType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractElectricMachineSystemDataType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemMaxTorqueCurveType">
+		<xs:sequence>
+			<xs:element name="Entry" type="vif:ElectricMachineSystemMaxTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemDataDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractElectricMachineSystemDataType">
+				<xs:sequence>
+					<xs:group ref="vif:ElectricMachineSystemCommonParametersSequenceGroup"/>
+					<xs:group ref="vif:ElectricMachineSystemPowerRatingsSequenceGroup"/>
+					<xs:element name="DcDcConverterIncluded" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P465 - bool</xs:documentation>
+							<xs:appinfo>
+								<vectoParam:description>
+									<vectoParam:parameterId component="ElectricMachine">465</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description>
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="IHPCType" type="v2.3:IHPCTypeType">
+						<xs:annotation>
+							<xs:documentation>P466 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="VoltageLevel" type="vif:ElectricMachineSystemVoltageLevelType" maxOccurs="unbounded"/>
+					<xs:element name="DragCurve">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="vif:ElectricMachineSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Conditioning" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="vif:ElectricMachineSystemConditioningEntryType" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemVoltageLevelType">
+		<xs:complexContent>
+			<xs:extension base="v2.3:AbstractElectricMachineSystemVoltageLevelType">
+				<xs:sequence>
+					<xs:element name="Voltage" type="v2.3:VoltageLevelVoltageType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P467 - [V]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ContinuousTorque" type="v2.3:MaxTorqueType">
+						<xs:annotation>
+							<xs:documentation>P459 - [Nm]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="TestSpeedContinuousTorque" type="v2.3:TestSpeedType">
+						<xs:annotation>
+							<xs:documentation>P460 - [1/min]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="OverloadTorque" type="v2.3:MaxTorqueType">
+						<xs:annotation>
+							<xs:documentation>P461 - [Nm]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="TestSpeedOverloadTorque" type="v2.3:TestSpeedType">
+						<xs:annotation>
+							<xs:documentation>P462 - [1/min]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="OverloadDuration" type="v2.3:OverloadDurationType">
+						<xs:annotation>
+							<xs:documentation>P463 - [s]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="MaxTorqueCurve" type="vif:ElectricMachineSystemMaxTorqueCurveType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractElectricMachineSystemDataType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineType">
+		<xs:sequence>
+			<xs:element name="PowertrainPosition" type="v2.4:PowertrainPositionDriveType">
+				<xs:annotation>
+					<xs:documentation>P403 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Count">
+				<xs:annotation>
+					<xs:documentation>P404 - [-]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:int">
+						<xs:minInclusive value="1"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="ElectricMachineSystem" type="vif:ElectricMachineSystemComponentDeclarationType"/>
+			<xs:element name="ADC" type="vif:ADCComponentDeclarationType" minOccurs="0"/>
+			<xs:element name="P2.5GearRatios" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>P407 - [-]</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Ratio" maxOccurs="unbounded">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="v1.0:Double3">
+										<xs:attribute name="gear" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="EnergyConsumptionType">
 		<xs:simpleContent>
 			<xs:extension base="xs:double">
-				<xs:attribute name="unit" type="vif:CO2UnitType" use="required"/>
+				<xs:attribute name="unit" type="vif:EnergyConsumptionUnitType" use="required"/>
 			</xs:extension>
 		</xs:simpleContent>
 	</xs:complexType>
-	<xs:complexType name="EngineComponentPIFType">
+	<xs:complexType name="EngineComponentVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractEngineDataVIFType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="WHRTypeType">
 		<xs:sequence>
-			<xs:element name="Data" type="vif:AbstractEngineDataPIFType"/>
+			<xs:element name="MechanicalOutputICE" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>P335 - bool</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="MechanicalOutputDrivetrain" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>P336 - bool</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="ElectricalOutput" type="xs:boolean">
+				<xs:annotation>
+					<xs:documentation>P337 - bool</xs:documentation>
+				</xs:annotation>
+			</xs:element>
 		</xs:sequence>
 	</xs:complexType>
-	<xs:complexType name="EngineDataPIFType">
+	<xs:complexType name="EngineDataVIFType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractEngineDataPIFType">
+			<xs:extension base="vif:AbstractEngineDataVIFType">
 				<xs:sequence>
 					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
 						<xs:annotation>
@@ -439,7 +1649,7 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 							<xs:documentation>P259 - [Nm]</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:element name="WHRType" type="v2.3:WHRTypeType"/>
+					<xs:element name="WHRType" type="vif:WHRTypeType"/>
 					<xs:element name="Mode" maxOccurs="unbounded">
 						<xs:complexType>
 							<xs:sequence>
@@ -465,12 +1675,330 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="FuelConsumptionType">
-		<xs:simpleContent>
-			<xs:extension base="xs:double">
-				<xs:attribute name="unit" type="vif:EnergyConsumptionUnitType" use="required"/>
+	<xs:complexType name="HEV-IEPC-S_VehicleVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractPrimaryVehicleType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
+					<xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType">
+						<xs:annotation>
+							<xs:documentation>P198 - [1/min]</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>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P269 - bool</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ArchitectureID" type="v2.4:ArchitectureID_HEV-IEPC-S_Type">
+						<xs:annotation>
+							<xs:documentation>P400 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/>
+					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
+					<xs:element name="Components" type="vif:AbstractVehicleComponentsIEPC_S_VIFType"/>
+				</xs:sequence>
 			</xs:extension>
-		</xs:simpleContent>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-P_PrimaryAuxiliariesVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:Abstract_AUX_HEV-P_PrimaryBusDeclarationType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_VehicleVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractPrimaryVehicleType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
+					<xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType">
+						<xs:annotation>
+							<xs:documentation>P198 - [1/min]</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>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P269 - bool</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ArchitectureID" type="v2.4:ArchitectureID_HEV-Px_Type">
+						<xs:annotation>
+							<xs:documentation>P400 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/>
+					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
+					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
+					<xs:element name="BoostingLimitations" type="v2.4:AbstractBoostingLimitationsDeclarationType" minOccurs="0"/>
+					<xs:element name="Components" type="vif:AbstractVehicleComponentsHEV_Px_VIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV-S_PrimaryAuxiliariesVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:Abstract_AUX_HEV-S_PrimaryBusDeclarationType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Sx_VehicleVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractPrimaryVehicleType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
+					<xs:element name="IdlingSpeed" type="v1.0:EngineDeclaredSpeedType">
+						<xs:annotation>
+							<xs:documentation>P198 - [1/min]</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>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P269 - bool</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ArchitectureID" type="v2.4:ArchitectureID_HEV-Sx_Type">
+						<xs:annotation>
+							<xs:documentation>P400 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/>
+					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
+					<xs:element name="Components" type="vif:AbstractVehicleComponentsHEV_Sx_VIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPC_PrimaryAuxiliairesVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:Abstract_AUX_IEPC_PrimaryBusDeclarationType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="IEPC_VehicleVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractPrimaryVehicleType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
+					<xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/>
+					<xs:element name="AngledriveType" type="v1.0:AngledriveTypeType">
+						<xs:annotation>
+							<xs:documentation>P180 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P269 - bool</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ArchitectureID" type="v2.4:ArchitectureID_IEPC_Type">
+						<xs:annotation>
+							<xs:documentation>P400 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/>
+					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_IEPCType"/>
+					<xs:element name="Components" type="vif:AbstractVehicleComponentsIEPC_VIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCGearDeclarationType">
+		<xs:sequence>
+			<xs:element name="Ratio" type="v1.0:GearboxGearRatioType">
+				<xs:annotation>
+					<xs:documentation>P497 - [-]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="MaxOutShaftTorque" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>P498 - [Nm]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:int">
+						<xs:minExclusive value="0"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="MaxOutShaftSpeed" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>P499 - [1/min]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:int">
+						<xs:minExclusive value="0"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+		</xs:sequence>
+		<xs:attribute name="number" type="v1.0:GearboxGearNumberType" use="required">
+			<xs:annotation>
+				<xs:documentation>P496 - [-]</xs:documentation>
+				<xs:appinfo>
+				</xs:appinfo>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="IEPCGearsDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractIEPCGearsDeclarationType">
+				<xs:sequence>
+					<xs:element name="Gear" type="vif:IEPCGearDeclarationType" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCDataDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVIFIEPCDataType">
+				<xs:sequence>
+					<xs:group ref="vif:IEPCCommonParametersSequenceGroup"/>
+					<xs:element name="CertificationMethod" type="v2.3:IEPCCertificationMethodType">
+						<xs:annotation>
+							<xs:documentation>P484 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="vif:IEPCPowerRatingsSequenceGroup"/>
+					<xs:element name="DifferentialIncluded" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P493 - bool</xs:documentation>
+							<!-- <xs:appinfo>
+								<vectoParam:description>
+									<vectoParam:parameterId component="IEPC">493</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description>
+							</xs:appinfo> -->
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="DesignTypeWheelMotor" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P494 - bool</xs:documentation>
+							<xs:appinfo>
+								<!-- <vectoParam:description>
+									<vectoParam:parameterId component="IEPC">494</vectoParam:parameterId>
+									<vectoParam:unit>-</vectoParam:unit>
+								</vectoParam:description> -->
+							</xs:appinfo>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="NrOfDesignTypeWheelMotorMeasured" type="v2.3:NrOfDesignTypeWheelMotorMeasuredType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P495 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Gears" type="vif:AbstractIEPCGearsDeclarationType"/>
+					<xs:element name="VoltageLevel" type="vif:IEPCSystemVoltageLevelType" maxOccurs="unbounded"/>
+					<xs:element name="DragCurve" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="vif:IEPCSystemDragTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+							<xs:attribute name="gear" use="required">
+								<xs:simpleType>
+									<xs:restriction base="xs:int">
+										<xs:minInclusive value="1"/>
+									</xs:restriction>
+								</xs:simpleType>
+							</xs:attribute>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Conditioning" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="vif:IEPCSystemConditioningEntryType"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCSystemConditioningEntryType">
+		<xs:attribute name="coolantTempInlet" type="v2.3:CoolantTempInletType" use="required">
+			<xs:annotation>
+				<xs:documentation>P509 - [°C]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="coolingPower" type="v2.3:CoolingPowerType" use="required">
+			<xs:annotation>
+				<xs:documentation>P510 - [W]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="IEPCSystemDragTorqueEntryType">
+		<xs:attribute name="outShaftSpeed" type="v2.3:OutShaftSpeedType" use="required">
+			<xs:annotation>
+				<xs:documentation>P504 - [rpm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="dragTorque" type="v2.3:DragTorqueType" use="required">
+			<xs:annotation>
+				<xs:documentation>P505 - [Nm]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="IEPCSystemVoltageLevelType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractElectricMachineSystemVoltageLevelType">
+				<xs:sequence>
+					<xs:element name="Voltage" type="v2.3:VoltageLevelVoltageType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P500 - [V]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ContinuousTorque" type="v2.3:MaxTorqueType">
+						<xs:annotation>
+							<xs:documentation>P487 - [Nm]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="TestSpeedContinuousTorque" type="v2.3:TestSpeedType">
+						<xs:annotation>
+							<xs:documentation>P488 - [1/min]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="OverloadTorque" type="v2.3:MaxTorqueType">
+						<xs:annotation>
+							<xs:documentation>P489 - [Nm]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="TestSpeedOverloadTorque" type="v2.3:TestSpeedType">
+						<xs:annotation>
+							<xs:documentation>P490 - [1/min]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="OverloadDuration" type="v2.3:OverloadDurationType">
+						<xs:annotation>
+							<xs:documentation>P491 - [s]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="MaxTorqueCurve" type="v2.3:ElectricMachineSystemMaxTorqueCurveType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractVIFIEPCDataType"/>
+		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="ManufacturingStepType">
 		<xs:sequence>
@@ -485,6 +2013,57 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:simpleType>
 		</xs:attribute>
 	</xs:complexType>
+	<xs:complexType name="TorqueConverterCharacteristicsEntryType">
+		<xs:attribute name="speedRatio" type="v1.0:TorqueConverterSpeedRatioType" use="required">
+			<xs:annotation>
+				<xs:documentation>P099 - [-]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="torqueRatio" type="v1.0:TorqueConverterTorqueRatioType" use="required">
+			<xs:annotation>
+				<xs:documentation>P100 - [-]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="inputTorqueRef" type="v1.0:TorqueConverterInputTorqueRefType" use="required">
+			<xs:annotation>
+				<xs:documentation>P101 - [-]</xs:documentation>
+			</xs:annotation>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="PEV_Ex_VehicleVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractPrimaryVehicleType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_PrimaryBusParametersSequenceGroup"/>
+					<xs:group ref="vif:Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup"/>
+					<xs:element name="AngledriveType" type="v1.0:AngledriveTypeType">
+						<xs:annotation>
+							<xs:documentation>P180 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean">
+						<xs:annotation>
+							<xs:documentation>P269 - bool</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ArchitectureID" type="v2.4:ArchitectureID_PEV_Type">
+						<xs:annotation>
+							<xs:documentation>P400 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:group ref="vif:Vehicle_PrimaryBus_xEV_ParametersSequenceGroup"/>
+					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_PEVType"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0"/>
+					<xs:element name="Components" type="vif:AbstractVehicleComponentsPEV_Ex_VIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_PrimaryAuxiliairesVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:Abstract_AUX_PEV_PrimaryBusDeclarationType"/>
+		</xs:sequence>
+	</xs:complexType>
 	<xs:complexType name="PrimaryVehicleDataType">
 		<xs:complexContent>
 			<xs:extension base="out:AbstractPrimaryVehicleDataPIFType">
@@ -499,15 +2078,65 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="PrimaryVehicleType">
+	<xs:complexType name="PrimaryVehicleType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:PrimaryVehicleDataType"/>
+			<xs:element name="Signature" type="v1.0:SignatureType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="REESSBatteryType">
+		<xs:sequence>
+			<xs:element name="StringID">
+				<xs:annotation>
+					<xs:documentation>P411 - [-]</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:int">
+						<xs:minInclusive value="0"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
+			<xs:element name="REESS">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="Data" type="vif:AbstractBatterySystemDataType"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:sequence minOccurs="0">
+				<xs:element name="SOCmin">
+					<xs:annotation>
+						<xs:documentation>P413 - [%]</xs:documentation>
+					</xs:annotation>
+					<xs:simpleType>
+						<xs:restriction base="xs:int">
+							<xs:minInclusive value="0"/>
+							<xs:maxInclusive value="100"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="SOCmax">
+					<xs:annotation>
+						<xs:documentation>P414 - [%]</xs:documentation>
+					</xs:annotation>
+					<xs:simpleType>
+						<xs:restriction base="xs:int">
+							<xs:minInclusive value="0"/>
+							<xs:maxInclusive value="100"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="REESSCapacitorType">
 		<xs:sequence>
-			<xs:element name="Data" type="vif:PrimaryVehicleDataType"/>
-			<xs:element name="Signature" type="v1.0:SignatureType"/>
+			<xs:element name="Data" type="vif:AbstractCapacitorSystemDataType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="ResultPrimaryVehicleType">
 		<xs:sequence>
-			<xs:element name="VehicleGroup">
+			<xs:element name="PrimaryVehicleSubgroup">
 				<xs:simpleType>
 					<xs:restriction base="xs:string">
 						<xs:minLength value="1"/>
@@ -521,25 +2150,15 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:element>
 			<xs:element name="SimulationParameters" type="vif:SimulationParametersType"/>
 			<xs:choice>
-				<xs:sequence>
-					<xs:element name="Fuel" maxOccurs="unbounded">
-						<xs:complexType>
-							<xs:sequence>
-								<xs:element name="EnergyConsumption" type="vif:FuelConsumptionType" maxOccurs="unbounded">
-									<xs:annotation>
-										<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
-									</xs:annotation>
-								</xs:element>
-							</xs:sequence>
-							<xs:attribute name="type" type="xs:string" use="required"/>
-						</xs:complexType>
-					</xs:element>
-					<xs:element name="CO2" type="vif:CO2Type" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
+				<xs:group ref="vif:ResultPrimaryVehicleGroup"/>
+				<xs:element name="OVCMode" maxOccurs="unbounded">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:group ref="vif:ResultPrimaryVehicleGroup"/>
+						</xs:sequence>
+						<xs:attribute name="type" use="required"/>
+					</xs:complexType>
+				</xs:element>
 				<xs:sequence>
 					<xs:element name="Error" type="xs:string"/>
 					<xs:element name="ErrorDetails" type="xs:string"/>
@@ -592,7 +2211,7 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
-			<xs:element name="FuelMode">
+			<xs:element name="FuelMode" minOccurs="0">
 				<xs:simpleType>
 					<xs:restriction base="xs:string">
 						<xs:enumeration value="dual fuel mode"/>
@@ -602,9 +2221,9 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:element>
 		</xs:sequence>
 	</xs:complexType>
-	<xs:complexType name="TorqueConverterDataPIFType">
+	<xs:complexType name="TorqueConverterDataVIFType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractTorqueConverterDataPIFType">
+			<xs:extension base="vif:AbstractTorqueConverterDataVIFType">
 				<xs:sequence>
 					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
 						<xs:annotation>
@@ -639,7 +2258,7 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 					<xs:element name="Characteristics" minOccurs="0">
 						<xs:complexType>
 							<xs:sequence>
-								<xs:element name="Entry" type="v1.0:TorqueConverterCharacteristicsEntryType" minOccurs="2" maxOccurs="unbounded"/>
+								<xs:element name="Entry" type="vif:TorqueConverterCharacteristicsEntryType" minOccurs="2" maxOccurs="unbounded"/>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -647,19 +2266,19 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="TorqueConverterPIFType">
+	<xs:complexType name="TorqueConverterVIFType">
 		<xs:sequence>
-			<xs:element name="Data" type="vif:AbstractTorqueConverterDataPIFType"/>
+			<xs:element name="Data" type="vif:AbstractTorqueConverterDataVIFType"/>
 		</xs:sequence>
 	</xs:complexType>
-	<xs:complexType name="TransmissionComponentPIFType">
+	<xs:complexType name="TransmissionComponentVIFType">
 		<xs:sequence>
-			<xs:element name="Data" type="vif:AbstractTransmissionDataPIFType"/>
+			<xs:element name="Data" type="vif:AbstractTransmissionDataVIFType"/>
 		</xs:sequence>
 	</xs:complexType>
-	<xs:complexType name="TransmissionDataPIFType">
+	<xs:complexType name="TransmissionDataVIFType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractTransmissionDataPIFType">
+			<xs:extension base="vif:AbstractTransmissionDataVIFType">
 				<xs:sequence>
 					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
 						<xs:annotation>
@@ -692,12 +2311,21 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 						</xs:annotation>
 					</xs:element>
 					<xs:element name="TransmissionType"/>
-					<xs:element name="Gears" type="vif:AbstractTransmissionGearsPIFType"/>
+					<xs:element name="Gears" type="vif:AbstractTransmissionGearsVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="TransmissionGearsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractTransmissionGearsVIFType">
+				<xs:sequence>
+					<xs:element name="Gear" type="vif:TransmissionGearVIFType" maxOccurs="unbounded"/>
 				</xs:sequence>
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="TransmissionGearPIFType">
+	<xs:complexType name="TransmissionGearVIFType">
 		<xs:sequence>
 			<xs:element name="Ratio"/>
 			<xs:element name="MaxTorque" type="v1.0:GearboxGearMaxTorqueType" minOccurs="0">
@@ -713,94 +2341,164 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 		</xs:sequence>
 		<xs:attribute name="number" use="required"/>
 	</xs:complexType>
-	<xs:complexType name="TransmissionGearsPIFType">
+	<xs:complexType name="VectoOutputMultistepType">
+		<xs:sequence>
+			<xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/>
+			<xs:element name="ManufacturingStep" type="vif:ManufacturingStepType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_Conventional_ComponentsVIFType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractTransmissionGearsPIFType">
+			<xs:extension base="vif:AbstractVehicleComponentsConventionalVIFType">
 				<xs:sequence>
-					<xs:element name="Gear" type="vif:TransmissionGearPIFType" maxOccurs="unbounded"/>
+					<xs:element name="Engine" type="vif:EngineComponentVIFType"/>
+					<xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/>
+					<xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/>
+					<xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:AuxiliaryComponentVIFType"/>
 				</xs:sequence>
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="VectoOutputMultistepType">
-		<xs:sequence>
-			<xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleType"/>
-			<xs:element name="ManufacturingStep" type="vif:ManufacturingStepType" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
+	<xs:complexType name="Vehicle_HEV-IEPC-S_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsIEPC_S_VIFType">
+				<xs:sequence>
+					<xs:element name="Engine" type="vif:EngineComponentVIFType"/>
+					<xs:element name="ElectricMachineGEN" type="vif:ElectricMachineGENType"/>
+					<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+					<xs:element name="IEPC" type="vif:IEPCType"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType" minOccurs="0"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_HEV-Px_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsHEV_Px_VIFType">
+				<xs:sequence>
+					<xs:element name="Engine" type="vif:EngineComponentVIFType"/>
+					<xs:element name="ElectricMachine" type="vif:ElectricMachineType"/>
+					<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+					<xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/>
+					<xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/>
+					<xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:HEV-P_PrimaryAuxiliariesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_HEV-S2_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsHEV_Sx_VIFType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"/>
+					<xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/>
+					<xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/>
+					<xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_HEV-S3_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsHEV_Sx_VIFType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_HEV-S4_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsHEV_Sx_VIFType">
+				<xs:sequence>
+					<xs:group ref="vif:Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:HEV-S_PrimaryAuxiliariesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_PEV-E2_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsPEV_Ex_VIFType">
+				<xs:sequence>
+					<xs:element name="ElectricMachine" type="vif:ElectricMachineType"/>
+					<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+					<xs:element name="Transmission" type="vif:TransmissionComponentVIFType"/>
+					<xs:element name="TorqueConverter" type="vif:TorqueConverterVIFType" minOccurs="0"/>
+					<xs:element name="Angledrive" type="vif:AngledriveVIFType" minOccurs="0"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:PEV_PrimaryAuxiliairesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_PEV-E3_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsPEV_Ex_VIFType">
+				<xs:sequence>
+					<xs:element name="ElectricMachine" type="vif:ElectricMachineType"/>
+					<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:PEV_PrimaryAuxiliairesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="Vehicle_PEV-E4_ComponentsVIFType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractVehicleComponentsPEV_Ex_VIFType">
+				<xs:sequence>
+					<xs:element name="ElectricMachine" type="vif:ElectricMachineType"/>
+					<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:PEV_PrimaryAuxiliairesVIFType"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="VehicleComponentsPIFType">
+	<xs:complexType name="Vehicle_PEV-IEPC_ComponentsVIFType">
 		<xs:complexContent>
-			<xs:extension base="vif:AbstractVehicleComponentsPIFType">
+			<xs:extension base="vif:AbstractVehicleComponentsIEPC_VIFType">
 				<xs:sequence>
-					<xs:element name="Engine" type="vif:EngineComponentPIFType"/>
-					<xs:element name="Transmission" type="vif:TransmissionComponentPIFType"/>
-					<xs:element name="TorqueConverter" type="vif:TorqueConverterPIFType" minOccurs="0"/>
-					<xs:element name="Angledrive" type="vif:AngledrivePIFType" minOccurs="0"/>
-					<xs:element name="Axlegear" type="vif:AxlegearComponentPIFType"/>
-					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentPIFType"/>
-					<xs:element name="Auxiliaries" type="vif:AuxiliaryComponentPIFType"/>
+					<xs:element name="IEPC" type="vif:IEPCType"/>
+					<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+					<xs:element name="Retarder" type="vif:RetarderVIFType" minOccurs="0"/>
+					<xs:element name="Axlegear" type="vif:AxlegearComponentVIFType" minOccurs="0"/>
+					<xs:element name="AxleWheels" type="vif:AxleWheelsComponentVIFType"/>
+					<xs:element name="Auxiliaries" type="vif:IEPC_PrimaryAuxiliairesVIFType"/>
 				</xs:sequence>
 			</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>
@@ -839,44 +2537,6 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			</xs:extension>
 		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="VehiclePIFType">
-		<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: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:element name="AngledriveType" type="v1.0:AngledriveTypeType">
-						<xs:annotation>
-							<xs:documentation>P180 - enum</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
-					<xs:element name="ADAS" type="v2.1:AbstractAdvancedDriverAssistantSystemsType"/>
-					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
-					<xs:element name="Components" type="vif:AbstractVehicleComponentsPIFType"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
 	<xs:simpleType name="CO2UnitType">
 		<xs:restriction base="xs:string">
 			<xs:enumeration value="g/km"/>
@@ -912,4 +2572,323 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn
 			<xs:enumeration value="Coach"/>
 		</xs:restriction>
 	</xs:simpleType>
+	<xs:group name="ElectricMachineSystemCommonParametersSequenceGroup">
+		<xs:sequence>
+			<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+				<xs:annotation>
+					<xs:documentation>P450 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">450</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Model" type="v1.0:ModelType">
+				<xs:annotation>
+					<xs:documentation>P451 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">451</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CertificationMethod" type="v2.3:CertificationMethodType">
+				<xs:annotation>
+					<xs:documentation>P456 - enum</xs:documentation>
+					<xs:appinfo>
+						<vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">456</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description>
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>P452 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">452</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+				<xs:annotation>
+					<xs:documentation>P453 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">453</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="AppVersion" type="v1.0:AppVersionType">
+				<xs:annotation>
+					<xs:documentation>P454 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">454</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="ElectricMachineType" type="v2.3:ElectricMachineTypeType">
+				<xs:annotation>
+					<xs:documentation>P455 - enum</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="ElectricMachine">455</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="ElectricMachineSystemPowerRatingsSequenceGroup">
+		<xs:sequence>
+			<xs:element name="R85RatedPower" type="v2.3:R85RatedPowerType">
+				<xs:annotation>
+					<xs:documentation>P457 - [W]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="RotationalInertia" type="v2.3:RotationalInertiaType">
+				<xs:annotation>
+					<xs:documentation>P458 - [kgm²]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="IEPCCommonParametersSequenceGroup">
+		<xs:sequence>
+			<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+				<xs:annotation>
+					<xs:documentation>P478 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="IEPC">478</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Model" type="v1.0:ModelType">
+				<xs:annotation>
+					<xs:documentation>P479 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="IEPC">479</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType">
+				<xs:annotation>
+					<xs:documentation>P480 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="IEPC">480</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+				<xs:annotation>
+					<xs:documentation>P481 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="IEPC">481</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="AppVersion" type="v1.0:AppVersionType">
+				<xs:annotation>
+					<xs:documentation>P482 - [-]</xs:documentation>
+					<xs:appinfo>
+						<!-- <vectoParam:description>
+							<vectoParam:parameterId component="IEPC">482</vectoParam:parameterId>
+							<vectoParam:unit>-</vectoParam:unit>
+						</vectoParam:description> -->
+					</xs:appinfo>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="ElectricMachineType" type="v2.3:ElectricMachineTypeType">
+				<xs:annotation>
+					<xs:documentation>P483 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="IEPCPowerRatingsSequenceGroup">
+		<xs:sequence>
+			<xs:element name="R85RatedPower" type="v2.3:R85RatedPowerType">
+				<xs:annotation>
+					<xs:documentation>P485 - [W]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="RotationalInertia" type="v2.3:RotationalInertiaType">
+				<xs:annotation>
+					<xs:documentation>P486 [ kgm2]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Vehicle_HEV-Sx_ComponentsVIFTypeSequenceGroup">
+		<xs:sequence>
+			<xs:element name="Engine" type="vif:EngineComponentVIFType"/>
+			<xs:element name="ElectricMachineGEN" type="vif:ElectricMachineGENType"/>
+			<xs:element name="ElectricEnergyStorage" type="vif:ElectricEnergyStorageType"/>
+			<xs:element name="ElectricMachine" type="vif:ElectricMachineType"/>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Vehicle_PrimaryBus_Retarder_ParametersSequenceGroup">
+		<xs:sequence>
+			<xs:sequence>
+				<xs:element name="RetarderType" type="v2.4:RetarderTypeType">
+					<xs:annotation>
+						<xs:documentation>P052 - enum</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="RetarderRatio" type="v1.0:RetarderRatioType" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>P053 - [-]</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Vehicle_PrimaryBus_xEV_ParametersSequenceGroup">
+		<xs:sequence>
+			<xs:sequence>
+				<xs:element name="OvcHev" type="xs:boolean">
+					<xs:annotation>
+						<xs:documentation>P401 - bool</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="MaxChargingPower" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>P402 - [W]</xs:documentation>
+					</xs:annotation>
+					<xs:simpleType>
+						<xs:restriction base="xs:int">
+							<xs:minExclusive value="0"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Vehicle_PrimaryBusChassisBusParameters">
+		<xs:sequence>
+			<xs:sequence>
+				<xs:element name="LegislativeCategory" type="v2.4:LegislativeCategoryPrimaryBusDeclarationType">
+					<xs:annotation>
+						<xs:documentation>P251 - enum</xs:documentation>
+					</xs:annotation>
+				</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:annotation>
+						<xs:documentation>P281 - bool</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="TechnicalPermissibleMaximumLadenMass" type="v1.0:VehicleGrossVehicleMassType">
+					<xs:annotation>
+						<xs:documentation>P041 - [kg]</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+			</xs:sequence>
+		</xs:sequence>
+	</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>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Model" type="v1.0:ModelType">
+				<xs:annotation>
+					<xs:documentation>P236 - [-]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="VIN" type="v1.0:VINType">
+				<xs:annotation>
+					<xs:documentation>P238 - [-]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+				<xs:annotation>
+					<xs:documentation>P239 - [-]</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="Vehicle_PrimaryBusParametersSequenceGroup">
+		<xs:sequence>
+			<xs:group ref="vif:Vehicle_PrimaryBusGeneralParametersSequence"/>
+			<xs:group ref="vif:Vehicle_PrimaryBusChassisBusParameters"/>
+		</xs:sequence>
+	</xs:group>
+	<!--Components-->
+	<!--VehicleVIFType-->
+	<xs:group name="ResultPrimaryVehicleGroup">
+		<xs:sequence>
+			<xs:element name="Fuel" minOccurs="0" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="EnergyConsumption" type="vif:EnergyConsumptionType" maxOccurs="unbounded">
+							<xs:annotation>
+								<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+					</xs:sequence>
+					<xs:attribute name="type" type="xs:string" use="required"/>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="ElectricEnergyConsumption" minOccurs="0">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="EnergyConsumption" type="vif:EnergyConsumptionType" maxOccurs="unbounded">
+							<xs:annotation>
+								<xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation>
+							</xs:annotation>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="RetarderVIFType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractRetarderVIFDataType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="AbstractRetarderVIFDataType"/>
 </xs:schema>
diff --git a/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs b/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs
new file mode 100644
index 0000000000000000000000000000000000000000..99621d556772365707cd8d5ea8616d85c36763f4
--- /dev/null
+++ b/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs
@@ -0,0 +1,80 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Ninject.Extensions.Factory;
+using Ninject.Extensions.Factory.Factory;
+using Ninject.Parameters;
+using TUGraz.VectoCommon.Exceptions;
+
+namespace TUGraz.VectoCore.Utils.Ninject
+{
+    internal class CombineArgumentsToNameInstanceProvider : StandardInstanceProvider
+	{
+
+		public delegate string CombineToName(params object[] arguments);
+
+		private CombineToName _combinationDelegate = null;
+		private readonly int _skipArgumentsNr;
+		private readonly int _numberOfArguments;
+
+		private HashSet<MethodInfo> _methodInfos = new HashSet<MethodInfo>();
+		/// <summary>
+		/// Constructor for CombineArgumentsToNameInstanceProvider
+		/// </summary>
+		/// <param name="combinationDelegate">this delegate is to combine numberOfArguments arguments to a name</param>
+		/// <param name="numberOfArguments">the number of arguments that are used to create the name</param>
+		/// <param name="methods">the name is only resolved with the combinationDelegate if one of these methods was called, otherwise the standard instance provider is used</param>
+		/// <param name="skipArgumentsNr">defines the number of arguments that are skipped and not passed to the constructor</param>
+		public CombineArgumentsToNameInstanceProvider(CombineToName combinationDelegate, int numberOfArguments, int skipArgumentsNr, params MethodInfo[] methods)
+		{
+			_numberOfArguments = numberOfArguments;
+			_skipArgumentsNr = skipArgumentsNr;
+			_combinationDelegate = combinationDelegate;
+
+			if (methods != null) {
+				foreach (var method in methods) {
+					_methodInfos.Add(method);
+				}
+			}
+		}
+
+		#region Overrides of StandardInstanceProvider
+
+		public override object GetInstance(IInstanceResolver instanceResolver, MethodInfo methodInfo, object[] arguments)
+		{
+			try
+			{
+				return base.GetInstance(instanceResolver, methodInfo, arguments);
+			}
+			catch (Exception e)
+			{
+				throw new VectoException("failed to create instance for '{1}' via '{0}' version '{2}'", e, methodInfo.Name, methodInfo.ReturnType.Name, arguments[0]);
+				//throw e;
+			}
+		}
+
+		protected override string GetName(MethodInfo methodInfo, object[] arguments)
+		{
+			if (!_methodInfos.Contains(methodInfo)) {
+				return base.GetName(methodInfo, arguments);
+			}
+
+			return _combinationDelegate.Invoke(arguments.Take(_numberOfArguments).ToArray());
+
+		}
+
+		protected override IConstructorArgument[] GetConstructorArguments(MethodInfo methodInfo, object[] arguments)
+		{
+			if (!_methodInfos.Contains(methodInfo)) {
+				return base.GetConstructorArguments(methodInfo, arguments);
+			}
+			return base.GetConstructorArguments(methodInfo, arguments).Skip(_skipArgumentsNr).ToArray();
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/Utils/XMLHelper.cs b/VectoCore/VectoCore/Utils/XMLHelper.cs
index 573e7a847b7dc44f9b8c1a930723abe3630f87eb..c774e82a75e96ed03a93d36f9d74ca81f17a560d 100644
--- a/VectoCore/VectoCore/Utils/XMLHelper.cs
+++ b/VectoCore/VectoCore/Utils/XMLHelper.cs
@@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.Utils
 				.Replace(versionPrefix, string.Empty);
 		}
 
-		public static object[] ValueAsUnit(Kilogram mass, string unit, uint? decimals = 0)
+		public static object[] ValueAsUnit(this Kilogram mass, string unit, uint? decimals = 0)
 		{
 			switch (unit) {
 				case "t": return GetValueAsUnit(mass.ConvertToTon(), unit, decimals);
@@ -87,7 +87,7 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(Watt power, string unit, uint? decimals = 0)
+		public static object[] ValueAsUnit(this Watt power, string unit, uint? decimals = 0)
 		{
 			switch (unit) {
 				case "kW": return GetValueAsUnit(power?.ConvertToKiloWatt(), unit, decimals);
@@ -97,7 +97,32 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(CubicMeter volume, string unit, uint? decimals = 0)
+		public static object[] ValueAsUnit(this WattSecond energy, string unit, uint? decimals = 0)
+		{
+			switch (unit) {
+				case "kWh":
+					return GetValueAsUnit(energy?.ConvertToKiloWattHour(), unit, decimals);
+				case "Wh":
+					return GetValueAsUnit(energy?.ConvertToWattHour(), unit, decimals);
+			}
+
+			throw new NotImplementedException($"unknown unit '{unit}'");
+		}
+
+		public static object[] ValueAsUnit(this AmpereSecond capacity, string unit, uint? decimals = 0)
+		{
+			switch (unit)
+			{
+				case "As": return GetValueAsUnit(capacity.Value(), unit, decimals);
+				case "Ah": return GetValueAsUnit(capacity?.AsAmpHour, unit, decimals);
+			}
+
+			throw new NotImplementedException($"unknown unit '{unit}'");
+		}
+
+
+
+		public static object[] ValueAsUnit(this CubicMeter volume, string unit, uint? decimals = 0)
 		{
 			switch (unit) {
 				case "ltr": return GetValueAsUnit(volume.ConvertToCubicDeziMeter(), unit, decimals);
@@ -108,7 +133,7 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(PerSecond angSpeed, string unit, uint? decimals = 0)
+		public static object[] ValueAsUnit(this PerSecond angSpeed, string unit, uint? decimals = 0)
 		{
 			switch (unit) {
 				case "rpm": return GetValueAsUnit(angSpeed.ConvertToRoundsPerMinute(), unit, decimals);
@@ -118,7 +143,7 @@ namespace TUGraz.VectoCore.Utils
 		}
 
 
-		public static object[] ValueAsUnit(MeterPerSecond speed, string unit, uint? decimals)
+		public static object[] ValueAsUnit(this MeterPerSecond speed, string unit, uint? decimals)
 		{
 			switch (unit) {
 				case "km/h": return GetValueAsUnit(speed.ConvertToKiloMeterPerHour(), unit, decimals);
@@ -127,7 +152,7 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(MeterPerSquareSecond acc, string unit, uint? decimals)
+		public static object[] ValueAsUnit(this MeterPerSquareSecond acc, string unit, uint? decimals)
 		{
 			switch (unit) {
 				case "m/s²": return GetValueAsUnit(acc.Value(), unit, decimals);
@@ -136,7 +161,7 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(Meter m, string unit, uint? decimals)
+		public static object[] ValueAsUnit(this Meter m, string unit, uint? decimals)
 		{
 			switch (unit) {
 				case "m": return GetValueAsUnit(m.Value(), unit, decimals);
@@ -146,7 +171,7 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(double value, string unit, uint? decimals)
+		public static object[] ValueAsUnit(this double value, string unit, uint? decimals)
 		{
 			switch (unit) {
 				case "%": return GetValueAsUnit(value * 100, unit, decimals);
@@ -154,7 +179,7 @@ namespace TUGraz.VectoCore.Utils
 			}
 		}
 
-		private static object[] GetValueAsUnit(double? value, string unit, uint? decimals)
+		private static object[] GetValueAsUnit(this double? value, string unit, uint? decimals)
 		{
 			if (value == null) {
 				return new object[0];
@@ -329,5 +354,30 @@ namespace TUGraz.VectoCore.Utils
 				xElement.AddIfContentNotNull(element);
 			}
 		}
+
+		public static XElement WithXName(this XElement xElement, XName xName)
+		{
+			xElement.Name = xName;
+			return xElement;
+		}
+
+		public static XElement GetApplicationInfo(XNamespace ns)
+		{
+			var versionNumber = VectoSimulationCore.VersionNumber;
+#if CERTIFICATION_RELEASE
+			// add nothing to version number
+#else
+			versionNumber += " !!NOT FOR CERTIFICATION!!";
+#endif
+			return new XElement(ns + XMLNames.Report_ApplicationInfo_ApplicationInformation,
+				new XElement(ns + XMLNames.Report_ApplicationInfo_SimulationToolVersion, versionNumber),
+				new XElement(ns + XMLNames.Report_ApplicationInfo_Date,
+					XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc)));
+		}
+
+		public static string GetGUID()
+		{
+			return Guid.NewGuid().ToString("n").Substring(0, 20);
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index b12fffd2d0d04bfce81c117c2bb58f13e9c90136..03aa0b455d9a33f2519fa07baf44f77e3370af97 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -4,19 +4,69 @@
     <AssemblyName>VectoCore</AssemblyName>
     <TargetFrameworks>net45;net48;net6.0</TargetFrameworks>
     <DefineConstants />
+    <Configurations>Debug;Release;MockupDebug;MockupRelease</Configurations>
+	<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
   </PropertyGroup>
-  <ItemGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+	<PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')">
+		<DefineConstants>$(DefineConstants);MOCKUP</DefineConstants>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net45|AnyCPU'">
+	  <DebugType>none</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net48|AnyCPU'">
+	  <DebugType>none</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'">
+	  <DebugType>none</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupRelease|net45|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupRelease|net48|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupRelease|net6.0|AnyCPU'">
+	  <DebugType>full</DebugType>
+	</PropertyGroup>
+
+	<Choose>
+		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(&#xD;&#xA;         $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))">
+			<ItemGroup>
+				<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleToAttribute">
+					<_Parameter1>VectoMockup</_Parameter1>
+				</AssemblyAttribute>
+			</ItemGroup>
+			<!--<PropertyGroup>
+				<DefineConstants>MOCKUP</DefineConstants>
+			</PropertyGroup>-->
+		</When>
+	</Choose>
+
+	<ItemGroup>
     <None Remove="Resources\Declaration\Buses\DefaultActuationsMap.apac" />
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_1-Cylinder_1-Stage_393ccm.acmp" />
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_1-Stage_650ccm.acmp" />
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_2-Stage_398ccm.acmp" />
     <None Remove="Resources\Declaration\VAUXBus\DEFAULT_3-Cylinder_2-Stage_598ccm.acmp" />
+    <None Remove="Resources\MockupCIFResults.xml" />
+    <None Remove="Resources\MockupMRFResults.xml" />
     <None Remove="Resources\XSD\VectoDeclarationDefinitions.2.2.1.xsd" />
     <None Remove="Resources\XSD\VectoOutputPrimaryBus.xsd" />
   </ItemGroup>
 
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
+    <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" />
     <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" />
     <PackageReference Include="NLog" Version="4.7.13" />
     <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
index 3030e51b634808bc89fdf9acfa013ee96fcab7a9..89d4ec1ba88ee917619b4da93016e88f5f48ba8b 100644
--- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
@@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			//var jobContainer = new JobContainer(sumContainer);
 
 
-			var runs = factory.DataReader.NextRun().ToList();
+			var runs = factory.RunDataFactory.NextRun().ToList();
 			Assert.IsTrue(runs.Count == 8 || runs.Count == 12);
 
 			var relatedRuns = SetRelatedVehicleParts(runs);
@@ -1039,7 +1039,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			//	Validate = false
 			//};
 
-			var runs = factory.DataReader.NextRun().ToList();
+			var runs = factory.RunDataFactory.NextRun().ToList();
 			return runs;
 		}
 
@@ -1195,14 +1195,14 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			//var inputData = new MockCompletedBusInputData(XmlReader.Create(PifFile_33_34), modified);
 			//var inputData = new MockCompletedBusInputData(modified);
 
-			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer, validate: false);
+			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistepBusInputDataProvider, null), writer, validate: false);
 			factory.WriteModalResults = true;
 			//var factory = new SimulatorFactory(ExecutionMode.Declaration, new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null), writer) {
 			//	WriteModalResults = true,
 			//	Validate = false
 			//};
 
-			var runs = factory.DataReader.NextRun().ToList();
+			var runs = factory.RunDataFactory.NextRun().ToList();
 			var run = runs[runIdx];
 			
 			Assert.NotNull(run.VehicleData.PassengerCount);
@@ -1239,7 +1239,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			//	//ActualModalData = true,
 			//	Validate = false
 			//};
-			var runs = factory.DataReader.NextRun().ToList();
+			var runs = factory.RunDataFactory.NextRun().ToList();
 			var run = runs[runIdx];
 
 			Assert.NotNull(run.VehicleData.PassengerCount);
diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs
index 44c69ecd1e1226ebca538b29c2824194e6f45ab3..23ae50dff9a49887968ceecd4551e61bd024ebf4 100644
--- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs
+++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusSanityCheckTests.cs
@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			factory.Validate = false;
 
 			AssertHelper.Exception<VectoException>(() => {
-				var runs = factory.DataReader.NextRun().ToList();}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group ");
+				var runs = factory.RunDataFactory.NextRun().ToList();}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group ");
         }
 
         [
@@ -119,11 +119,11 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			factory.Validate = false;
 
 			//AssertHelper.Exception<VectoException>(() => {
-                var runs = factory.DataReader.NextRun().ToList();
+                var runs = factory.RunDataFactory.NextRun().ToList();
             //}, messageContains: "Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group ");
         }
 
-        private IMultistageBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts)
+        private IMultistepBusInputDataProvider GetModifiedXML(string vifPrimary, string completedJob, BusHVACSystemConfiguration? hvacConfig, bool separateDucts)
 		{
 			var vifDataProvider = _xmlInputReader.Create(XmlReader.Create(vifPrimary));
 			//var completeDataProvider = _xmlInputReader.CreateDeclaration(comple);
@@ -132,7 +132,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			completedXML.Load(completedJob);
 
 			var hvacCfgNode = completedXML.SelectSingleNode("//*[local-name()='SystemConfiguration']");
-			hvacCfgNode.InnerText = hvacConfig.GetXmlFormat();
+			hvacCfgNode.InnerText = hvacConfig.ToXmlFormat();
 
 			var airDuctsNode = completedXML.SelectSingleNode("//*[local-name()='SeparateAirDistributionDucts']");
 			airDuctsNode.InnerText = XmlConvert.ToString(separateDucts);
@@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 
 			var completeDataProvider = _xmlInputReader.CreateDeclaration(modified);
 
-			var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
+			var inputData = new XMLDeclarationVIFInputData(vifDataProvider as IMultistepBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
 
 			var filename = Guid.NewGuid().ToString().Substring(0, 20);
 			var writer = new FileOutputVIFWriter(filename, 0);
@@ -157,13 +157,13 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var completedVif = _xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(completedVifXML.OuterXml)));
 			File.Delete(writer.XMLMultistageReportFileName);
 
-			return completedVif as IMultistageBusInputDataProvider;
+			return completedVif as IMultistepBusInputDataProvider;
 		}
 	}
 
-	public class MockCompletedBusInputData : IInputDataProvider, IMultistageBusInputDataProvider
+	public class MockCompletedBusInputData : IInputDataProvider, IMultistepBusInputDataProvider
 	{
-		private IMultistageBusInputDataProvider input;
+		private IMultistepBusInputDataProvider input;
 	
 		public MockCompletedBusInputData(XmlReader vif)
 		{
@@ -171,7 +171,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var _xmlInputReader = kernel.Get<IXMLInputDataReader>();
 
 
-			input = _xmlInputReader.CreateDeclaration(vif) as IMultistageBusInputDataProvider;
+			input = _xmlInputReader.CreateDeclaration(vif) as IMultistepBusInputDataProvider;
 			
 			//JobName = Vehicle.VIN;
 		}
diff --git a/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e37d8eca9c25ba37303324666e5b3e79cc14640d
--- /dev/null
+++ b/VectoCore/VectoCoreTest/Integration/MockUpVectoTest.cs
@@ -0,0 +1,192 @@
+//using System;
+//using System.Collections.Generic;
+//using System.IO;
+//using System.Linq;
+//using System.Runtime.CompilerServices;
+//using System.Text;
+//using System.Threading.Tasks;
+//using System.Xml.Linq;
+//using Microsoft.VisualStudio.TestPlatform.Utilities;
+//using Ninject;
+//using NUnit.Framework;
+//using TUGraz.VectoCommon.Models;
+//using TUGraz.VectoCommon.OutputData;
+//using TUGraz.VectoCore.InputData.FileIO.XML;
+//using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
+//using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader;
+//using TUGraz.VectoCore.InputData.Reader;
+//using TUGraz.VectoCore.Models.Simulation;
+//using TUGraz.VectoCore.Models.Simulation.Impl;
+//using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
+//using TUGraz.VectoCore.OutputData;
+//using TUGraz.VectoCore.OutputData.FileIO;
+//using TUGraz.VectoCore.Tests.XML.Reports;
+
+//namespace TUGraz.VectoCore.Tests.Integration
+//{
+
+
+
+//	[TestFixture]
+//    public class MockUpVectoTest
+//	{
+
+
+
+
+//		private IKernel _vectoKernel;
+//		private ISimulatorFactoryFactory _simFactoryFactory;
+//		private ISimulatorFactory _simulatorFactory;
+//		private IXMLInputDataReader _inputDataReader;
+
+//		#region 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 Conventional_PrimaryBus =
+//			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\Conventional_primaryBus_AMT.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_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml";
+
+//		#endregion
+
+
+//		[OneTimeSetUp]
+//		public void OneTimeSetup()
+//		{
+//			_vectoKernel = new StandardKernel(
+//				new VectoNinjectModule()
+//				);
+//			_vectoKernel.Unload(typeof(VectoRunDataFactoryNinjectModule).FullName);
+
+//			_simFactoryFactory = _vectoKernel.Get<ISimulatorFactoryFactory>();
+//			Assert.NotNull(_simFactoryFactory);
+//			_inputDataReader = _vectoKernel.Get<IXMLInputDataReader>();
+//			Assert.NotNull(_inputDataReader);
+//		}
+
+//		[SetUp]
+//		public void Setup()
+//		{
+//			SimulatorFactory.MockUpRun = true;
+
+//		}
+
+//		public FileOutputWriter GetOutputFileWriter(string subDirectory, string originalFilePath)
+//		{
+//			subDirectory = Path.Combine("MockupReports",subDirectory);
+//			Directory.CreateDirectory(Path.GetFullPath(subDirectory));
+//			var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), Path.GetFileName(originalFilePath));
+//			return new FileOutputWriter(path);
+//		}
+
+
+	
+		
+
+//		[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_S4_HeavyLorry, TestName = "HEV_S4_HeavyLorry")]
+//		[TestCase(HEV_Px_HeavyLorry, TestName = "HEV_Px_HeavyLorry")]
+//		[TestCase(PEV_E2_HeavyLorry, TestName = "PEV_E2_HeavyLorry")]
+//		//[TestCase(PEV_E2_HeavyLorry, false, TestName = "PEV_E2_HeavyLorryNoMockup")]
+//		[TestCase(PEV_E3_HeavyLorry, TestName = "PEV_E3_HeavyLorry")]
+//		[TestCase(PEV_E4_HeavyLorry, TestName = "PEV_E4_HeavyLorry")]
+//		[TestCase(PEV_IEPC_HeavyLorry, TestName = "PEV_IEPC_HeavyLorry")]
+//		[TestCase(HEV_IEPC_S_HeavyLorry, TestName = "HEV_IEPC_S_HeavyLorry")]
+//		[NonParallelizable]
+//		public void HeavyLorryMockupTest(string fileName, bool mockup = true)
+//		{
+//			SimulatorFactory.MockUpRun = mockup;
+//			var inputProvider = _inputDataReader.Create(fileName);
+//			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+//			var sumWriter = new SummaryDataContainer(fileWriter);
+//			var jobContainer = new JobContainer(sumWriter);
+
+//			_simulatorFactory =
+//				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+
+//			jobContainer.AddRuns(_simulatorFactory);
+//			jobContainer.Execute(false);
+//			jobContainer.WaitFinished();
+			
+//			CheckFileExists(fileWriter);
+//			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName)), "MRF invalid");
+//			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName)), "CIF invalid");
+//		}
+
+//		[TestCase(Conventional_PrimaryBus, TestName = "ConventionalPrimaryBus")]
+//		public void PrimaryBusMockupTest(string fileName, bool mockup = true)
+//		{
+//			SimulatorFactory.MockUpRun = mockup;
+//			var inputProvider = _inputDataReader.Create(fileName);
+//			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+//			var sumWriter = new SummaryDataContainer(fileWriter);
+//			var jobContainer = new JobContainer(sumWriter);
+
+//			_simulatorFactory =
+//				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+
+//			jobContainer.AddRuns(_simulatorFactory);
+//			jobContainer.Execute(false);
+//			jobContainer.WaitFinished();
+//			CheckFileExists(fileWriter);
+//		}
+
+
+//		private static void CheckFileExists(FileOutputWriter fileWriter)
+//		{
+//			if (!File.Exists(fileWriter.XMLCustomerReportName)) {
+//				TestContext.WriteLine(fileWriter.XMLCustomerReportName);
+//				Assert.Fail();
+//			}
+//			if (!File.Exists(fileWriter.XMLFullReportName))
+//			{
+//				TestContext.WriteLine(fileWriter.XMLFullReportName);
+//				Assert.Fail();
+//			}
+//		}
+//	}
+//}
diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs
index 62a554a0c80717e9e8ac822162bf48bf5d754260..82bd16737465fe493eab7b7fe77a50e78dcbb28e 100644
--- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs
@@ -5,11 +5,13 @@ using System.IO;
 using System.ServiceModel.Syndication;
 using System.Threading;
 using System.Threading.Tasks;
+using Ninject;
 using NUnit.Framework;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
 using TUGraz.VectoCore.OutputData;
@@ -18,6 +20,7 @@ using TUGraz.VectoCore.OutputData.FileIO;
 namespace TUGraz.VectoCore.Tests.Integration.Multistage
 {
 	[TestFixture]
+	[NonParallelizable]
 	public class MultistageMultipleRunsTest
 	{
 		private const string TestDataDir = "TestData\\Integration\\Multistage\\";
@@ -39,18 +42,21 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		private SummaryDataContainer _sumContainer;
 		private JobContainer _jobContainer;
 
-		private FileOutputWriter _fileoutputWriter;
-		private TempFileOutputWriter _tempFileOutputWriter;
 		private ExecutionMode _mode = ExecutionMode.Declaration;
 
 		private string _outputDirectory;
 
 		private Stopwatch _stopWatch;
 
+		private IKernel _kernel;
+		private ISimulatorFactoryFactory _simFactoryFactory;
+
+
 		[OneTimeSetUp]
 		public void OneTimeSetUp()
 		{
 			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
+
 		}
 
 		[SetUp]
@@ -62,6 +68,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			_sumFileWriter = new FileOutputWriter(_outputDirectory);
 			_sumContainer = new SummaryDataContainer(_sumFileWriter);
 			_jobContainer = new JobContainer(_sumContainer);
+			_kernel = new StandardKernel(new VectoNinjectModule());
+			_simFactoryFactory = _kernel.Get<ISimulatorFactoryFactory>();
 		}
 
 		[TearDown]
@@ -74,45 +82,49 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		[Test]//, Timeout(3000)]
 		public void ExemptedPrimaryAndCompletedTest()
 		{
+			var fileOutputWriter = new FileOutputWriter(_outputDirectory);
+			var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter);
+            StartSimulation(CompletedExempted, tempFileOutputWriter, fileOutputWriter);
 
-			StartSimulation(CompletedExempted);
-
-			var writtenFiles = GetWrittenFiles();
+            var writtenFiles = GetWrittenFiles();
 			ShowWrittenFiles(writtenFiles);
 
-			Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName));
+			Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName));
 		}
 
 		[Test]
 		public void ExemptedPrimaryAndCompletedWithoutTPMLMTest()
 		{
-
-			StartSimulation(CompletedExemptedWithoutTPMLM);
+			var fileOutputWriter = new FileOutputWriter(_outputDirectory);
+			var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter);
+			StartSimulation(CompletedExemptedWithoutTPMLM, tempFileOutputWriter, fileOutputWriter);
 
 			var writtenFiles = GetWrittenFiles();
 			ShowWrittenFiles(writtenFiles);
 
-			Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName));
+			Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName));
 		}
 
 		[Test]//, Timeout(3000)]
 		public void ExemptedPrimaryAndInterimTest()
 		{
-			StartSimulation(InterimExempted);
+			var fileOutputWriter = new FileOutputWriter(_outputDirectory);
+			var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter);
+            StartSimulation(InterimExempted, tempFileOutputWriter, fileOutputWriter); 
 			
 			var writtenFiles = GetWrittenFiles();
 			ShowWrittenFiles(writtenFiles);
 
-			Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName));
-			Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName));
-			Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName));
+			Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName));
+			Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLFullReportName));
+			Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName));
 
 		}
 
@@ -129,17 +141,20 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 
 		//SpecialCase II
 		[Test, Timeout(1000 * 20 * 60)]
+        [NonParallelizable]
 		public void PrimaryAndCompletedTest()
 		{
-			StartSimulation(CompletedDiesel);
+			var fileOutputWriter = new FileOutputWriter(_outputDirectory);
+			var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter);
+			StartSimulation(CompletedDiesel, tempFileOutputWriter, fileOutputWriter);
 
 			var writtenFiles = GetWrittenFiles();
 			ShowWrittenFiles(writtenFiles);
 
-			Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName));
+			Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName));
 
 
 		}
@@ -147,51 +162,56 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		[Test]
 		public void PrimaryAndCompletedWithoutADASAndTPMLM()
 		{
-			StartSimulation(CompletedWithoutADAS);
+			var fileOutputWriter = new FileOutputWriter(_outputDirectory);
+			var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter);
+            StartSimulation(CompletedWithoutADAS, tempFileOutputWriter, fileOutputWriter);
 
-			var writtenFiles = GetWrittenFiles();
+            var writtenFiles = GetWrittenFiles();
 			ShowWrittenFiles(writtenFiles);
 
-			Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName));
+			Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLFullReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName));
 
 		}
 
 		//SpecialCase I
-		[Test, Timeout(1000 * 10 * 60)]
+		[Test]//, Timeout(1000 * 10 * 60)]
 		public void PrimaryAndInterimTest()
 		{
-			StartSimulation(InterimDiesel);
+
+			var fileOutputWriter = new FileOutputWriter(_outputDirectory);
+			var tempFileOutputWriter = new TempFileOutputWriter(fileOutputWriter);
+            StartSimulation(InterimDiesel, tempFileOutputWriter, fileOutputWriter);
 
 
 			var writtenFiles = GetWrittenFiles();
 			ShowWrittenFiles(writtenFiles);
-
-			Assert.IsTrue(writtenFiles.Contains(_tempFileOutputWriter.XMLFullReportName));
-			Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLFullReportName));
-			Assert.IsFalse(writtenFiles.Contains(_fileoutputWriter.XMLCustomerReportName));
-			Assert.IsTrue(writtenFiles.Contains(_fileoutputWriter.XMLMultistageReportFileName));
+			Assert.IsTrue(writtenFiles.Contains(tempFileOutputWriter.XMLFullReportName));
+			Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLFullReportName));
+			Assert.IsFalse(writtenFiles.Contains(fileOutputWriter.XMLCustomerReportName));
+			Assert.IsTrue(writtenFiles.Contains(fileOutputWriter.XMLMultistageReportFileName));
 		}
 
-		private void StartSimulation(string path)
+		private void StartSimulation(string path, TempFileOutputWriter tempFileOutputWriter, FileOutputWriter fileOutputWriter, bool multithreaded = true)
 		{
 			var inputFile = Path.GetFullPath(path);
 			var input = JSONInputDataFactory.ReadJsonJob(inputFile);
 
 
-			StartSimulation(input);
+			StartSimulation(input, tempFileOutputWriter, fileOutputWriter, multithreaded:multithreaded);
 
 			_jobContainer.WaitFinished();
 		}
 
 
-		private void StartSimulation(IInputDataProvider input)
+		private void StartSimulation(IInputDataProvider input,  TempFileOutputWriter tempFileOutputWriter, FileOutputWriter fileOutputWriter, bool multithreaded = true)
 		{
-			_fileoutputWriter = new FileOutputWriter(_outputDirectory);
-			_tempFileOutputWriter = new TempFileOutputWriter(_fileoutputWriter);
-			var runsFactory = SimulatorFactory.CreateSimulatorFactory(_mode, input, _fileoutputWriter);
+			
+			//var runsFactory = SimulatorFactory.CreateSimulatorFactory(_mode, input, _fileoutputWriter);
+			var runsFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileOutputWriter, null, null, true);
 			runsFactory.WriteModalResults = true;
 			runsFactory.ModalResults1Hz = true;
 			runsFactory.Validate = true;
@@ -202,7 +222,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 
 
 			_jobContainer.AddRuns(runsFactory);
-			_jobContainer.Execute();
+			_jobContainer.Execute(multithreaded);
 		}
 
 		private void ShowWrittenFiles(IList<string> writtenFiles)
diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
index 205d21d0d2055490f61d03b937268fe307c37588..8c410938eba4b08829322af4171ea3afcc2ce4f5 100644
--- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
@@ -16,6 +16,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
 using TUGraz.VectoCore.InputData.Impl;
 using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
 using TUGraz.VectoCore.OutputData;
@@ -57,11 +58,12 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		const string PrimaryBusAdasV23 = PrimaryInputDirPath + "vecto_vehicle-primary_heavyBusSmartES_invalid_testdata.xml";
 
 
-		protected IXMLInputDataReader xmlInputReader;
-		protected IXMLInputDataReader xmlVIFInputReader;
+		protected IXMLInputDataReader _xmlInputReader;
+		protected IXMLInputDataReader _xmlVIFInputReader;
 
 		private IKernel _kernel;
 		private string _generatedVIFFilepath;
+		private ISimulatorFactoryFactory _simFactoryFactory;
 
 		[OneTimeSetUp]
 		public void RunBeforeAnyTests()
@@ -69,28 +71,29 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
 
 			_kernel = new StandardKernel(new VectoNinjectModule());
-			xmlInputReader = _kernel.Get<IXMLInputDataReader>();
-			xmlVIFInputReader = _kernel.Get<IXMLInputDataReader>();
+			_xmlInputReader = _kernel.Get<IXMLInputDataReader>();
+			_xmlVIFInputReader = _kernel.Get<IXMLInputDataReader>();
+			_simFactoryFactory = _kernel.Get<ISimulatorFactoryFactory>();
 		}
 
 		[TestCase(VIFInputFile, InputFilePath, 1)]
-		public void TestSimulationMultistageVehicle(string vifFilename, string inputFilename, int numRuns)
+		public void TestSimulationMultistageVehicle(string vifFilename, string stepInput, int numRuns)
 		{
 			//Input files
-			var inputReader = XmlReader.Create(inputFilename);
-			var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader);
-			var vehicle = inputDataProvider.JobInputData.Vehicle;
+			var _stepInputData = _xmlInputReader.CreateDeclaration(stepInput);
+			var vehicle = _stepInputData.JobInputData.Vehicle;
 
 			var vifReader = XmlReader.Create(vifFilename);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0;
 			var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages);
 			_generatedVIFFilepath = writer.XMLMultistageReportFileName;
 			
 			var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle);
-			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer);
-			
+			//var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer);
+			var factory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, writer, null, null, true);
 			var jobContainer = new JobContainer(new MockSumWriter());
 
 			var runs = factory.SimulationRuns().ToList();
@@ -118,11 +121,11 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		{
 			//Input files
 			var inputReader = XmlReader.Create(inputFilename);
-			var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader);
+			var inputDataProvider = _xmlInputReader.CreateDeclaration(inputReader);
 			var vehicle = inputDataProvider.JobInputData.Vehicle;
 
 			var vifReader = XmlReader.Create(vifFilename);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0;
 			var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages);
@@ -158,7 +161,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		private void TestNewVifData(string filePath)
 		{
 			var vifReader = XmlReader.Create(filePath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			Assert.AreEqual(3, vifDataProvider.JobInputData.ManufacturingStages.Count());
 			TestVifStage2Data(vifDataProvider.JobInputData.ManufacturingStages[0]);
@@ -326,7 +329,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			TestSimulationMultistageVehicle(VIFInputFileGroup41, InputFilePathGroup41, 1);
 			
 			var vifReader = XmlReader.Create(_generatedVIFFilepath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null);
 			var writer = new MockDeclarationWriter("vif_vehicle-sample_test.xml");
@@ -352,7 +355,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			TestSimulationMultistageVehicle(VIFExemptedPrimaryBus, ExepmtedCompletedBusInput, 1);
 
 			var vifReader = XmlReader.Create(_generatedVIFFilepath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var inputData = new XMLDeclarationVIFInputData(vifDataProvider, null);
 			var writer = new FileOutputWriter("vif_vehicle-sample_test.xml");
@@ -378,20 +381,20 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		TestCase(PrimaryBus_SmartES, TestName = "Multistage Write VIF Primary SmartES")]
 		public void TestMultistageWritingVif(string primaryFile)
 		{
-			var inputData = xmlInputReader.Create(primaryFile);
+			var inputData = _xmlInputReader.Create(primaryFile);
 
 			var writer = new MockDeclarationWriter("vif_writing_test.xml");
 			
 			//var xmlreport = new XMLDeclarationReportMultistageBusVehicle(writer);
-			var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer);
-			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, xmlreport);
+			//var xmlreport = new XMLDeclarationReportPrimaryVehicle(writer);
+			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer, null, null, true);
 			factory.WriteModalResults = true; //ActualModalData = true,
 			factory.Validate = false;
 
 			var jobContainer = new JobContainer(new SummaryDataContainer(writer));
 			jobContainer.AddRuns(factory);
 
-			xmlreport.DoWriteReport();
+			//xmlreport.DoWriteReport();
 		}
 
 
@@ -399,7 +402,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		TestCase(PrimaryBus_SmartES, "vif_primary_bus_smart_writing_test.xml",  TestName = "Multistage Write VIF Primary SmartES With Simulation")]
 		public void TestMultistageWritingVifWithSimulation(string primaryFile, string outputFile)
 		{
-			var inputData = xmlInputReader.Create(primaryFile);
+			var inputData = _xmlInputReader.Create(primaryFile);
 
 			var writer = new MockDeclarationWriter(outputFile);
 			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer);
@@ -420,7 +423,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		[TestCase(PrimaryBusAdasV23, "vif_primary_bus_writing_test_adasv2.3.xml", TestName = "Multistage Write VIF Primary With ADAS v 2.3")]
 		public void TestPrimaryWritingVIF(string primaryFile, string outputFile)
 		{
-			var inputData = xmlInputReader.Create(primaryFile);
+			var inputData = _xmlInputReader.Create(primaryFile);
 
 			var writer = new FileOutputWriter(outputFile);
 
@@ -451,7 +454,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 		private void ValidateVIFData(string vifFilePath)
 		{
 			var vifReader = XmlReader.Create(vifFilePath);
-			var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider;
+			var vifDataProvider = _xmlInputReader.Create(vifReader) as IMultistepBusInputDataProvider;
 
 			var res = vifDataProvider.JobInputData.PrimaryVehicle;
 			TestVehicleData(res.Vehicle);
@@ -767,7 +770,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 
 			results.Add(new XElement(tns + XMLNames.Report_Result_Result,
 				new XAttribute(XMLNames.Report_Result_Status_Attr, "success"),
-				new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, "P31SD"),
+				new XElement(tns + XMLNames.Report_Results_PrimaryVehicleSubgroup, "P31SD"),
 				new XElement(tns + XMLNames.Report_Result_Mission, "Heavy Urban"),
 				new XElement(tns +
 							XMLNames.Report_ResultEntry_SimulationParameters,
diff --git a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
index bc38385e9c6de6d1d69e9a11385d6bc8d2054e6b..247126a115887cccbd01724fed6fceb98a74bbac 100644
--- a/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/TorqueLimitsTest.cs
@@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var inputDataProvider = JSONInputDataFactory.ReadJsonJob(GearboxLimitJobDecl_865);
 			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null);
 
-			var run = factory.DataReader.NextRun().First();
+			var run = factory.RunDataFactory.NextRun().First();
 
 			var engineData = run.EngineData;
 
@@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var inputDataProvider = JSONInputDataFactory.ReadJsonJob(GearboxLimitJobDecl_800);
 			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null);
 
-			var run = factory.DataReader.NextRun().First();
+			var run = factory.RunDataFactory.NextRun().First();
 
 			var engineData = run.EngineData;
 
@@ -149,7 +149,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var inputDataProvider = JSONInputDataFactory.ReadJsonJob(VehicleLimitJobDecl_910);
 			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null);
 
-			var run = factory.DataReader.NextRun().First();
+			var run = factory.RunDataFactory.NextRun().First();
 
 			var engineData = run.EngineData;
 
@@ -176,7 +176,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var inputDataProvider = JSONInputDataFactory.ReadJsonJob(VehicleLimitJobDecl_850);
 			var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null);
 
-			var run = factory.DataReader.NextRun().First();
+			var run = factory.RunDataFactory.NextRun().First();
 
 			var engineData = run.EngineData;
 
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs b/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs
index 3f8c30de253899158ad604ba717d9144ce16366f..f1de743fc38633081d4d196ffe867f9ee1aa6491 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/InputDataSanityChecks.cs
@@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 			factory.WriteModalResults = true;
 			factory.Validate = false;
 
-			var runs = factory.DataReader.NextRun().ToList();
+			var runs = factory.RunDataFactory.NextRun().ToList();
 			
 			Assert.IsTrue(runs.Count > 0);
 		}
@@ -89,7 +89,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 			factory.Validate = false;
 
 			AssertHelper.Exception<VectoException>(() => {
-				var runs = factory.DataReader.NextRun().ToList();
+				var runs = factory.RunDataFactory.NextRun().ToList();
 			}, messageContains: $"Number of steering pump technologies does not match number of steered axles ({numStreeredAxles}, {steeringPumpTechnologies.Length})");
 
 		}
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml
index 2abcc0a6799026518aea6383501a518c7a206a5a..8d93aad851c7d29011bf895d226cc7d029f47800 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/CompletedHeavyBus_33b1.RSLT_VIF.xml
@@ -33,7 +33,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
 						<Data xsi:type="EngineDataPIFType">
 							<Manufacturer>Generic Engine Manufacturer Primary</Manufacturer>
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml
index dbdda181ffeb2f7b0cecb5b5bbd23ae5c7cd8288..6a587688490a2f7a3b6d136bf63e19de42075882 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml	
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41.RSLT_VIF.xml	
@@ -34,7 +34,7 @@ xmlns:vif0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 					<tcl:Entry gear="6" maxTorque="1800"/>
 					<tcl:Entry gear="1" maxTorque="2500"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
 						<Data xsi:type="EngineDataPIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml
index 65e0097fe1b5ddf4cc66a9dba38794c2838219c9..6705787dfde9bb453036f6c3410b59645f40bc9c 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml	
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group41_AT-P.RSLT_VIF.xml	
@@ -28,7 +28,7 @@
 					<tcl:Entry gear="6" maxTorque="1800"/>
 					<tcl:Entry gear="1" maxTorque="2500"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
 						<Data xsi:type="EngineDataPIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml
index 7b67c6a129caa3df120c394dc5ac61f15802c808..885a68d120869ff7139f0beb4ce399def5396f12 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml	
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_VIF.xml	
@@ -29,7 +29,7 @@
           <Entry gear="1" maxTorque="2500" />
           <Entry gear="12" maxTorque="1900" />
         </vif0.1:TorqueLimits>
-        <Components xsi:type="VehicleComponentsPIFType">
+        <Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
           <Engine>
             <Data xsi:type="EngineDataPIFType">
               <Manufacturer>Generic Engine Manufacturer Primary</Manufacturer>
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml
index 5a8bd1363abb59bbf5579a8efcb16eef1d33cbd3..5611315b7bd2bcf95759b92719429c86ece3f0e2 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/vecto_vehicle-primary_heavyBus_ESS_electricFanSTP.RSLT_VIF.xml
@@ -29,7 +29,7 @@
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
 						<Data xsi:type="EngineDataPIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto
index ea14bcf1913a98eae7327493a4b600d41d4963ca..7d11c94cf606e0289f93183ec9501405a3a15cd2 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedConventional.vecto
@@ -8,6 +8,7 @@
   "Body": {
     "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-primary_heavyBus-sample.xml",
     "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-stage_input_full-sample-final.xml",
-    "Completed": false
+    "Completed": true,
+    "RunSimulation": true
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto
index a4cb37573f22ab2c77b8479775159010da5a6137..d7c5bb7dfc46ecf1efc8fdf0a0d919484f5c6bb4 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted-noTPMLM.vecto
@@ -8,6 +8,7 @@
   "Body": {
     "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\exempted_primary_heavyBus.xml",
     "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-exempted_input_completewithoutTMPLM.xml",
-    "Completed": false
+    "Completed": false,
+    "RunSimulation": true
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto
index 9decd02ecd28e387f35df396ab55297fa60a322e..ea7d160b3fe6c37336a458b351fc62788be0c4dc 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExempted.vecto
@@ -8,6 +8,7 @@
   "Body": {
     "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\exempted_primary_heavyBus.xml",
     "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-exempted_input_full-sample.xml",
-    "Completed": false
+    "Completed": false,
+    "RunSimulation": true
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto
index 815d40babfe59c35a0b26bbb1c6a3af3eb55163c..d4ca29ab4b50283e47076599434b93b63e7a5fda 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.vecto
@@ -8,6 +8,7 @@
   "Body": {
     "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\exempted_primary_heavyBus.xml",
     "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-exempted_input_interim-sample.xml",
-    "Completed": false
+    "Completed": false,
+    "RunSimulation": true
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto
index 8c711483841600928f41c4c07854380b23e2dfb7..8707551e872ff93b1506a204572937050a1d1ec9 100644
--- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto
+++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.vecto
@@ -8,6 +8,7 @@
   "Body": {
     "PrimaryVehicle": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-primary_heavyBus-sample.xml",
     "InterimStep": "..\\..\\XML\\XMLReaderDeclaration\\SchemaVersion2.4\\vecto_vehicle-stage_input_full-sample.xml",
-    "Completed": false
+    "Completed": false,
+    "RunSimulation": true
   }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml
index 680b0a9729964208a2d248788de94df695442a7c..6dd0f94b26b578f1388efbd2f54def5cbf8300d2 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/test.VIF_Report_2.xml
@@ -37,7 +37,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <tcl:Entry gear="6" maxTorque="1800" />
           <tcl:Entry gear="1" maxTorque="2500" />
         </vif0.1:TorqueLimits>
-        <vif0.1:Components xsi:type="VehicleComponentsPIFType">
+        <vif0.1:Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
           <vif0.1:Engine>
             <vif0.1:Data xsi:type="EngineDataPIFType">
               <vif0.1:Manufacturer>Generic Engine Manufacturer</vif0.1:Manufacturer>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml
index 469016a09d20af3962140f4534995c68d6920011..750c6d33d684d7a9460f342950eb5f4f4832ef9f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_1.xml
@@ -75,7 +75,7 @@
 							<Cooling>non R-744 3-stage</Cooling>
 							<Heating>none</Heating>
 						</HeatPumpTypePassengerCompartment>
-						<AuxiliaryHeaterPower>50</AuxiliaryHeaterPower>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
 						<DoubleGlazing>false</DoubleGlazing>
 						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
 						<SeparateAirDistributionDucts>false</SeparateAirDistributionDucts>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e6bc8ea28a50a808d19b7d1fe78edc8ab93a7a6c
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer>
+					<v2.0:Model>Generic Model</v2.0:Model>
+					<v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+					<v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date>
+					<v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion>
+					<v2.0:CdxA_0>6.31</v2.0:CdxA_0>
+					<v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA>
+					<v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2_TypeApprovalNumber.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2_TypeApprovalNumber.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63e22a3aec86124179cdc038b6fe7008aff5d15b
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2_TypeApprovalNumber.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<VehicleTypeApprovalNumber>fdsa</VehicleTypeApprovalNumber>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer>
+					<v2.0:Model>Generic Model</v2.0:Model>
+					<v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+					<v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date>
+					<v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion>
+					<v2.0:CdxA_0>6.31</v2.0:CdxA_0>
+					<v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA>
+					<v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml
index 0a35e5eda63337ee20bfeb38454f6571a6addb3e..0a7032c6a0fbf31e5f1a4f09f17b433dd5841b8b 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_1.xml
@@ -72,7 +72,7 @@
 							<Cooling>non R-744 3-stage</Cooling>
 							<Heating>none</Heating>
 						</HeatPumpTypePassengerCompartment>
-						<AuxiliaryHeaterPower>50</AuxiliaryHeaterPower>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
 						<DoubleGlazing>false</DoubleGlazing>
 						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
 						<SeparateAirDistributionDucts>false</SeparateAirDistributionDucts>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4e96006be71a54da8cc43006063ebe779b265d46
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<Components xsi:type="Components_xEV_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType">
+					<v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer>
+					<v2.0:Model>Generic Model</v2.0:Model>
+					<v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+					<v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date>
+					<v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion>
+					<v2.0:CdxA_0>6.31</v2.0:CdxA_0>
+					<v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA>
+					<v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_xEV_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+						<WaterElectricHeater>false</WaterElectricHeater>
+						<AirElectricHeater>false</AirElectricHeater>
+						<OtherHeatingTechnology>false</OtherHeatingTechnology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml
index 656f9a00486293d4c31ed3b81afccb29791cd277..d5fa73aefb12ca2a06a194376549fea7908db846 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_1.xml
@@ -70,7 +70,7 @@
 							<Cooling>non R-744 3-stage</Cooling>
 							<Heating>none</Heating>
 						</HeatPumpTypePassengerCompartment>
-						<AuxiliaryHeaterPower>50</AuxiliaryHeaterPower>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
 						<DoubleGlazing>false</DoubleGlazing>
 						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
 						<SeparateAirDistributionDucts>false</SeparateAirDistributionDucts>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..650c0839f149650a9fd8c88e6b88dcaa969eb865
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_IEPC_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_IEPC_Type">
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<Components xsi:type="Components_xEV_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType">
+					<v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer>
+					<v2.0:Model>Generic Model</v2.0:Model>
+					<v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+					<v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date>
+					<v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion>
+					<v2.0:CdxA_0>6.31</v2.0:CdxA_0>
+					<v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA>
+					<v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_xEV_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+						<WaterElectricHeater>false</WaterElectricHeater>
+						<AirElectricHeater>false</AirElectricHeater>
+						<OtherHeatingTechnology>false</OtherHeatingTechnology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml
index b6a025e1925bcf5cf7aa8e3e7c504837e0d9866e..f1246dde0c61a32286a6ab79651b517f8fd53ca0 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_1.xml
@@ -70,7 +70,7 @@
 							<Cooling>non R-744 3-stage</Cooling>
 							<Heating>none</Heating>
 						</HeatPumpTypePassengerCompartment>
-						<AuxiliaryHeaterPower>50</AuxiliaryHeaterPower>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
 						<DoubleGlazing>false</DoubleGlazing>
 						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
 						<SeparateAirDistributionDucts>false</SeparateAirDistributionDucts>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..454b7206b1200116eb3f32b167e0da96ee4bcefd
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_PEV_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_PEV_Type">
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<Components xsi:type="Components_xEV_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType">
+					<v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer>
+					<v2.0:Model>Generic Model</v2.0:Model>
+					<v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+					<v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date>
+					<v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion>
+					<v2.0:CdxA_0>6.31</v2.0:CdxA_0>
+					<v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA>
+					<v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_xEV_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+						<WaterElectricHeater>false</WaterElectricHeater>
+						<AirElectricHeater>false</AirElectricHeater>
+						<OtherHeatingTechnology>false</OtherHeatingTechnology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml
index 3bda4f34ec817645c286343a2026d70e2a930c6e..224e6a5072033c605bc2604112b7ba6edb825c29 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem-IHPC_1.xml
@@ -9,7 +9,7 @@
 			<AppVersion>aaaaa</AppVersion>
 			<ElectricMachineType>ASM</ElectricMachineType>
 			<CertificationMethod>Measured</CertificationMethod>
-			<R85RatedPower>1</R85RatedPower>
+			<R85RatedPower>50000</R85RatedPower>
 			<RotationalInertia>0.10</RotationalInertia>
 			<DcDcConverterIncluded>true</DcDcConverterIncluded>
 			<IHPCType>IHPC Type 1</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml
index e58954177634d38bd199cb204be5bf8a5f07d415..e2af8105f97f3a7358ebdfa0ae662c337ea7ced2 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_1.xml
@@ -9,7 +9,7 @@
 			<AppVersion>aaaaa</AppVersion>
 			<ElectricMachineType>ASM</ElectricMachineType>
 			<CertificationMethod>Measured</CertificationMethod>
-			<R85RatedPower>1</R85RatedPower>
+			<R85RatedPower>50000</R85RatedPower>
 			<RotationalInertia>0.10</RotationalInertia>
 			<DcDcConverterIncluded>true</DcDcConverterIncluded>
 			<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml
index bdce5bf6b70e349efa0d849543033eac3149ce77..3fb5bc97f1248c1d9d0d002dd3ba3534369093d9 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/ElectricMachineSystem_StdValues.xml
@@ -9,7 +9,7 @@
 			<AppVersion>aaaaa</AppVersion>
 			<ElectricMachineType>ASM</ElectricMachineType>
 			<CertificationMethod>Standard values</CertificationMethod>
-			<R85RatedPower>1</R85RatedPower>
+			<R85RatedPower>50000</R85RatedPower>
 			<RotationalInertia>0.10</RotationalInertia>
 			<DcDcConverterIncluded>true</DcDcConverterIncluded>
 			<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml
index c2fb24c4787d8fb6e55d84a518c5685c0fd8361a..9ae8cbb21dd592df8749e3365fddf1cdde133f8f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_1.xml
@@ -9,7 +9,7 @@
 			<AppVersion>aaaaa</AppVersion>
 			<ElectricMachineType>ASM</ElectricMachineType>
 			<CertificationMethod>Measured for complete component</CertificationMethod>
-			<R85RatedPower>1</R85RatedPower>
+			<R85RatedPower>50000</R85RatedPower>
 			<RotationalInertia>0.10</RotationalInertia>
 			<DifferentialIncluded>false</DifferentialIncluded>
 			<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml
index 82e2b4c3f3a1500c06f73d719ffb0ba61591bb7b..cc3da5ccb458d7255027824efb1143bcb504b2db 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ComponentData/IEPC_StdValues.xml
@@ -9,7 +9,7 @@
 			<AppVersion>aaaaa</AppVersion>
 			<ElectricMachineType>ASM</ElectricMachineType>
 			<CertificationMethod>Standard values for all components</CertificationMethod>
-			<R85RatedPower>1</R85RatedPower>
+			<R85RatedPower>50000</R85RatedPower>
 			<RotationalInertia>0.10</RotationalInertia>
 			<DifferentialIncluded>false</DifferentialIncluded>
 			<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
@@ -32,14 +32,20 @@
 					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
 					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
 				</MaxTorqueCurve>
-				<PowerMap>
+				<PowerMap gear="1">
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+				<PowerMap gear="1">
 					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
 					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
 					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
 					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
 				</PowerMap>
 			</VoltageLevel>
-			<DragCurve>
+			<DragCurve gear="1">
 				<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
 				<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
 			</DragCurve>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml
index bb45b98a60c7ea3c94f98dd6a1981afbf2519177..fab2cb1d3acff13c908af07838141b0792a65817 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/ExemptedVehicles/exempted_mediumLorry.xml
@@ -8,16 +8,16 @@ xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0"
 xmlns:di="http://www.w3.org/2000/09/xmldsig#" 
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd">
 	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Exempted_MediumLorryDeclarationType">
-		<Manufacturer>Some Manufacturer</Manufacturer>
-		<ManufacturerAddress>Infinite Loop 1</ManufacturerAddress>
-		<Model>Sample Bus Model</Model>
-		<VIN>VEH-1234567890</VIN>
+		<Manufacturer>ML Manufacturer</Manufacturer>
+		<ManufacturerAddress>ML Street 1</ManufacturerAddress>
+		<Model>Sample ML Model</Model>
+		<VIN>VEH-ML34567890</VIN>
 		<Date>2020-01-09T11:00:00Z</Date>
 		<LegislativeCategory>N2</LegislativeCategory>
-		<ChassisConfiguration>Tractor</ChassisConfiguration>
-		<AxleConfiguration>6x2</AxleConfiguration>
-		<CorrectedActualMass>7500</CorrectedActualMass>
-		<TechnicalPermissibleMaximumLadenMass>15400</TechnicalPermissibleMaximumLadenMass>
+		<ChassisConfiguration>Van</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>3600</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>7300</TechnicalPermissibleMaximumLadenMass>
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<SumNetPower>350000</SumNetPower>
 		<Technology>Fuel cell vehicle</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml
index 33edc8ed8a3b4ac332a6363a4bb9a88cc29b4f01..65234aac7ceab95a82555d1b93d20dd9fb385e7e 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml
@@ -123,7 +123,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -279,7 +279,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml
index ef79b03d4a22337d4ab1ac36731ba1e5d80c58b2..ffef3405dafddd34b30b26ba6794648bc24668cf 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_IEPC-S.xml
@@ -105,7 +105,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -258,7 +258,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml
index f0a5c5083ef91ea4ae1078f37464eec9df95853b..1e4945e5e2f99aed8d340fe0d93a055da824f79c 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml
@@ -123,7 +123,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -279,7 +279,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3_ovc.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3_ovc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b7aab3bd6f5fe0f6f966af28e92877c8c712233
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3_ovc.xml
@@ -0,0 +1,507 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Sx_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>S3</ArchitectureID>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>300</MaxChargingPower>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>3</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>GEN</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_HEV-S3_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachineGEN>
+				<PowertrainPosition>GEN</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+			</ElectricMachineGEN>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<ElectricMachine>
+				<PowertrainPosition>3</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>450</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>650</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-S_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml
index 515e3df774d8d908ed1473578e69a0d554219aad..0855371ad80a2dbf83d8552fbd9015f0c4571583 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml
@@ -123,7 +123,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -279,7 +279,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml
index af0f9cdf8127e38bc84862452f10e3f2ca6473dd..df81c3470f74900153d1f3f7b4dff4ac098a03ae 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
		<Manufacturer>TU Graz</Manufacturer>
		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
		<Model>HEV Heavy Lorry Px</Model>
		<VIN>1234</VIN>
		<Date>2017-01-01T00:00:00Z</Date>
		<LegislativeCategory>N3</LegislativeCategory>
		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<CorrectedActualMass>6000</CorrectedActualMass>
		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>650</IdlingSpeed>
		<RetarderType>None</RetarderType>
		<AngledriveType>None</AngledriveType>
		<PTO xsi:type="PTOType">
			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
			<PTOOtherElements>none</PTOOtherElements>
		</PTO>
		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
		<VocationalVehicle>false</VocationalVehicle>
		<NgTankSystem>Liquefied</NgTankSystem>
		<!-- optional -->
		<SleeperCab>false</SleeperCab>
		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>false</OvcHev>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
			<!-- optional -->
			<v2.0:Entry gear="9" maxTorque="2000"/>
		</TorqueLimits>
		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
			<!-- optional -->
			<ElectricMachine>
				<Position>2</Position>
				<VoltageLevel>
					<Voltage>100</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
				<VoltageLevel>
					<Voltage>500</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
			</ElectricMachine>
		</ElectricMotorTorqueLimits>
		<BoostingLimitations xsi:type="BoostingLimitationsType">
			<!-- optional -->
			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
		</BoostingLimitations>
		<Components xsi:type="Components_HEV-Px_LorryType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#ENG-gooZah3D">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>1</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference URI="#EM-1234">
							<di:Transforms>
								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
							</di:Transforms>
							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>tokena</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
							<Manufacturer>b</Manufacturer>
							<Model>b</Model>
							<CertificationNumber>tokenb</CertificationNumber>
							<Date>2017-02-02T00:00:00Z</Date>
							<AppVersion>bbbbb</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>73.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="621.00"/>
								<Entry SoC="100" OCV="641.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#TQ-1234">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Angledrive>
				<!-- optional -->
				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<Ratio>2.345</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#agl-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Angledrive>
			<Retarder>
				<!-- optional -->
				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
					<Model>Generic Retarder</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<RetarderLossMap>
						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
					</RetarderLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#RET-Shai9imi">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Retarder>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_LorryDataType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<Technology>Standard technology - LED headlights, all</Technology>
					</ElectricSystem>
					<PneumaticSystem>
						<Technology>Medium Supply 2-stage</Technology>
					</PneumaticSystem>
					<HVAC>
						<Technology>Default</Technology>
					</HVAC>
				</Data>
			</Auxiliaries>
			<AirDrag>
				<!-- optional -->
				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Manufacturer</Manufacturer>
					<Model>Generic Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-03-24T15:00:00Z</Date>
					<AppVersion>Vecto AirDrag x.y</AppVersion>
					<CdxA_0>6.31</CdxA_0>
					<TransferredCdxA>6.32</TransferredCdxA>
					<DeclaredCdxA>6.34</DeclaredCdxA>
				</Data>
				<v2.0:Signature>
					<di:Reference URI="#CabinX23h">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</AirDrag>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
		<Manufacturer>TU Graz</Manufacturer>
		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
		<Model>HEV Heavy Lorry Px</Model>
		<VIN>1234</VIN>
		<Date>2017-01-01T00:00:00Z</Date>
		<LegislativeCategory>N3</LegislativeCategory>
		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<CorrectedActualMass>6000</CorrectedActualMass>
		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>650</IdlingSpeed>
		<RetarderType>None</RetarderType>
		<AngledriveType>None</AngledriveType>
		<PTO xsi:type="PTOType">
			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
			<PTOOtherElements>none</PTOOtherElements>
		</PTO>
		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
		<VocationalVehicle>false</VocationalVehicle>
		<NgTankSystem>Liquefied</NgTankSystem>
		<!-- optional -->
		<SleeperCab>false</SleeperCab>
		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>false</OvcHev>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
			<!-- optional -->
			<v2.0:Entry gear="9" maxTorque="2000"/>
		</TorqueLimits>
		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
			<!-- optional -->
			<ElectricMachine>
				<Position>2</Position>
				<VoltageLevel>
					<Voltage>100</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
				<VoltageLevel>
					<Voltage>500</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
			</ElectricMachine>
		</ElectricMotorTorqueLimits>
		<BoostingLimitations xsi:type="BoostingLimitationsType">
			<!-- optional -->
			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
		</BoostingLimitations>
		<Components xsi:type="Components_HEV-Px_LorryType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#ENG-gooZah3D">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>50000</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference URI="#EM-1234">
							<di:Transforms>
								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
							</di:Transforms>
							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>tokena</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
							<Manufacturer>b</Manufacturer>
							<Model>b</Model>
							<CertificationNumber>tokenb</CertificationNumber>
							<Date>2017-02-02T00:00:00Z</Date>
							<AppVersion>bbbbb</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>73.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="621.00"/>
								<Entry SoC="100" OCV="641.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#TQ-1234">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Angledrive>
				<!-- optional -->
				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<Ratio>2.345</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#agl-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Angledrive>
			<Retarder>
				<!-- optional -->
				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
					<Model>Generic Retarder</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<RetarderLossMap>
						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
					</RetarderLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#RET-Shai9imi">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Retarder>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_LorryDataType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<Technology>Standard technology - LED headlights, all</Technology>
					</ElectricSystem>
					<PneumaticSystem>
						<Technology>Medium Supply 2-stage</Technology>
					</PneumaticSystem>
					<HVAC>
						<Technology>Default</Technology>
					</HVAC>
				</Data>
			</Auxiliaries>
			<AirDrag>
				<!-- optional -->
				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Manufacturer</Manufacturer>
					<Model>Generic Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-03-24T15:00:00Z</Date>
					<AppVersion>Vecto AirDrag x.y</AppVersion>
					<CdxA_0>6.31</CdxA_0>
					<TransferredCdxA>6.32</TransferredCdxA>
					<DeclaredCdxA>6.34</DeclaredCdxA>
				</Data>
				<v2.0:Signature>
					<di:Reference URI="#CabinX23h">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</AirDrag>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml
index 77032b8f223533fd4e4ad8d4078d6f10819afbbe..404c4af706a1e93895d0079ce150892d4ca8d731 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV_heavyLorry_AMT_Px_IHPC.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
		<Manufacturer>TU Graz</Manufacturer>
		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
		<Model>HEV Heavy Lorry Px</Model>
		<VIN>1234</VIN>
		<Date>2017-01-01T00:00:00Z</Date>
		<LegislativeCategory>N3</LegislativeCategory>
		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<CorrectedActualMass>6000</CorrectedActualMass>
		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>650</IdlingSpeed>
		<RetarderType>None</RetarderType>
		<AngledriveType>None</AngledriveType>
		<PTO xsi:type="PTOType">
			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
			<PTOOtherElements>none</PTOOtherElements>
		</PTO>
		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
		<VocationalVehicle>false</VocationalVehicle>
		<NgTankSystem>Liquefied</NgTankSystem>
		<!-- optional -->
		<SleeperCab>false</SleeperCab>
		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>false</OvcHev>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
			<!-- optional -->
			<v2.0:Entry gear="9" maxTorque="2000"/>
		</TorqueLimits>
		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
			<!-- optional -->
			<ElectricMachine>
				<Position>2</Position>
				<VoltageLevel>
					<Voltage>100</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
				<VoltageLevel>
					<Voltage>500</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
			</ElectricMachine>
		</ElectricMotorTorqueLimits>
		<BoostingLimitations xsi:type="BoostingLimitationsType">
			<!-- optional -->
			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
		</BoostingLimitations>
		<Components xsi:type="Components_HEV-Px_LorryType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#ENG-gooZah3D">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>1</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>IHPC Type 1</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap gear="1">
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
							<PowerMap gear="2">
								<Entry outShaftSpeed="0.00" torque="500.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/>
								<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap gear="1">
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
							<PowerMap gear="2">
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/>
								<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<!-- optional -->
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference URI="#EM-1234">
							<di:Transforms>
								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
							</di:Transforms>
							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
							<di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>tokena</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>b</Manufacturer>
							<Model>b</Model>
							<CertificationNumber>tokenb</CertificationNumber>
							<Date>2017-02-02T00:00:00Z</Date>
							<AppVersion>bbbbb</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>73.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="621.00"/>
								<Entry SoC="100" OCV="641.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#TQ-1234">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Angledrive>
				<!-- optional -->
				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<Ratio>2.345</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#agl-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Angledrive>
			<Retarder>
				<!-- optional -->
				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
					<Model>Generic Retarder</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<RetarderLossMap>
						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
					</RetarderLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#RET-Shai9imi">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Retarder>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_LorryDataType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<Technology>Standard technology - LED headlights, all</Technology>
					</ElectricSystem>
					<PneumaticSystem>
						<Technology>Medium Supply 2-stage</Technology>
					</PneumaticSystem>
					<HVAC>
						<Technology>Default</Technology>
					</HVAC>
				</Data>
			</Auxiliaries>
			<AirDrag>
				<!-- optional -->
				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Manufacturer</Manufacturer>
					<Model>Generic Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-03-24T15:00:00Z</Date>
					<AppVersion>Vecto AirDrag x.y</AppVersion>
					<CdxA_0>6.31</CdxA_0>
					<TransferredCdxA>6.32</TransferredCdxA>
					<DeclaredCdxA>6.34</DeclaredCdxA>
				</Data>
				<v2.0:Signature>
					<di:Reference URI="#CabinX23h">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</AirDrag>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
		<Manufacturer>TU Graz</Manufacturer>
		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
		<Model>HEV Heavy Lorry Px</Model>
		<VIN>1234</VIN>
		<Date>2017-01-01T00:00:00Z</Date>
		<LegislativeCategory>N3</LegislativeCategory>
		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<CorrectedActualMass>6000</CorrectedActualMass>
		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>650</IdlingSpeed>
		<RetarderType>None</RetarderType>
		<AngledriveType>None</AngledriveType>
		<PTO xsi:type="PTOType">
			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
			<PTOOtherElements>none</PTOOtherElements>
		</PTO>
		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
		<VocationalVehicle>false</VocationalVehicle>
		<NgTankSystem>Liquefied</NgTankSystem>
		<!-- optional -->
		<SleeperCab>false</SleeperCab>
		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>false</OvcHev>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
			<!-- optional -->
			<v2.0:Entry gear="9" maxTorque="2000"/>
		</TorqueLimits>
		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
			<!-- optional -->
			<ElectricMachine>
				<Position>2</Position>
				<VoltageLevel>
					<Voltage>100</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
				<VoltageLevel>
					<Voltage>500</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
			</ElectricMachine>
		</ElectricMotorTorqueLimits>
		<BoostingLimitations xsi:type="BoostingLimitationsType">
			<!-- optional -->
			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
		</BoostingLimitations>
		<Components xsi:type="Components_HEV-Px_LorryType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#ENG-gooZah3D">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>50000</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>IHPC Type 1</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap gear="1">
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
							<PowerMap gear="2">
								<Entry outShaftSpeed="0.00" torque="500.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/>
								<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap gear="1">
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
							<PowerMap gear="2">
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/>
								<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<!-- optional -->
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference URI="#EM-1234">
							<di:Transforms>
								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
							</di:Transforms>
							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
							<di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>tokena</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>b</Manufacturer>
							<Model>b</Model>
							<CertificationNumber>tokenb</CertificationNumber>
							<Date>2017-02-02T00:00:00Z</Date>
							<AppVersion>bbbbb</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>73.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="621.00"/>
								<Entry SoC="100" OCV="641.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#TQ-1234">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Angledrive>
				<!-- optional -->
				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<Ratio>2.345</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#agl-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Angledrive>
			<Retarder>
				<!-- optional -->
				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
					<Model>Generic Retarder</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<RetarderLossMap>
						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
					</RetarderLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#RET-Shai9imi">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Retarder>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_LorryDataType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<Technology>Standard technology - LED headlights, all</Technology>
					</ElectricSystem>
					<PneumaticSystem>
						<Technology>Medium Supply 2-stage</Technology>
					</PneumaticSystem>
					<HVAC>
						<Technology>Default</Technology>
					</HVAC>
				</Data>
			</Auxiliaries>
			<AirDrag>
				<!-- optional -->
				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Manufacturer</Manufacturer>
					<Model>Generic Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-03-24T15:00:00Z</Date>
					<AppVersion>Vecto AirDrag x.y</AppVersion>
					<CdxA_0>6.31</CdxA_0>
					<TransferredCdxA>6.32</TransferredCdxA>
					<DeclaredCdxA>6.34</DeclaredCdxA>
				</Data>
				<v2.0:Signature>
					<di:Reference URI="#CabinX23h">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</AirDrag>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml
index 73af50778ddf93519f09c6f6933bb5d22155332a..c6e4dad2f322c31608f1a498e5a4b81c465105c5 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml
@@ -17,12 +17,11 @@
 			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
 			<PTOOtherElements>none</PTOOtherElements>
 		</PTO>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VocationalVehicle>false</VocationalVehicle>
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -36,11 +35,11 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
-					<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
-					<Gears xsi:type="v2.3:IEPCGearsDeclarationType">
+					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
+					<Gears xsi:type="IEPCGearsDeclarationType">
 						<Gear number="1">
 							<Ratio>3.000</Ratio>
 						</Gear>
@@ -323,7 +322,7 @@
 			<Auxiliaries>
 				<Data xsi:type="AUX_IEPC_LorryDataType">
 					<SteeringPump>
-						<Technology axleNumber="1">Medium Supply 2-stage + elec. driven</Technology>
+						<Technology axleNumber="1">Electric driven pump</Technology>
 					</SteeringPump>
 					<ElectricSystem>
 						<Technology>Standard technology - LED headlights, all</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml
index 93bb15cdca5894fba624da2b62b095c63c66be8d..71d15de1f05689bff60d8bc658028f24cdd6ce39 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml
@@ -17,13 +17,12 @@
 			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
 			<PTOOtherElements>none</PTOOtherElements>
 		</PTO>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VocationalVehicle>false</VocationalVehicle>
 		<!-- optional -->
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -60,7 +59,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml
index cff68f15e5a3ab495be11f006a7ab4b10a210dec..aa4cb6e289584f7de6a60166f5a94d46ae35f9ab 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml
@@ -17,12 +17,11 @@
 			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
 			<PTOOtherElements>none</PTOOtherElements>
 		</PTO>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VocationalVehicle>false</VocationalVehicle>
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="v2.4:ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -59,7 +58,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml
index b3566c5c59e551720df5bde51b5b0afa1917a3a7..eb44c82a0be16b34bbd7417d39caf03e73d4d278 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml
@@ -17,12 +17,11 @@
 			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
 			<PTOOtherElements>none</PTOOtherElements>
 		</PTO>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VocationalVehicle>false</VocationalVehicle>
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -59,7 +58,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml
index eb9a1d82ef34c1eb661da00d4186aabaeac98bbe..01b9be64d7f8f28088ec425ef4226237561840f4 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml
@@ -17,12 +17,11 @@
 			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
 			<PTOOtherElements>none</PTOOtherElements>
 		</PTO>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VocationalVehicle>false</VocationalVehicle>
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -59,7 +58,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml
index f4058fbb03111959f14b3cae9794c77ed5efe268..8b866a8f4a7d33ba8d6cc335029bb56060e9af54 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml
@@ -119,7 +119,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -275,7 +275,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml
index 4504a67075fda6615cc32dcf615848e4d8dd9192..9eb1873602c4021f4c50a2b4ee9abb36abd10735 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_IEPC-S.xml
@@ -101,7 +101,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -254,7 +254,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml
index 12ee94be010eddce289e9ed04e3fc24af6a76534..ed56ab0604d88ce2cb0b7bb4fa1b1549ce8e028c 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml
@@ -119,7 +119,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -275,7 +275,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml
index ae591fb32125332566374638ee9e4d797ad3e3cd..8b3ad53a3b5426809dcdc15292cace161b87cb4a 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml
@@ -119,7 +119,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -275,7 +275,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml
index db595628401d4799835188071cf075d3d6290f53..498cf7f2f8d041165faa8da5844e444e60f41be6 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV_mediumLorry_AMT_Px.xml
@@ -110,7 +110,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml
index 9056cf29a1d9255d5f7b0d268ffc78ca625cbaf9..d76b6b0b5477468dcba39005137b74d972a9639a 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml
@@ -15,10 +15,9 @@
 		<!-- optional -->
 		<RetarderType>None</RetarderType>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -32,10 +31,10 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
-					<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
+					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
 					<Gears xsi:type="v2.3:IEPCGearsDeclarationType">
 						<Gear number="1">
 							<Ratio>3.000</Ratio>
@@ -319,7 +318,7 @@
 			<Auxiliaries>
 				<Data xsi:type="AUX_IEPC_LorryDataType">
 					<SteeringPump>
-						<Technology axleNumber="1">Vacuum pump + elec. driven</Technology>
+						<Technology axleNumber="1">Electric driven pump</Technology>
 					</SteeringPump>
 					<ElectricSystem>
 						<Technology>Standard technology - LED headlights, all</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml
index e27ad1fbdd5d8dcdeb7dd80dc9b2f6f8fd8a82df..a42c09b02ba8d675047664dc2f2fd2dcb8b14ed1 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml
@@ -14,10 +14,9 @@
 		<CargoVolume>20.300</CargoVolume><!-- optional -->
 		<RetarderType>None</RetarderType>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -53,7 +52,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml
index 9b045f03fed05f29c0a9415a4ebb282378e992da..23939490bffdc7c9386250fdba0c4d910bc9a23c 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml
@@ -10,15 +10,14 @@
 		<ChassisConfiguration>Van</ChassisConfiguration>
 		<AxleConfiguration>4x2</AxleConfiguration>
 		<CorrectedActualMass>6000</CorrectedActualMass>
-		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<TechnicalPermissibleMaximumLadenMass>7000</TechnicalPermissibleMaximumLadenMass>
 		<CargoVolume>20.300</CargoVolume>
 		<!-- optional -->
 		<RetarderType>None</RetarderType>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -55,7 +54,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Standard values</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml
index 20881f25f147cf915e48bb211e4981d64f9a94ea..cfde7abca26d52b59e9cd22e9fe0ed6254ed23d5 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml
@@ -15,10 +15,9 @@
 		<!-- optional -->
 		<RetarderType>None</RetarderType>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -55,7 +54,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml
index 40e01c6255f0dbafaf9dc14510ee2d6568e3495d..67414e7aba7c5c1f31dff77c2ce9ef2c35502cfe 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml
@@ -15,10 +15,9 @@
 		<!-- optional -->
 		<RetarderType>None</RetarderType>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -55,7 +54,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml
index 8ab9994cb1ee0e82bf4fb1bf10110994f8290a36..99f69f5dcfd43ce623acb2a641c5946f133e12d5 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml
@@ -15,10 +15,9 @@
 		<!-- optional -->
 		<RetarderType>None</RetarderType>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="v2.4:ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -55,7 +54,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/Conventional_primaryBus_AMT_DifferentTyres.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/Conventional_primaryBus_AMT_DifferentTyres.xml
new file mode 100644
index 0000000000000000000000000000000000000000..78174a72be0122ee504233f3ebb3f4d341fa709a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/Conventional_primaryBus_AMT_DifferentTyres.xml
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_PrimaryBusDeclarationType">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>false</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional -->
+			<v2.0:Entry gear="6" maxTorque="1800"/>
+			<v2.0:Entry gear="1" maxTorque="2500"/>
+			<v2.0:Entry gear="12" maxTorque="1900"/>
+		</TorqueLimits>
+		<Components xsi:type="Components_Conventional_PrimaryBusType">
+			<Engine xsi:type="v2.0:EngineComponentDeclarationType">
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter><!-- optional -->
+				<v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#tc-123xyz">
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive><!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder><!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</v2.0:Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="3" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<TyreClass>C1</TyreClass>
+									<FuelEfficiencyClass>A</FuelEfficiencyClass>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</v2.0:Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SmartAlternator><!-- optional -->
+							<RatedCurrent>100</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<SmartAlternator><!-- optional -->
+							<RatedCurrent>50</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<Battery><!-- optional -->
+							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
+							<RatedCapacity>50</RatedCapacity>
+							<NominalVoltage>48</NominalVoltage>
+						</Battery>
+						<Capacitor><!-- optional -->
+							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
+							<RatedCapacitance>120</RatedCapacitance>
+							<RatedVoltage>30</RatedVoltage>
+						</Capacitor>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartCompressionSystem>false</SmartCompressionSystem>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml
index 996d8d106993107cc5681e210ed6af802248279b..7d8004b765614468448b68e965c0bf0d3f9aa676 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml
@@ -117,7 +117,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -273,7 +273,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml
index 7133b50d2b3c2f4345acabe1dc8d3e57460275d8..f61c42c82fb9317fc12a134e509ccf55eaca991b 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_IEPC-S.xml
@@ -97,7 +97,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -250,7 +250,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml
index bc8398274bd22621c71c30d2b792a4cb1b116855..0724153c376c66b113f50a72db3537c7e95b3d5c 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml
@@ -115,7 +115,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -271,7 +271,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml
index 738bb5514fb7bbd1c445bb526e34c1428aa69813..ee377c8fe518a0df5d06c6e7942c360981ef7a7f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml
@@ -115,7 +115,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -271,7 +271,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml
index 04e901f18537ec805fb493a17fd0012b038b1f7f..0e853efeeea18d619c02b22ce87a31894c825439 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV_primaryBus_AMT_Px.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a">
		<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>
		<LegislativeCategory>M3</LegislativeCategory>
		<ChassisConfiguration>Bus</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<Articulated>false</Articulated>
		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>600</IdlingSpeed>
		<RetarderType>Transmission Output Retarder</RetarderType>
		<RetarderRatio>1.000</RetarderRatio>
		<AngledriveType>None</AngledriveType>
		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>false</OvcHev>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType">
			<!-- optional -->
			<v2.0:Entry gear="9" maxTorque="2000"/>
		</TorqueLimits>
		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
			<!-- optional -->
			<ElectricMachine>
				<Position>2</Position>
				<VoltageLevel>
					<Voltage>100</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
				<VoltageLevel>
					<Voltage>500</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
			</ElectricMachine>
		</ElectricMotorTorqueLimits>
		<BoostingLimitations xsi:type="BoostingLimitationsType">
			<!-- optional -->
			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
		</BoostingLimitations>
		<Components xsi:type="Components_HEV-Px_PrimaryBusType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#ENG-gooZah3D">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="v2.3:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>1</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference URI="#EM-1234">
							<di:Transforms>
								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
							</di:Transforms>
							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#TQ-1234">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Angledrive>
				<!-- optional -->
				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<Ratio>2.345</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#agl-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Angledrive>
			<Retarder>
				<!-- optional -->
				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
					<Model>Generic Retarder</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<RetarderLossMap>
						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
					</RetarderLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#RET-Shai9imi">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Retarder>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_PrimaryBusType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<AlternatorTechnology>conventional</AlternatorTechnology>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>100</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>50</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<Battery>
							<!-- optional -->
							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
							<RatedCapacity>50</RatedCapacity>
							<NominalVoltage>48</NominalVoltage>
						</Battery>
						<Capacitor>
							<!-- optional -->
							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
							<RatedCapacitance>120</RatedCapacitance>
							<RatedVoltage>30</RatedVoltage>
						</Capacitor>
						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
					</ElectricSystem>
					<PneumaticSystem>
						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
						<CompressorDrive>mechanically</CompressorDrive>
						<Clutch>none</Clutch>
						<CompressorRatio>1.000</CompressorRatio>
						<SmartCompressionSystem>true</SmartCompressionSystem>
						<SmartRegenerationSystem>false</SmartRegenerationSystem>
						<AirsuspensionControl>electronically</AirsuspensionControl>
						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
					</PneumaticSystem>
					<HVAC>
						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
					</HVAC>
				</Data>
			</Auxiliaries>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a">
		<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>
		<LegislativeCategory>M3</LegislativeCategory>
		<ChassisConfiguration>Bus</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<Articulated>false</Articulated>
		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>600</IdlingSpeed>
		<RetarderType>Transmission Output Retarder</RetarderType>
		<RetarderRatio>1.000</RetarderRatio>
		<AngledriveType>None</AngledriveType>
		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>false</OvcHev>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType">
			<!-- optional -->
			<v2.0:Entry gear="9" maxTorque="2000"/>
		</TorqueLimits>
		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
			<!-- optional -->
			<ElectricMachine>
				<Position>2</Position>
				<VoltageLevel>
					<Voltage>100</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
				<VoltageLevel>
					<Voltage>500</Voltage>
					<MaxTorqueCurve>
						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
					</MaxTorqueCurve>
				</VoltageLevel>
			</ElectricMachine>
		</ElectricMotorTorqueLimits>
		<BoostingLimitations xsi:type="BoostingLimitationsType">
			<!-- optional -->
			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
		</BoostingLimitations>
		<Components xsi:type="Components_HEV-Px_PrimaryBusType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#ENG-gooZah3D">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="v2.3:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>50000</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference URI="#EM-1234">
							<di:Transforms>
								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
							</di:Transforms>
							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference URI="#BAT-asdf">
								<di:Transforms>
									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
								</di:Transforms>
								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#TQ-1234">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Angledrive>
				<!-- optional -->
				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<Ratio>2.345</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#agl-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Angledrive>
			<Retarder>
				<!-- optional -->
				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
					<Model>Generic Retarder</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<RetarderLossMap>
						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
					</RetarderLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#RET-Shai9imi">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Retarder>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_PrimaryBusType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<AlternatorTechnology>conventional</AlternatorTechnology>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>100</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>50</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<Battery>
							<!-- optional -->
							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
							<RatedCapacity>50</RatedCapacity>
							<NominalVoltage>48</NominalVoltage>
						</Battery>
						<Capacitor>
							<!-- optional -->
							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
							<RatedCapacitance>120</RatedCapacitance>
							<RatedVoltage>30</RatedVoltage>
						</Capacitor>
						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
					</ElectricSystem>
					<PneumaticSystem>
						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
						<CompressorDrive>mechanically</CompressorDrive>
						<Clutch>none</Clutch>
						<CompressorRatio>1.000</CompressorRatio>
						<SmartCompressionSystem>true</SmartCompressionSystem>
						<SmartRegenerationSystem>false</SmartRegenerationSystem>
						<AirsuspensionControl>electronically</AirsuspensionControl>
						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
					</PneumaticSystem>
					<HVAC>
						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
					</HVAC>
				</Data>
			</Auxiliaries>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml
index 505f21f52e0e7ee126503dc69d4a486c0025b729..7266037d79372ef268781e43df3a61cdd88231b0 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml
@@ -11,12 +11,11 @@
 		<AxleConfiguration>4x2</AxleConfiguration>
 		<Articulated>false</Articulated>
 		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
-		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderType>Axlegear Input Retarder</RetarderType>
 		<RetarderRatio>1.000</RetarderRatio>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -30,10 +29,10 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
-					<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
+					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
 					<Gears xsi:type="v2.3:IEPCGearsDeclarationType">
 						<Gear number="1">
 							<Ratio>3.000</Ratio>
@@ -323,7 +322,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml
index c98f9a0346a0deab31cf4dc0a490cd24b7777959..b6ce3f2429c423189221290295f612d20c3fef23 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml
@@ -14,9 +14,8 @@
 		<RetarderType>Transmission Output Retarder</RetarderType>
 		<RetarderRatio>1.000</RetarderRatio>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -53,7 +52,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -431,7 +430,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml
index 5080b4738feac15547954578d2aabdc6908a75c2..9779f578ec4cf6c61eadf20c192f02f7ce9c05a9 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml
@@ -14,9 +14,8 @@
 		<RetarderType>Transmission Output Retarder</RetarderType>
 		<RetarderRatio>1.000</RetarderRatio>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -52,7 +51,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -323,7 +322,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml
index 732be3806ec94193d41516f2213cf7bda6b8f350..d140a360be02439f4742d2cb8cf0092cf4124023 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml
@@ -14,9 +14,8 @@
 		<RetarderType>Transmission Output Retarder</RetarderType>
 		<RetarderRatio>1.000</RetarderRatio>
 		<AngledriveType>None</AngledriveType>
-		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -53,7 +52,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -296,7 +295,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml
index 3c74a0f74e59e34a68aba279f2b5532cad63ccb4..7fcde6ad7ebc8130612ac3da9c98a55fb9794529 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV-S_heavyLorry_AMT_S2_ADC.xml
@@ -118,7 +118,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -286,7 +286,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml
index 317875ab41ae9f1a05faedad8892f2edfa35513a..1793b234182fc6e3e6b04599581ff93b853e112e 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/HEV_heavyLorry_AMT_Px_Capacitor.xml
@@ -110,7 +110,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_InterimBus_Min.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b7adcd58d4603dd76791fd551f50b4cfd133b49
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_InterimBus_Min.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<VehicleDeclarationType>interim</VehicleDeclarationType>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV10.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV10.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3995f1c65774f214fd9f3c16f8b9819842adb594
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV10.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV20.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV20.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3f9e7ef9f25d1ac2b95e86523da493b5a117ba03
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_completedBus_AirdragV20.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>final</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV10.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV10.xml
new file mode 100644
index 0000000000000000000000000000000000000000..829a7f768ce6ec02d0fb17e7f956245aca3ef24d
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV10.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>interim</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV20.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV20.xml
new file mode 100644
index 0000000000000000000000000000000000000000..595eee5993b0f0d54f2e46a908fd694774487f0f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/Conventional_interimBus_AirdragV20.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<CorrectedActualMass>500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass>
+		<AirdragModifiedMultistep>true</AirdragModifiedMultistep>
+		<ClassBus>II+III</ClassBus>
+		<NgTankSystem>Compressed</NgTankSystem><!-- optional -->
+		<NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck>
+		<BodyworkCode>CB</BodyworkCode>
+		<LowEntry>false</LowEntry>
+		<HeightIntegratedBody>2500</HeightIntegratedBody>
+		<VehicleLength>9500</VehicleLength>
+		<VehicleWidth>2500</VehicleWidth>
+		<EntranceHeight>2000</EntranceHeight>
+		<DoorDriveTechnology>electric</DoorDriveTechnology>
+		<VehicleDeclarationType>interim</VehicleDeclarationType>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_CompletedBusType">
+			<AirDrag>
+				<v2.0:Data id="CabinX23h" xsi:type="AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_CompletedBusType">
+					<ElectricSystem>
+						<LEDLights>
+							<Interiorlights>false</Interiorlights>
+							<Dayrunninglights>true</Dayrunninglights>
+							<Positionlights>true</Positionlights>
+							<Brakelights>true</Brakelights>
+							<Headlights>false</Headlights>
+						</LEDLights>
+					</ElectricSystem>
+					<HVAC>
+						<SystemConfiguration>1</SystemConfiguration>
+						<HeatPumpTypeDriverCompartment>
+							<Cooling>non R-744 2-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypeDriverCompartment>
+						<HeatPumpTypePassengerCompartment>
+							<Cooling>non R-744 3-stage</Cooling>
+							<Heating>none</Heating>
+						</HeatPumpTypePassengerCompartment>
+						<AuxiliaryHeaterPower>50000</AuxiliaryHeaterPower>
+						<DoubleGlazing>false</DoubleGlazing>
+						<AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater>
+						<SeparateAirDistributionDucts>true</SeparateAirDistributionDucts>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/HEV_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/HEV_InterimBus_Min.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6ace6090f35fe2ec4eba4cf1c047a15de1b2f69b
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/HEV_InterimBus_Min.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<VehicleDeclarationType>interim</VehicleDeclarationType>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/IEPC_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/IEPC_InterimBus_Min.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2038c283cbc78558b52a3df8a25051dc860f4c21
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/IEPC_InterimBus_Min.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_IEPC_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<VehicleDeclarationType>interim</VehicleDeclarationType>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/PEV_InterimBus_Min.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/PEV_InterimBus_Min.xml
new file mode 100644
index 0000000000000000000000000000000000000000..827e44ea1e3765c9847404d4008ce5707aea4226
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/CompletedBus/PEV_InterimBus_Min.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_PEV_CompletedBusDeclarationType">
+		<Manufacturer>Some Manufacturer</Manufacturer>
+		<ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress>
+		<VIN>VEH-1234567890</VIN>
+		<Date>2021-06-30T22:00:00Z</Date>
+		<Model>Sample Bus Model</Model>
+		<VehicleDeclarationType>interim</VehicleDeclarationType>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DF.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DF.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a18531f009caabeaf196eba6df9619d9f49e562f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DF.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>true</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<Components xsi:type="Components_Conventional_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<!---->
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHRType>
+						<MechanicalOutputICE>false</MechanicalOutputICE>
+						<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+						<ElectricalOutput>false</ElectricalOutput>
+					</WHRType>
+					<Mode>
+						<IdlingSpeed>560</IdlingSpeed>
+						<FullLoadAndDragCurve>
+							<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+							<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+							<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+						</FullLoadAndDragCurve>
+						<Fuel type="NG PI">
+							<WHTCUrban>1.0097</WHTCUrban>
+							<WHTCRural>1.0035</WHTCRural>
+							<WHTCMotorway>1.0200</WHTCMotorway>
+							<BFColdHot>1.0000</BFColdHot>
+							<CFRegPer>1.0000</CFRegPer>
+							<CFNCV>1.0000</CFNCV>
+							<FuelConsumptionMap>
+								<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+								<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+							</FuelConsumptionMap>
+						</Fuel>
+						<Fuel type="Diesel CI">
+							<WHTCUrban>1.0097</WHTCUrban>
+							<WHTCRural>1.0035</WHTCRural>
+							<WHTCMotorway>1.0200</WHTCMotorway>
+							<BFColdHot>1.0000</BFColdHot>
+							<CFRegPer>1.0000</CFRegPer>
+							<CFNCV>1.0000</CFNCV>
+							<FuelConsumptionMap>
+								<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="1286.00"/>
+								<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="5063.00"/>
+							</FuelConsumptionMap>
+						</Fuel>
+					</Mode>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DifferentTyres.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DifferentTyres.xml
new file mode 100644
index 0000000000000000000000000000000000000000..84dda376d9d166c46ffedccf4c9cef20f202a134
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AMT_DifferentTyres.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>6x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>30000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem><!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>true</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<Components xsi:type="Components_Conventional_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter><!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive><!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder><!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</v2.0:Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="3" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<TyreClass>C1</TyreClass>
+									<FuelEfficiencyClass>C</FuelEfficiencyClass>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</v2.0:Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag><!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AT_Angledrive.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AT_Angledrive.xml
new file mode 100644
index 0000000000000000000000000000000000000000..38d064a48b2fcd6386b52ee9f70ae9860a9b9ad0
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/Conventional_heavyLorry_AT_Angledrive.xml
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>Separate Angledrive</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem><!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>true</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<Components xsi:type="Components_Conventional_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>APT-S</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="3">
+							<Ratio>9.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder><!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag><!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV-S_heavyLorry_S3_ADC_GenSetADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV-S_heavyLorry_S3_ADC_GenSetADC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..38b6e9be9feaf3f38ae8a4b844c1ccbc1c4f0eaf
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV-S_heavyLorry_S3_ADC_GenSetADC.xml
@@ -0,0 +1,552 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Sx_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>S3</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>3</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>GEN</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_HEV-S3_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachineGEN>
+				<PowertrainPosition>GEN</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<ADC>
+					<v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533">
+						<v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer>
+						<v2.3:Model>Some ADC Model</v2.3:Model>
+						<v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber>
+						<v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date>
+						<v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion>
+						<v2.3:Ratio>1.234</v2.3:Ratio>
+						<v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod>
+						<v2.3:TorqueLossMap>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/>
+						</v2.3:TorqueLossMap>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""/>
+							<di:DigestValue>DummyDigestValue</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ADC>
+			</ElectricMachineGEN>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<ElectricMachine>
+				<PowertrainPosition>3</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<ADC>
+					<v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533">
+						<v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer>
+						<v2.3:Model>Some ADC Model</v2.3:Model>
+						<v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber>
+						<v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date>
+						<v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion>
+						<v2.3:Ratio>1.234</v2.3:Ratio>
+						<v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod>
+						<v2.3:TorqueLossMap>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/>
+						</v2.3:TorqueLossMap>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""/>
+							<di:DigestValue>DummyDigestValue</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ADC>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-S_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_IHPC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8282c9af09f01463e95f5dee28eec546d59f9351
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_IHPC.xml
@@ -0,0 +1,517 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>IHPC Type 1</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap gear="1">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+							<PowerMap gear="2">
+								<Entry outShaftSpeed="0.00" torque="500.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/>
+								<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap gear="1">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+							<PowerMap gear="2">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="26000.00"/>
+								<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-26000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<!-- optional -->
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>tokena</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>b</Manufacturer>
+							<Model>b</Model>
+							<CertificationNumber>tokenb</CertificationNumber>
+							<Date>2017-02-02T00:00:00Z</Date>
+							<AppVersion>bbbbb</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>73.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="621.00"/>
+								<Entry SoC="100" OCV="641.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>IHPC Type 1</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<v2.3:Gears xsi:type="GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</v2.3:Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_ADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_ADC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a3348f7bbdf9e016a6aaf3cbb5b7b87ef53f300
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_ADC.xml
@@ -0,0 +1,556 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<!-- optional -->
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<ADC>
+					<v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533">
+						<v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer>
+						<v2.3:Model>Some ADC Model</v2.3:Model>
+						<v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber>
+						<v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date>
+						<v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion>
+						<v2.3:Ratio>1.234</v2.3:Ratio>
+						<v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod>
+						<v2.3:TorqueLossMap>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/>
+						</v2.3:TorqueLossMap>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""></di:DigestMethod>
+							<di:DigestValue>DummyDigestValue</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ADC>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>tokena</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>zX/IDR+bCvdMheYa6auUOE/hx8ZAqeJz1u3+Pd/NIss=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>b</Manufacturer>
+							<Model>b</Model>
+							<CertificationNumber>tokenb</CertificationNumber>
+							<Date>2017-02-02T00:00:00Z</Date>
+							<AppVersion>bbbbb</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>73.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="621.00"/>
+								<Entry SoC="100" OCV="641.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>bJfbc0NkhpTZWhZ/03YZ4S3iFwGtzhE2kbIiAuKNia8=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_SuperCap.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_SuperCap.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46d6d7a40da5d96e10880555170f11c01aa19d16
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/HeavyLorry/HEV_heavyLorry_Px_SuperCap.xml
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xsi:type="PTOType">
+			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
+			<PTOOtherElements>none</PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<!-- optional -->
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>SRYiAOd48DGe63vPJXjcBoFN3q2fkWjPKvxIKhQaKac=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<ADC>
+					<v2.3:Data xsi:type="v2.3:ADCDataDeclarationType" id="ADC34533">
+						<v2.3:Manufacturer>ADC Manufacturer</v2.3:Manufacturer>
+						<v2.3:Model>Some ADC Model</v2.3:Model>
+						<v2.3:CertificationNumber>CertNmbr23451</v2.3:CertificationNumber>
+						<v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date>
+						<v2.3:AppVersion>ADC Declaration App</v2.3:AppVersion>
+						<v2.3:Ratio>1.234</v2.3:Ratio>
+						<v2.3:CertificationMethod>Option 2</v2.3:CertificationMethod>
+						<v2.3:TorqueLossMap>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<v2.3:Entry inputSpeed="2000.00" inputTorque="500.00" torqueLoss="5.00"/>
+						</v2.3:TorqueLossMap>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""></di:DigestMethod>
+							<di:DigestValue>DummyDigestValue</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ADC>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Capacitor>
+					<Data xsi:type="v2.3:CapacitorSystemDataType" id="SuperCap-1234">
+						<v2.3:Manufacturer>SuperCapManufacturer</v2.3:Manufacturer>
+						<v2.3:Model>MySuperSupercap</v2.3:Model>
+						<v2.3:CertificationNumber>C123987765</v2.3:CertificationNumber>
+						<v2.3:Date>2022-01-01T00:00:00Z</v2.3:Date>
+						<v2.3:AppVersion>SuperCapMeasurementApp</v2.3:AppVersion>
+						<v2.3:CertificationMethod>Measured</v2.3:CertificationMethod>
+						<v2.3:Capacitance>53.00</v2.3:Capacitance>
+						<v2.3:InternalResistance>300.00</v2.3:InternalResistance>
+						<v2.3:MinVoltage>30.00</v2.3:MinVoltage>
+						<v2.3:MaxVoltage>180.00</v2.3:MaxVoltage>
+						<v2.3:MaxChargingCurrent>210.00</v2.3:MaxChargingCurrent>
+						<v2.3:MaxDischargingCurrent>220.00</v2.3:MaxDischargingCurrent>
+					</Data>
+					<Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""></di:DigestMethod>
+							<di:DigestValue>DummyDigestValue</di:DigestValue>
+						</di:Reference>
+					</Signature>
+				</Capacitor>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_IHPC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e09a8667c587edcdf64fc3d8b8c0f7064dfc3d17
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_IHPC.xml
@@ -0,0 +1,540 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_MediumLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N2</LegislativeCategory>
+		<ChassisConfiguration>Van</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>3500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>7100</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<CargoVolume>20.300</CargoVolume>
+		<!-- optional -->
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>IHPC Type 1</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap gear="1">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+							<PowerMap gear="2">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap gear="1">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+							<PowerMap gear="2">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<!-- optional -->
+					<SOCmax>80</SOCmax>
+					<!-- optional -->
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>IHPC Type 1</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<v2.3:Gears xsi:type="GearsDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</v2.3:Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_Px_SuperCap.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_Px_SuperCap.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8bd33f3cc5bbb77133293c231e5c67fc85bb794f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/HEV_mediumLorry_Px_SuperCap.xml
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_MediumLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N2</LegislativeCategory>
+		<ChassisConfiguration>Van</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>3500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>7100</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<CargoVolume>20.300</CargoVolume>
+		<!-- optional -->
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<NgTankSystem>Liquefied</NgTankSystem>
+		<!-- optional -->
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Capacitor>
+					<v2.4:Data xsi:type="CapacitorSystemDataType" id="SuperCap-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>SuperCap Manufacturer</Manufacturer>
+						<Model>TheBestSuperCap</Model>
+						<CertificationNumber>CertNbr1234</CertificationNumber>
+						<Date>2022-01-01T00:00:00Z</Date>
+						<AppVersion>SuperCap Preprocessing App 1.0</AppVersion>
+						<CertificationMethod>Measured</CertificationMethod>
+						<Capacitance>25.00</Capacitance>
+						<InternalResistance>400.00</InternalResistance>
+						<MinVoltage>60.00</MinVoltage>
+						<MaxVoltage>180.00</MaxVoltage>
+						<MaxChargingCurrent>200.00</MaxChargingCurrent>
+						<MaxDischargingCurrent>200.00</MaxDischargingCurrent>
+					</v2.4:Data>
+					<Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""/>
+							<di:DigestValue>DummyDigestValue</di:DigestValue>
+						</di:Reference>
+					</Signature>
+				</Capacitor>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag>
+				<!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2f48330ad6c609bf86f74f3d2abea819b9100d1f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_PEV_MediumLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N2</LegislativeCategory>
+		<ChassisConfiguration>Van</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>3500</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>7100</TechnicalPermissibleMaximumLadenMass>
+		<CargoVolume>20.300</CargoVolume><!-- optional -->
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ArchitectureID>E2</ArchitectureID>
+		<ADAS xsi:type="ADAS_PEV_Type">
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"><!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_PEV-E2_LorryType">
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+						<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+						<OverloadTorque>400.00</OverloadTorque>
+						<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+						<OverloadDuration>30.00</OverloadDuration>
+						<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+						<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+						<OverloadTorque>400.00</OverloadTorque>
+						<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+						<OverloadDuration>30.00</OverloadDuration>
+						<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios><!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"  xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Standard values</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3"  xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter><!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive><!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder><!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_PEV_LorryDataType">
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage + elec. driven</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+			<AirDrag><!-- optional -->
+				<Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Manufacturer</Manufacturer>
+					<Model>Generic Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-03-24T15:00:00Z</Date>
+					<AppVersion>Vecto AirDrag x.y</AppVersion>
+					<CdxA_0>6.31</CdxA_0>
+					<TransferredCdxA>6.32</TransferredCdxA>
+					<DeclaredCdxA>6.34</DeclaredCdxA>
+				</Data>
+				<v2.0:Signature>
+					<di:Reference URI="#CabinX23h">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</AirDrag>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AMT_DF.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AMT_DF.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a9a5d66aff37a2acccc87b0e3ae52b8e2cc8bd5a
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AMT_DF.xml
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_PrimaryBusDeclarationType">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>false</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="6" maxTorque="1800"/>
+			<v2.0:Entry gear="1" maxTorque="2500"/>
+			<v2.0:Entry gear="12" maxTorque="1900"/>
+		</TorqueLimits>
+		<Components xsi:type="Components_Conventional_PrimaryBusType">
+			<Engine xsi:type="v2.0:EngineComponentDeclarationType">
+				<v2.0:Data xsi:type="EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHRType>
+						<MechanicalOutputICE>false</MechanicalOutputICE>
+						<MechanicalOutputDrivetrain>false</MechanicalOutputDrivetrain>
+						<ElectricalOutput>false</ElectricalOutput>
+					</WHRType>
+					<Mode>
+						<IdlingSpeed>560</IdlingSpeed>
+						<FullLoadAndDragCurve>
+							<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+							<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+							<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+						</FullLoadAndDragCurve>
+						<Fuel type="NG CI">
+							<WHTCUrban>1.0097</WHTCUrban>
+							<WHTCRural>1.0035</WHTCRural>
+							<WHTCMotorway>1.0200</WHTCMotorway>
+							<BFColdHot>1.0000</BFColdHot>
+							<CFRegPer>1.0000</CFRegPer>
+							<CFNCV>1.0000</CFNCV>
+							<FuelConsumptionMap>
+								<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+								<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+							</FuelConsumptionMap>
+						</Fuel>
+						<Fuel type="Diesel CI">
+							<WHTCUrban>1.0097</WHTCUrban>
+							<WHTCRural>1.0035</WHTCRural>
+							<WHTCMotorway>1.0200</WHTCMotorway>
+							<BFColdHot>1.0000</BFColdHot>
+							<CFRegPer>1.0000</CFRegPer>
+							<CFNCV>1.0000</CFNCV>
+							<FuelConsumptionMap>
+								<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="1286.00"/>
+								<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+								<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="5063.00"/>
+							</FuelConsumptionMap>
+						</Fuel>
+					</Mode>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#tc-123xyz">
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SmartAlternator>
+							<!-- optional -->
+							<RatedCurrent>100</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<SmartAlternator>
+							<!-- optional -->
+							<RatedCurrent>50</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<Battery>
+							<!-- optional -->
+							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
+							<RatedCapacity>50</RatedCapacity>
+							<NominalVoltage>48</NominalVoltage>
+						</Battery>
+						<Capacitor>
+							<!-- optional -->
+							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
+							<RatedCapacitance>120</RatedCapacitance>
+							<RatedVoltage>30</RatedVoltage>
+						</Capacitor>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartCompressionSystem>false</SmartCompressionSystem>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AT_Angledrive.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AT_Angledrive.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2dca27c32d715acaf6da7e8373e0ad487b5dbe14
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/Conventional_primaryBus_AT_Angledrive.xml
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_PrimaryBusDeclarationType">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>Separate Angledrive</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>false</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+			<APTEcoRollReleaseLockupClutch>false</APTEcoRollReleaseLockupClutch>
+		</ADAS>
+		<TorqueLimits xsi:type="v2.0:TorqueLimitsType"><!-- optional -->
+			<v2.0:Entry gear="6" maxTorque="1800"/>
+			<v2.0:Entry gear="1" maxTorque="2500"/>
+			<v2.0:Entry gear="12" maxTorque="1900"/>
+		</TorqueLimits>
+		<Components xsi:type="Components_Conventional_PrimaryBusType">
+			<Engine xsi:type="v2.0:EngineComponentDeclarationType">
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>APT-S</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="3">
+							<Ratio>9.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#tc-123xyz">
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder><!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SmartAlternator><!-- optional -->
+							<RatedCurrent>100</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<SmartAlternator><!-- optional -->
+							<RatedCurrent>50</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<Battery><!-- optional -->
+							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
+							<RatedCapacity>50</RatedCapacity>
+							<NominalVoltage>48</NominalVoltage>
+						</Battery>
+						<Capacitor><!-- optional -->
+							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
+							<RatedCapacitance>120</RatedCapacitance>
+							<RatedVoltage>30</RatedVoltage>
+						</Capacitor>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartCompressionSystem>false</SmartCompressionSystem>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_ADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_ADC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..04e7ae54f47425350d220559feef73958aad1ca3
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_ADC.xml
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV-Sx_PrimaryBusDeclarationType">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ArchitectureID>S2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<MaxChargingPower>1</MaxChargingPower>
+		<!-- optional -->
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>false</EngineStopStart>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>GEN</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_HEV-S2_PrimaryBusType">
+			<Engine xsi:type="v2.0:EngineComponentDeclarationType">
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachineGEN>
+				<PowertrainPosition>GEN</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+			</ElectricMachineGEN>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+<ADC>
+	<Data xsi:type="ADCDataDeclarationType" id="ADC-123498" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+		<Manufacturer>ADC MAnufacturer</Manufacturer>
+		<Model>Some ADC Model</Model>
+		<CertificationNumber>CertNbr 1234987</CertificationNumber>
+		<Date>2022-01-01T00:00:00Z</Date>
+		<AppVersion>ADC PreProcessing 1.0</AppVersion>
+		<Ratio>1.000</Ratio>
+		<CertificationMethod>Option 2</CertificationMethod>
+		<TorqueLossMap>
+			<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
+			<Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
+			<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="0.00"/>
+			<Entry inputSpeed="1000.00" inputTorque="500.00" torqueLoss="5.00"/>
+		</TorqueLossMap>
+	</Data>
+	<v2.3:Signature>
+		<di:Reference>
+			<di:DigestMethod Algorithm=""></di:DigestMethod>
+			<di:DigestValue></di:DigestValue>
+		</di:Reference>
+	</v2.3:Signature>
+</ADC>				
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#tc-123xyz">
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-S_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_GenSetADC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_GenSetADC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c1a62d5661a12b22c488371826ca103faf1c8dc4
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV-S_primaryBus_AMT_S2_GenSetADC.xml
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd">
+	<v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV-Sx_PrimaryBusDeclarationType">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ArchitectureID>S2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<MaxChargingPower>1</MaxChargingPower>
+		<!-- optional -->
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>false</EngineStopStart>
+			<PredictiveCruiseControl>none</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>GEN</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_HEV-S2_PrimaryBusType">
+			<Engine xsi:type="v2.0:EngineComponentDeclarationType">
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachineGEN>
+				<PowertrainPosition>GEN</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<ADC>
+					<Data xsi:type="ADCDataDeclarationType" id="ADCGen-123" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>ADC Manufaturer</Manufacturer>
+						<Model>GenSetADC</Model>
+						<CertificationNumber>CertNbr345</CertificationNumber>
+						<Date>2022-01-01T00:00:00Z</Date>
+						<AppVersion>ADC Evaluation App</AppVersion>
+						<Ratio>1.000</Ratio>
+						<CertificationMethod>Option 2</CertificationMethod>
+						<TorqueLossMap>
+							<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<Entry inputSpeed="0.00" inputTorque="500.00" torqueLoss="5.00"/>
+							<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="0.00"/>
+							<Entry inputSpeed="1000.00" inputTorque="500.00" torqueLoss="5.00"/>
+						</TorqueLossMap>
+					</Data>
+					<v2.3:Signature>
+						<di:Reference>
+							<di:DigestMethod Algorithm=""></di:DigestMethod>
+							<di:DigestValue></di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ADC>
+			</ElectricMachineGEN>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data id="tc-123xyz" xsi:type="v2.0:TorqueConverterDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#tc-123xyz">
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>BpqbVEM5dAFXyIeZfvKBUhv+Oj4OU5R85aK9M4ylV+4=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<Data xsi:type="AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-S_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_IHPC.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_IHPC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b6f0d78f58a3c4cd3bb907f8fb545588b1e29862
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_IHPC.xml
@@ -0,0 +1,542 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_PrimaryBusType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>IHPC Type 1</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap gear="1">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+							<PowerMap gear="2">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap gear="1">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+							<PowerMap gear="2">
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>IHPC Type 1</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<v2.3:Gears xsi:type="GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</v2.3:Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SmartAlternator>
+							<!-- optional -->
+							<RatedCurrent>100</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<SmartAlternator>
+							<!-- optional -->
+							<RatedCurrent>50</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<Battery>
+							<!-- optional -->
+							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
+							<RatedCapacity>50</RatedCapacity>
+							<NominalVoltage>48</NominalVoltage>
+						</Battery>
+						<Capacitor>
+							<!-- optional -->
+							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
+							<RatedCapacitance>120</RatedCapacitance>
+							<RatedVoltage>30</RatedVoltage>
+						</Capacitor>
+						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartCompressionSystem>true</SmartCompressionSystem>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_Px_SuperCap.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_Px_SuperCap.xml
new file mode 100644
index 0000000000000000000000000000000000000000..42cbc5389c405c106848c1de7d440206868e02b4
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/HEV_primaryBus_AMT_Px_SuperCap.xml
@@ -0,0 +1,470 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>600</IdlingSpeed>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<ArchitectureID>P2</ArchitectureID>
+		<OvcHev>false</OvcHev>
+		<ADAS xsi:type="ADAS_HEV_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<TorqueLimits xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:TorqueLimitsType">
+			<!-- optional -->
+			<v2.0:Entry gear="9" maxTorque="2000"/>
+		</TorqueLimits>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<BoostingLimitations xsi:type="BoostingLimitationsType">
+			<!-- optional -->
+			<Entry rotationalSpeed="0.00" boostingTorque="0.00"/>
+			<Entry rotationalSpeed="1000.00" boostingTorque="0.00"/>
+		</BoostingLimitations>
+		<Components xsi:type="Components_HEV-Px_PrimaryBusType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#ENG-gooZah3D">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/qqS7iMvDm0MYurhsIRZTF5FeS+MNA2HnoS1P8SrSdA=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="v2.3:ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+<Capacitor>
+	<v2.4:Data xsi:type="CapacitorSystemDataType" id="SuperCap-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+		<Manufacturer>SuperCap Manufacturer</Manufacturer>
+		<Model>TheBestSuperCap</Model>
+		<CertificationNumber>CertNbr1234</CertificationNumber>
+		<Date>2022-01-01T00:00:00Z</Date>
+		<AppVersion>SuperCap Preprocessing App 1.0</AppVersion>
+		<CertificationMethod>Measured</CertificationMethod>
+		<Capacitance>25.00</Capacitance>
+		<InternalResistance>400.00</InternalResistance>
+		<MinVoltage>60.00</MinVoltage>
+		<MaxVoltage>180.00</MaxVoltage>
+		<MaxChargingCurrent>200.00</MaxChargingCurrent>
+		<MaxDischargingCurrent>200.00</MaxDischargingCurrent>
+	</v2.4:Data>
+	<Signature>
+		<di:Reference>
+			<di:DigestMethod Algorithm=""></di:DigestMethod>
+			<di:DigestValue></di:DigestValue>
+		</di:Reference>
+	</Signature>
+</Capacitor>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_HEV-P_PrimaryBusType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<AlternatorTechnology>conventional</AlternatorTechnology>
+						<SmartAlternator>
+							<!-- optional -->
+							<RatedCurrent>100</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<SmartAlternator>
+							<!-- optional -->
+							<RatedCurrent>50</RatedCurrent>
+							<RatedVoltage>48</RatedVoltage>
+						</SmartAlternator>
+						<Battery>
+							<!-- optional -->
+							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
+							<RatedCapacity>50</RatedCapacity>
+							<NominalVoltage>48</NominalVoltage>
+						</Battery>
+						<Capacitor>
+							<!-- optional -->
+							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
+							<RatedCapacitance>120</RatedCapacitance>
+							<RatedVoltage>30</RatedVoltage>
+						</Capacitor>
+						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+						<CompressorDrive>mechanically</CompressorDrive>
+						<Clutch>none</Clutch>
+						<CompressorRatio>1.000</CompressorRatio>
+						<SmartCompressionSystem>true</SmartCompressionSystem>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml
new file mode 100644
index 0000000000000000000000000000000000000000..eb5382344bb8e5ecd1b5d658a75ef2062fafcd96
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/IEPC_primaryBus_StdValues.xml
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_IEPC_PrimaryBusDeclarationType" id="a">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<RetarderType>Axlegear Input Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
+		<ArchitectureID>E-IEPC</ArchitectureID>
+		<ADAS xsi:type="ADAS_IEPC_Type">
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<Components xsi:type="Components_IEPC_PrimaryBusType">
+			<IEPC>
+				<v2.3:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="IEPCStandardValuesDataDeclarationType" id="IEPC-asdf">
+					<Manufacturer>a</Manufacturer>
+					<Model>a</Model>
+					<CertificationNumber>token</CertificationNumber>
+					<Date>2017-01-01T00:00:00Z</Date>
+					<AppVersion>aaaaa</AppVersion>
+					<ElectricMachineType>ASM</ElectricMachineType>
+					<CertificationMethod>Standard values for all components</CertificationMethod>
+					<R85RatedPower>50000</R85RatedPower>
+					<RotationalInertia>0.10</RotationalInertia>
+					<DifferentialIncluded>false</DifferentialIncluded>
+					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
+					<Gears xsi:type="v2.3:IEPCGearsDeclarationType">
+						<Gear number="1">
+							<Ratio>3.000</Ratio>
+						</Gear>
+						<Gear number="2">
+							<Ratio>1.000</Ratio>
+							<MaxOutShaftTorque>2000</MaxOutShaftTorque>
+						</Gear>
+					</Gears>
+					<VoltageLevel>
+						<ContinuousTorque>200.00</ContinuousTorque>
+						<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+						<OverloadTorque>400.00</OverloadTorque>
+						<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+						<OverloadDuration>30.00</OverloadDuration>
+						<MaxTorqueCurve>
+							<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+							<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+						</MaxTorqueCurve>
+						<PowerMap gear="1">
+							<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+							<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+							<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+							<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+						</PowerMap>
+						<PowerMap gear="2">
+							<Entry outShaftSpeed="0.00" torque="500.00" electricPower="1500.00"/>
+							<Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1500.00"/>
+							<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="25000.00"/>
+							<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-25000.00"/>
+						</PowerMap>
+					</VoltageLevel>
+					<DragCurve gear="1">
+						<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+						<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+					</DragCurve>
+					<DragCurve gear="2">
+						<Entry outShaftSpeed="0.00" dragTorque="15.00"/>
+						<Entry outShaftSpeed="4500.00" dragTorque="35.00"/>
+					</DragCurve>
+				</v2.3:Data>
+				<v2.3:Signature>
+					<di:Reference URI="#IEPC-asdf">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>/+OkpqMJNrSUR2r8zwuvw+IJOEP3c9lDM+Buo32YxO0=</di:DigestValue>
+					</di:Reference>
+				</v2.3:Signature>
+			</IEPC>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<!-- optional -->
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_IEPC_PrimaryBusType">
+					<SteeringPump>
+						<Technology axleNumber="1">Electric driven pump</Technology>
+					</SteeringPump>
+					<PneumaticSystem>
+						<CompressorDrive>electrically</CompressorDrive>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_BatteryStd.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_BatteryStd.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34c83a3d9d8f5da541f50b70a6ee4b97026c8324
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_BatteryStd.xml
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_PEV_PrimaryBusDeclarationType" id="a">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
+		<ArchitectureID>E2</ArchitectureID>
+		<ADAS xsi:type="ADAS_PEV_Type">
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_PEV-E2_PrimaryBusType">
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Measured</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<Voltage>400</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<VoltageLevel>
+							<Voltage>600</Voltage>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+						<Conditioning>
+							<Entry coolantTempInlet="30" coolingPower="5000"/>
+						</Conditioning>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Standard values</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_PEV_PrimaryBusType">
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<PneumaticSystem>
+						<CompressorDrive>electrically</CompressorDrive>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_EMStd.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_EMStd.xml
new file mode 100644
index 0000000000000000000000000000000000000000..33fd4feb24461abb14ebacae00cdf7233541a4f8
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/MockupBusTest/PrimaryBus/PEV_primaryBus_AMT_E2_EMStd.xml
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
+	<v2.0:Vehicle xsi:type="Vehicle_PEV_PrimaryBusDeclarationType" id="a">
+		<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>
+		<LegislativeCategory>M3</LegislativeCategory>
+		<ChassisConfiguration>Bus</ChassisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<Articulated>false</Articulated>
+		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+		<RetarderType>Transmission Output Retarder</RetarderType>
+		<RetarderRatio>1.000</RetarderRatio>
+		<AngledriveType>None</AngledriveType>
+		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
+		<ArchitectureID>E2</ArchitectureID>
+		<ADAS xsi:type="ADAS_PEV_Type">
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+			<!-- optional -->
+			<ElectricMachine>
+				<Position>2</Position>
+				<VoltageLevel>
+					<Voltage>100</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+				<VoltageLevel>
+					<Voltage>500</Voltage>
+					<MaxTorqueCurve>
+						<v2.3:Entry outShaftSpeed="0.00" maxTorque="200.00" minTorque="-200.00"/>
+						<v2.3:Entry outShaftSpeed="1000.00" maxTorque="300.00" minTorque="-300.00"/>
+					</MaxTorqueCurve>
+				</VoltageLevel>
+			</ElectricMachine>
+		</ElectricMotorTorqueLimits>
+		<Components xsi:type="Components_PEV-E2_PrimaryBusType">
+			<ElectricMachine>
+				<PowertrainPosition>2</PowertrainPosition>
+				<Count>1</Count>
+				<ElectricMachineSystem>
+					<v2.3:Data xsi:type="ElectricMachineSystemStandardValuesDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
+						<Manufacturer>a</Manufacturer>
+						<Model>a</Model>
+						<CertificationNumber>token</CertificationNumber>
+						<Date>2017-01-01T00:00:00Z</Date>
+						<AppVersion>aaaaa</AppVersion>
+						<ElectricMachineType>ASM</ElectricMachineType>
+						<CertificationMethod>Standard values</CertificationMethod>
+						<R85RatedPower>50000</R85RatedPower>
+						<RotationalInertia>0.10</RotationalInertia>
+						<DcDcConverterIncluded>true</DcDcConverterIncluded>
+						<IHPCType>None</IHPCType>
+						<VoltageLevel>
+							<ContinuousTorque>200.00</ContinuousTorque>
+							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+							<OverloadTorque>400.00</OverloadTorque>
+							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+							<OverloadDuration>30.00</OverloadDuration>
+							<MaxTorqueCurve>
+								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+							</MaxTorqueCurve>
+							<PowerMap>
+								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+							</PowerMap>
+						</VoltageLevel>
+						<DragCurve>
+							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+						</DragCurve>
+					</v2.3:Data>
+					<v2.3:Signature>
+						<di:Reference URI="#EM-1234">
+							<di:Transforms>
+								<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+								<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+							</di:Transforms>
+							<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+							<di:DigestValue>siONkqzC3QW+4si2eVwLNTwtAxUM0dxMFdAYXjVNl+0=</di:DigestValue>
+						</di:Reference>
+					</v2.3:Signature>
+				</ElectricMachineSystem>
+				<P2.5GearRatios>
+					<!-- only for P2.5 HEV -->
+					<Ratio gear="1">1.000</Ratio>
+					<Ratio gear="2">2.000</Ratio>
+				</P2.5GearRatios>
+			</ElectricMachine>
+			<ElectricEnergyStorage>
+				<Battery>
+					<StringID>0</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+					<SOCmin>20</SOCmin>
+					<SOCmax>80</SOCmax>
+				</Battery>
+				<Battery>
+					<StringID>1</StringID>
+					<REESS>
+						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
+							<Manufacturer>a</Manufacturer>
+							<Model>a</Model>
+							<CertificationNumber>token</CertificationNumber>
+							<Date>2017-01-01T00:00:00Z</Date>
+							<AppVersion>aaaaa</AppVersion>
+							<CertificationMethod>Measured</CertificationMethod>
+							<BatteryType>HPBS</BatteryType>
+							<RatedCapacity>72.00</RatedCapacity>
+							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+							<JunctionboxIncluded>true</JunctionboxIncluded>
+							<TestingTemperature>20</TestingTemperature>
+							<OCV>
+								<Entry SoC="0" OCV="620.00"/>
+								<Entry SoC="100" OCV="640.00"/>
+							</OCV>
+							<InternalResistance>
+								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
+								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
+							</InternalResistance>
+							<CurrentLimits>
+								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
+								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
+							</CurrentLimits>
+						</v2.4:Data>
+						<Signature>
+							<di:Reference URI="#BAT-asdf">
+								<di:Transforms>
+									<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+									<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+								</di:Transforms>
+								<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+								<di:DigestValue>22QLOYTZK+bUIolzdEzc3Ut0wPIOXEBdWv72ST0Zbyw=</di:DigestValue>
+							</di:Reference>
+						</Signature>
+					</REESS>
+				</Battery>
+			</ElectricEnergyStorage>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>8fsWE1AvinkI5UcWuU/vyx3X2kKjarP/qPC+Uon+aBE=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter>
+				<!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#TQ-1234">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>P8mKieew0dWJFSIPapRXdUf2FsYG4ONvolD5kjkYEkw=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Angledrive>
+				<!-- optional -->
+				<v2.0:Data id="agl-vi2Oak2N" xsi:type="v2.0:AngledriveDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<Ratio>2.345</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00"/>
+						<Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00"/>
+						<Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#agl-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>iVRxT+wETVrlCQhZMsiqRC1mKcw3a3KSeb1y5uhINQk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Angledrive>
+			<Retarder>
+				<!-- optional -->
+				<v2.0:Data id="RET-Shai9imi" xsi:type="v2.0:RetarderDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Retarder Manufacturer</Manufacturer>
+					<Model>Generic Retarder</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<RetarderLossMap>
+						<Entry retarderSpeed="0.00" torqueLoss="10.00"/>
+						<Entry retarderSpeed="2300.00" torqueLoss="20.58"/>
+					</RetarderLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#RET-Shai9imi">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>xcfok6Uo1kvFefSRo+W/oMfEfS5BdTklBugAjby2DUQ=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Retarder>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>Ux2vo+s07pGr9XCbvNs/YbJcFaZClORRGXpP6Eyeze8=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>A/sq1ng4cqeOyauDUqUEnonRSPch3VCqZDX9Pf3tW1Q=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>z+KDXmc5MIezM6RVgfYax5J9Efi0ghciG2/wLLmWaBk=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_PEV_PrimaryBusType">
+					<SteeringPump>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
+					</SteeringPump>
+					<PneumaticSystem>
+						<CompressorDrive>electrically</CompressorDrive>
+						<SmartRegenerationSystem>false</SmartRegenerationSystem>
+						<AirsuspensionControl>electronically</AirsuspensionControl>
+					</PneumaticSystem>
+					<HVAC>
+						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml
index 615c385e6ca20dd62eb39d25cedf1ab7d66930ef..0a41c27700f4ea079b18ecdc314d513f0de64c99 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_AMT_S2_n_opt.xml
@@ -81,7 +81,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -225,7 +225,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml
index 984c847dfb4b2904808b7ac3bea5839c301b570f..9a7551d2fac0e1cb40136a750586b641b8fd3dc9 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_IEPC-S_n_opt.xml
@@ -101,7 +101,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -242,7 +242,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml
index 404d1791f790583353225415b95bf6d5a9834eb8..28caaf1d3216655a2a55b7ba37984391a85821a7 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S3_n_opt.xml
@@ -81,7 +81,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -225,7 +225,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml
index 2172cd84cc98f4140f33467b9175c4e297ace98a..574f1573096ca5136cc5902aa1cd2031d48d22c7 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_heavyLorry_S4_n_opt.xml
@@ -81,7 +81,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -225,7 +225,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml
index 84849e92792e8e8c014754d6d1d0745df9b3ff66..1a7b7f6f640a0c4ce4c46772a3d053582b741af2 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_AMT_S2_n_opt.xml
@@ -75,7 +75,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -219,7 +219,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml
index 3655abed882ed2d5fb654b8fdaed29e822a04232..81efe8a405148ab409f15590493201513cda93ee 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_IEPC-S_n_opt.xml
@@ -95,7 +95,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -236,7 +236,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml
index 01bdc223301d9b76f4648a4266793f5131ce4a8f..10618e5fbe380fb142d6acee5e39ee0b49984c3f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S3_n_opt.xml
@@ -75,7 +75,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -219,7 +219,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml
index 166a929a4e7dbb624bfb320b605f87190411a360..667fe3bd11f80260c62fe3abf88e297b140c2115 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_mediumLorry_S4_n_opt.xml
@@ -75,7 +75,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -219,7 +219,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml
index 97b4f3895bb56b4dd86cfb2eaf23784c7fa8e38b..66e6678fc43732c14c28e46370d0112aaf748328 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_AMT_S2_n_opt.xml
@@ -78,7 +78,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -222,7 +222,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml
index 8e2a63396255527bfe1902416f0e17e8a0608721..a6e3e8e82a59a8ac35a06b8c20b61816017d569f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_IEPC-S_n_opt.xml
@@ -94,7 +94,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -235,7 +235,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>false</DesignTypeWheelMotor>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml
index 5e6fd226e7a8f427307cb49d4d20683203521775..34d18d16240c6c48755592edb1c64f02701087ce 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S3_n_opt.xml
@@ -74,7 +74,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -218,7 +218,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml
index 38d89ce490086bfd5b2ba0e38072dd986d1c687f..9cb1c0ddc13b58f954ef41dd27597124dff1dff0 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV-S_primaryBus_S4_n_opt.xml
@@ -74,7 +74,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -218,7 +218,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml
index 733c8d8ca876a7e7d0106de5155f9522f7a7b57a..329423213ab9af172658325ec391ad01906a5453 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_heavyLorry_AMT_Px_n_opt.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
		<Manufacturer>TU Graz</Manufacturer>
		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
		<Model>HEV Heavy Lorry Px</Model>
		<VIN>1234</VIN>
		<Date>2017-01-01T00:00:00Z</Date>
		<LegislativeCategory>N3</LegislativeCategory>
		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<CorrectedActualMass>6000</CorrectedActualMass>
		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>650</IdlingSpeed>
		<RetarderType>Losses included in Gearbox</RetarderType>
		<RetarderRatio>2.000</RetarderRatio>
		<AngledriveType>Separate Angledrive</AngledriveType>
		<PTO xsi:type="PTOType">
			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
			<PTOOtherElements>none</PTOOtherElements>
		</PTO>
		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
		<VocationalVehicle>true</VocationalVehicle>
		<SleeperCab>true</SleeperCab>
		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
		<ArchitectureID>P2.5</ArchitectureID>
		<OvcHev>true</OvcHev>
		<MaxChargingPower>11</MaxChargingPower>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<Components xsi:type="Components_HEV-Px_LorryType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>1</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference>
							<di:DigestMethod Algorithm=""/>
							<di:DigestValue/>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>tokena</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm="asf"/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>b</Manufacturer>
							<Model>b</Model>
							<CertificationNumber>tokenb</CertificationNumber>
							<Date>2017-02-02T00:00:00Z</Date>
							<AppVersion>bbbbb</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>73.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="621.00"/>
								<Entry SoC="100" OCV="641.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm="bsf"/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_LorryDataType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<Technology>Standard technology - LED headlights, all</Technology>
					</ElectricSystem>
					<PneumaticSystem>
						<Technology>Medium Supply 2-stage</Technology>
					</PneumaticSystem>
					<HVAC>
						<Technology>Default</Technology>
					</HVAC>
				</Data>
			</Auxiliaries>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_HeavyLorryDeclarationType" id="a">
		<Manufacturer>TU Graz</Manufacturer>
		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
		<Model>HEV Heavy Lorry Px</Model>
		<VIN>1234</VIN>
		<Date>2017-01-01T00:00:00Z</Date>
		<LegislativeCategory>N3</LegislativeCategory>
		<ChassisConfiguration>Rigid Lorry</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<CorrectedActualMass>6000</CorrectedActualMass>
		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>650</IdlingSpeed>
		<RetarderType>Losses included in Gearbox</RetarderType>
		<RetarderRatio>2.000</RetarderRatio>
		<AngledriveType>Separate Angledrive</AngledriveType>
		<PTO xsi:type="PTOType">
			<PTOShaftsGearWheels>none</PTOShaftsGearWheels>
			<PTOOtherElements>none</PTOOtherElements>
		</PTO>
		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
		<VocationalVehicle>true</VocationalVehicle>
		<SleeperCab>true</SleeperCab>
		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
		<ArchitectureID>P2.5</ArchitectureID>
		<OvcHev>true</OvcHev>
		<MaxChargingPower>11</MaxChargingPower>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<Components xsi:type="Components_HEV-Px_LorryType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>50000</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference>
							<di:DigestMethod Algorithm=""/>
							<di:DigestValue/>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>tokena</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm="asf"/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>b</Manufacturer>
							<Model>b</Model>
							<CertificationNumber>tokenb</CertificationNumber>
							<Date>2017-02-02T00:00:00Z</Date>
							<AppVersion>bbbbb</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>73.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="621.00"/>
								<Entry SoC="100" OCV="641.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="11.00" R_10="12.00" R_20="13.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="51.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm="bsf"/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_LorryDataType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<Technology>Standard technology - LED headlights, all</Technology>
					</ElectricSystem>
					<PneumaticSystem>
						<Technology>Medium Supply 2-stage</Technology>
					</PneumaticSystem>
					<HVAC>
						<Technology>Default</Technology>
					</HVAC>
				</Data>
			</Auxiliaries>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml
index 68ba28d5ebcec8b75db415dcfcd749d509a4a176..0cfd8f16e69ed26e7bc1e0536340ef8faa87cea2 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_mediumLorry_AMT_Px_n_opt.xml
@@ -75,7 +75,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml
index ced7dfb8fbfba31f46148dcf8f966f6158104f24..5324763cc63744d092a0d965ffc2f67eafc0a84a 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/HEV_primaryBus_AMT_Px_n_opt.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a">
		<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>
		<LegislativeCategory>M3</LegislativeCategory>
		<ChassisConfiguration>Bus</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<Articulated>true</Articulated>
		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>600</IdlingSpeed>
		<RetarderType>Losses included in Gearbox</RetarderType>
		<RetarderRatio>2.000</RetarderRatio>
		<AngledriveType>Separate Angledrive</AngledriveType>
		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>true</OvcHev>
		<MaxChargingPower>11</MaxChargingPower>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<Components xsi:type="Components_HEV-Px_PrimaryBusType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>1</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference>
							<di:DigestMethod Algorithm=""/>
							<di:DigestValue/>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm=""/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm=""/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_PrimaryBusType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<AlternatorTechnology>conventional</AlternatorTechnology>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>100</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>50</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<Battery>
							<!-- optional -->
							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
							<RatedCapacity>50</RatedCapacity>
							<NominalVoltage>48</NominalVoltage>
						</Battery>
						<Capacitor>
							<!-- optional -->
							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
							<RatedCapacitance>120</RatedCapacitance>
							<RatedVoltage>30</RatedVoltage>
						</Capacitor>
						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
					</ElectricSystem>
					<PneumaticSystem>
						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
						<CompressorDrive>mechanically</CompressorDrive>
						<Clutch>none</Clutch>
						<CompressorRatio>1.000</CompressorRatio>
						<SmartCompressionSystem>true</SmartCompressionSystem>
						<SmartRegenerationSystem>false</SmartRegenerationSystem>
						<AirsuspensionControl>electronically</AirsuspensionControl>
						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
					</PneumaticSystem>
					<HVAC>
						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
					</HVAC>
				</Data>
			</Auxiliaries>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" 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:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4">
	<v2.0:Vehicle xsi:type="Vehicle_HEV-Px_PrimaryBusDeclarationType" id="a">
		<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>
		<LegislativeCategory>M3</LegislativeCategory>
		<ChassisConfiguration>Bus</ChassisConfiguration>
		<AxleConfiguration>4x2</AxleConfiguration>
		<Articulated>true</Articulated>
		<TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
		<IdlingSpeed>600</IdlingSpeed>
		<RetarderType>Losses included in Gearbox</RetarderType>
		<RetarderRatio>2.000</RetarderRatio>
		<AngledriveType>Separate Angledrive</AngledriveType>
		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
		<ArchitectureID>P2</ArchitectureID>
		<OvcHev>true</OvcHev>
		<MaxChargingPower>11</MaxChargingPower>
		<ADAS xsi:type="ADAS_HEV_Type">
			<EngineStopStart>true</EngineStopStart>
			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
		</ADAS>
		<Components xsi:type="Components_HEV-Px_PrimaryBusType">
			<Engine>
				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Engine</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>VectoEngine x.y</AppVersion>
					<Displacement>12730</Displacement>
					<IdlingSpeed>560</IdlingSpeed>
					<RatedSpeed>2200</RatedSpeed>
					<RatedPower>380000</RatedPower>
					<MaxEngineTorque>2300</MaxEngineTorque>
					<WHTCUrban>1.0097</WHTCUrban>
					<WHTCRural>1.0035</WHTCRural>
					<WHTCMotorway>1.0200</WHTCMotorway>
					<BFColdHot>1.0000</BFColdHot>
					<CFRegPer>1.0000</CFRegPer>
					<CFNCV>1.0000</CFNCV>
					<FuelType>NG</FuelType>
					<FuelConsumptionMap>
						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
					</FuelConsumptionMap>
					<FullLoadAndDragCurve>
						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
					</FullLoadAndDragCurve>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</Engine>
			<ElectricMachine>
				<PowertrainPosition>2</PowertrainPosition>
				<Count>1</Count>
				<ElectricMachineSystem>
					<v2.3:Data xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3">
						<Manufacturer>a</Manufacturer>
						<Model>a</Model>
						<CertificationNumber>token</CertificationNumber>
						<Date>2017-01-01T00:00:00Z</Date>
						<AppVersion>aaaaa</AppVersion>
						<ElectricMachineType>ASM</ElectricMachineType>
						<CertificationMethod>Measured</CertificationMethod>
						<R85RatedPower>50000</R85RatedPower>
						<RotationalInertia>0.10</RotationalInertia>
						<DcDcConverterIncluded>true</DcDcConverterIncluded>
						<IHPCType>None</IHPCType>
						<VoltageLevel>
							<Voltage>400</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<VoltageLevel>
							<Voltage>600</Voltage>
							<ContinuousTorque>200.00</ContinuousTorque>
							<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
							<OverloadTorque>400.00</OverloadTorque>
							<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
							<OverloadDuration>30.00</OverloadDuration>
							<MaxTorqueCurve>
								<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
								<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
							</MaxTorqueCurve>
							<PowerMap>
								<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
								<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
								<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
								<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
							</PowerMap>
						</VoltageLevel>
						<DragCurve>
							<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
							<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
						</DragCurve>
						<Conditioning>
							<Entry coolantTempInlet="30" coolingPower="5000"/>
						</Conditioning>
					</v2.3:Data>
					<v2.3:Signature>
						<di:Reference>
							<di:DigestMethod Algorithm=""/>
							<di:DigestValue/>
						</di:Reference>
					</v2.3:Signature>
				</ElectricMachineSystem>
				<P2.5GearRatios>
					<!-- only for P2.5 HEV -->
					<Ratio gear="1">1.000</Ratio>
					<Ratio gear="2">2.000</Ratio>
				</P2.5GearRatios>
			</ElectricMachine>
			<ElectricEnergyStorage>
				<Battery>
					<StringID>0</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm=""/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
					<SOCmin>20</SOCmin>
					<SOCmax>80</SOCmax>
				</Battery>
				<Battery>
					<StringID>1</StringID>
					<REESS>
						<v2.4:Data id="BAT-asdf" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" xsi:type="BatterySystemDataType">
							<Manufacturer>a</Manufacturer>
							<Model>a</Model>
							<CertificationNumber>token</CertificationNumber>
							<Date>2017-01-01T00:00:00Z</Date>
							<AppVersion>aaaaa</AppVersion>
							<CertificationMethod>Measured</CertificationMethod>
							<BatteryType>HPBS</BatteryType>
							<RatedCapacity>72.00</RatedCapacity>
							<ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
							<JunctionboxIncluded>true</JunctionboxIncluded>
							<TestingTemperature>20</TestingTemperature>
							<OCV>
								<Entry SoC="0" OCV="620.00"/>
								<Entry SoC="100" OCV="640.00"/>
							</OCV>
							<InternalResistance>
								<Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00"/>
								<Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00"/>
							</InternalResistance>
							<CurrentLimits>
								<Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00"/>
								<Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00"/>
							</CurrentLimits>
						</v2.4:Data>
						<Signature>
							<di:Reference>
								<di:DigestMethod Algorithm=""/>
								<di:DigestValue/>
							</di:Reference>
						</Signature>
					</REESS>
				</Battery>
			</ElectricEnergyStorage>
			<Gearbox>
				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck Gearbox</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<TransmissionType>AMT</TransmissionType>
					<MainCertificationMethod>Standard values</MainCertificationMethod>
					<Gears xsi:type="GearsDeclarationType">
						<Gear number="1">
							<Ratio>14.930</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
						<Gear number="2">
							<Ratio>11.640</Ratio>
							<MaxTorque>1900</MaxTorque>
							<MaxSpeed>2000</MaxSpeed>
							<TorqueLossMap>
								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
							</TorqueLossMap>
						</Gear>
					</Gears>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#gbx-vi2Oak2N">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Gearbox>
			<TorqueConverter>
				<!-- optional -->
				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
					<Manufacturer>Some Manufacturer</Manufacturer>
					<Model>Some Model</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-02-15T11:00:00Z</Date>
					<AppVersion>TC CalcApp 123</AppVersion>
					<CertificationMethod>Standard values</CertificationMethod>
					<Characteristics>
						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
					</Characteristics>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference>
						<di:DigestMethod Algorithm=""/>
						<di:DigestValue/>
					</di:Reference>
				</v2.0:Signature>
			</TorqueConverter>
			<Axlegear>
				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
					<Model>Generic 40t Long Haul Truck AxleGear</Model>
					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
					<Date>2017-01-11T11:00:00Z</Date>
					<AppVersion>3.0.1</AppVersion>
					<LineType>Single portal axle</LineType>
					<Ratio>2.590</Ratio>
					<CertificationMethod>Standard values</CertificationMethod>
					<TorqueLossMap>
						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
					</TorqueLossMap>
				</v2.0:Data>
				<v2.0:Signature>
					<di:Reference URI="#AXL-EC3ohnoh">
						<di:Transforms>
							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</di:Transforms>
						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
						<di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue>
					</di:Reference>
				</v2.0:Signature>
			</Axlegear>
			<AxleWheels>
				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
					<Axles>
						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleNonDriven</AxleType>
							<TwinTyres>false</TwinTyres>
							<Steered>true</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0055</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
							<AxleType>VehicleDriven</AxleType>
							<TwinTyres>true</TwinTyres>
							<Steered>false</Steered>
							<Tyre>
								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
									<Model>Generic Wheel</Model>
									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
									<Date>2017-01-11T14:00:00Z</Date>
									<AppVersion>Tyre Generation App 1.0</AppVersion>
									<Dimension>315/70 R22.5</Dimension>
									<RRCDeclared>0.0063</RRCDeclared>
									<FzISO>31300</FzISO>
								</Data>
								<Signature>
									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
										<di:Transforms>
											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
										</di:Transforms>
										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
										<di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue>
									</di:Reference>
								</Signature>
							</Tyre>
						</Axle>
					</Axles>
				</v2.0:Data>
			</AxleWheels>
			<Auxiliaries>
				<Data xsi:type="AUX_HEV-P_PrimaryBusType">
					<Fan>
						<Technology>Hydraulic driven - Constant displacement pump</Technology>
					</Fan>
					<SteeringPump>
						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
					</SteeringPump>
					<ElectricSystem>
						<AlternatorTechnology>conventional</AlternatorTechnology>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>100</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<SmartAlternator>
							<!-- optional -->
							<RatedCurrent>50</RatedCurrent>
							<RatedVoltage>48</RatedVoltage>
						</SmartAlternator>
						<Battery>
							<!-- optional -->
							<BatteryTechnology>li-ion battery - high power</BatteryTechnology>
							<RatedCapacity>50</RatedCapacity>
							<NominalVoltage>48</NominalVoltage>
						</Battery>
						<Capacitor>
							<!-- optional -->
							<CapacitorTechnology>with DCDC converter</CapacitorTechnology>
							<RatedCapacitance>120</RatedCapacitance>
							<RatedVoltage>30</RatedVoltage>
						</Capacitor>
						<SupplyFromHEVPossible>false</SupplyFromHEVPossible>
					</ElectricSystem>
					<PneumaticSystem>
						<SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
						<CompressorDrive>mechanically</CompressorDrive>
						<Clutch>none</Clutch>
						<CompressorRatio>1.000</CompressorRatio>
						<SmartCompressionSystem>true</SmartCompressionSystem>
						<SmartRegenerationSystem>false</SmartRegenerationSystem>
						<AirsuspensionControl>electronically</AirsuspensionControl>
						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
					</PneumaticSystem>
					<HVAC>
						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
						<EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
					</HVAC>
				</Data>
			</Auxiliaries>
		</Components>
	</v2.0:Vehicle>
</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml
index bd8d18634fd9b7ca451fbfac33843b56f4f77641..9152cedae3433e213d71aaf5797a9155d1bcb22f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_heavyLorry_n_opt.xml
@@ -23,8 +23,6 @@
 		<SleeperCab>true</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -38,7 +36,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
@@ -257,7 +255,7 @@
 			<Auxiliaries>
 				<Data xsi:type="AUX_IEPC_LorryDataType">
 					<SteeringPump>
-						<Technology axleNumber="1">Medium Supply 2-stage + elec. driven</Technology>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
 					</SteeringPump>
 					<ElectricSystem>
 						<Technology>Standard technology - LED headlights, all</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml
index 8e668fe88df09311314a0cd3542d12e3945c7351..882659b4e968850ba2f937943184a70f745034a4 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_mediumLorry_n_opt.xml
@@ -18,8 +18,6 @@
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -33,7 +31,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
@@ -252,7 +250,7 @@
 			<Auxiliaries>
 				<Data xsi:type="AUX_IEPC_LorryDataType">
 					<SteeringPump>
-						<Technology axleNumber="1">Vacuum pump + elec. driven</Technology>
+						<Technology axleNumber="1">Full electric steering gear</Technology>
 					</SteeringPump>
 					<ElectricSystem>
 						<Technology>Standard technology - LED headlights, all</Technology>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml
index d74b5bbcd386cfbdb1dba5f6bd35bd03427c3239..1f113942672b03a85595de9828dff0f96918d1ea 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/IEPC_primaryBus_n_opt.xml
@@ -16,8 +16,6 @@
 		<AngledriveType>Separate Angledrive</AngledriveType>
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -31,7 +29,7 @@
 					<AppVersion>aaaaa</AppVersion>
 					<ElectricMachineType>ASM</ElectricMachineType>
 					<CertificationMethod>Measured for complete component</CertificationMethod>
-					<R85RatedPower>1</R85RatedPower>
+					<R85RatedPower>50000</R85RatedPower>
 					<RotationalInertia>0.10</RotationalInertia>
 					<DifferentialIncluded>false</DifferentialIncluded>
 					<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
@@ -256,7 +254,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml
index 9faf3142103ec3a886468987f295643c9e57864a..8dc0b991998924977e131ad97ff6f5daa0840033 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_AMT_E2_n_opt.xml
@@ -24,8 +24,6 @@
 		<SleeperCab>true</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -42,7 +40,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml
index e55067566a7eb5923821fcdae20df3edd822e484..f03c2223ff9a13e5899b5a92fda5461bbb2263e7 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_APT-N_E2_n_opt.xml
@@ -22,7 +22,6 @@
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="v2.4:ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -39,7 +38,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml
index 5c9988dfddfb27cb9631dfaee5eee3f708b9771d..fbb049d5eaf0f0ea0478f2fbca4c6e55e36326b9 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E3_n_opt.xml
@@ -23,8 +23,6 @@
 		<SleeperCab>true</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -41,7 +39,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml
index 5a5b30ef66a385aae1f80580e481ca6f8cb677bf..25808af2d1ac6ee4223b28c293a781d676cd2b88 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_heavyLorry_E4_n_opt.xml
@@ -23,8 +23,6 @@
 		<SleeperCab>true</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -41,7 +39,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml
index 79173c8f65be96d7962850377b5d02d18d580f1a..afdfbcddfe3e8b120d9894634083325405ba7fae 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_AMT_E2_n_opt.xml
@@ -17,8 +17,6 @@
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -35,7 +33,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml
index 9bd1d71faa2817a7fe65617ab64701965d8915d2..4afad7609191aab1afeb2370e15d5d9d0c60a0b6 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_APT-N_E2_n_opt.xml
@@ -17,7 +17,6 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -34,7 +33,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml
index e9fa92d0e202c2561f84dd1cc25ae08a35a9601f..100ba06c35e7e0c57dd88358686da224356f16d3 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E3_n_opt.xml
@@ -17,8 +17,6 @@
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -35,7 +33,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml
index 3b1ce96b31290cecbda13d26fa32e38bd64a291b..5d4b14ebacd9380db15fba0c04c1102265b0c2c4 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_mediumLorry_E4_n_opt.xml
@@ -17,8 +17,6 @@
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="v2.4:ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -35,7 +33,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml
index c30eba3db3eb2a79bcfa98098cc51025079e1d9f..4452420c14a47ecad525083541b0e92a2a338602 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_AMT_E2_n_opt.xml
@@ -16,8 +16,6 @@
 		<AngledriveType>Separate Angledrive</AngledriveType>
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -34,7 +32,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -341,7 +339,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml
index 13dab62ca8a07af7e6e930c9f16cecb9fdf6d3a6..34074e65a66a36bc9ab43fd30a8a6f1a2532d03a 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E3_n_opt.xml
@@ -16,8 +16,6 @@
 		<AngledriveType>Separate Angledrive</AngledriveType>
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -34,7 +32,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -270,7 +268,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml
index bd887885c2f607420a45e82e4996f674703fe3eb..67cadc3b5714c94ef463cd7c06281fe454177d9a 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/WithoutOptionalEntries/PEV_primaryBus_E4_n_opt.xml
@@ -16,8 +16,6 @@
 		<AngledriveType>Separate Angledrive</AngledriveType>
 		<ZeroEmissionVehicle>true</ZeroEmissionVehicle>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>true</OvcHev>
-		<MaxChargingPower>11</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
@@ -34,7 +32,7 @@
 						<AppVersion>aaaaa</AppVersion>
 						<ElectricMachineType>ASM</ElectricMachineType>
 						<CertificationMethod>Measured</CertificationMethod>
-						<R85RatedPower>1</R85RatedPower>
+						<R85RatedPower>50000</R85RatedPower>
 						<RotationalInertia>0.10</RotationalInertia>
 						<DcDcConverterIncluded>true</DcDcConverterIncluded>
 						<IHPCType>None</IHPCType>
@@ -240,7 +238,6 @@
 						<CompressorDrive>electrically</CompressorDrive>
 						<SmartRegenerationSystem>false</SmartRegenerationSystem>
 						<AirsuspensionControl>electronically</AirsuspensionControl>
-						<PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
 					</PneumaticSystem>
 					<HVAC>
 						<AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/conventional_completed_bus.VIF_Report_3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/conventional_completed_bus.VIF_Report_3.xml
new file mode 100644
index 0000000000000000000000000000000000000000..779001dfcd5680126a28528c21d4ec5c5afea9dc
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/conventional_completed_bus.VIF_Report_3.xml
@@ -0,0 +1,702 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoOutputMultistage 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.10.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
+  <tns:PrimaryVehicle>
+    <Data id="VEH-287da6b1275749ac832d" 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>
+        <Model>Generic Model</Model>
+        <VIN>VEH-1234567890</VIN>
+        <Date>2017-02-15T11:00:00Z</Date>
+        <LegislativeCategory>M3</LegislativeCategory>
+        <ChassisConfiguration>Bus</ChassisConfiguration>
+        <AxleConfiguration>4x2</AxleConfiguration>
+        <Articulated>false</Articulated>
+        <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+        <IdlingSpeed>600</IdlingSpeed>
+        <RetarderType>Transmission Output Retarder</RetarderType>
+        <RetarderRatio>1.000</RetarderRatio>
+        <AngledriveType>None</AngledriveType>
+        <ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+        <tns:ADAS xsi:type="ADAS_Conventional_Type" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2">
+          <EngineStopStart>false</EngineStopStart>
+          <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+          <EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+          <PredictiveCruiseControl>none</PredictiveCruiseControl>
+        </tns:ADAS>
+        <tns:TorqueLimits xsi:type="TorqueLimitsType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+          <v2.0:Entry gear="6" maxTorque="1800" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" />
+          <v2.0:Entry gear="1" maxTorque="2500" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" />
+          <v2.0:Entry gear="12" maxTorque="1900" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" />
+        </tns:TorqueLimits>
+        <Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
+          <Engine>
+            <Data xsi:type="EngineDataVIFType">
+              <Manufacturer>Generic Engine Manufacturer</Manufacturer>
+              <Model>Generic 40t Long Haul Truck Engine</Model>
+              <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+              <Date>2017-02-15T11:00:00Z</Date>
+              <AppVersion>VectoEngine x.y</AppVersion>
+              <Displacement>12730</Displacement>
+              <RatedSpeed>2200</RatedSpeed>
+              <RatedPower>380000</RatedPower>
+              <MaxEngineTorque>2400</MaxEngineTorque>
+              <WHRType>
+                <v2.3:MechanicalOutputICE>false</v2.3:MechanicalOutputICE>
+                <v2.3:MechanicalOutputDrivetrain>false</v2.3:MechanicalOutputDrivetrain>
+                <v2.3:ElectricalOutput>false</v2.3:ElectricalOutput>
+              </WHRType>
+              <Mode>
+                <IdlingSpeed>560</IdlingSpeed>
+                <FullLoadAndDragCurve>
+                  <Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00" />
+                  <Entry engineSpeed="600.00" maxTorque="1282.00" dragTorque="-148.00" />
+                  <Entry engineSpeed="800.00" maxTorque="1791.00" dragTorque="-149.00" />
+                  <Entry engineSpeed="1000.00" maxTorque="2300.00" dragTorque="-160.00" />
+                  <Entry engineSpeed="1200.00" maxTorque="2300.00" dragTorque="-179.00" />
+                  <Entry engineSpeed="1400.00" maxTorque="2300.00" dragTorque="-203.00" />
+                  <Entry engineSpeed="1600.00" maxTorque="2079.00" dragTorque="-235.00" />
+                  <Entry engineSpeed="1800.00" maxTorque="1857.00" dragTorque="-264.00" />
+                  <Entry engineSpeed="2000.00" maxTorque="1352.00" dragTorque="-301.00" />
+                  <Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00" />
+                </FullLoadAndDragCurve>
+                <Fuels>
+                  <FuelType>NG CI</FuelType>
+                </Fuels>
+              </Mode>
+            </Data>
+          </Engine>
+          <Transmission>
+            <Data xsi:type="TransmissionDataVIFType">
+              <Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+              <Model>Generic 40t Long Haul Truck Gearbox</Model>
+              <MainCertificationMethod>Standard values</MainCertificationMethod>
+              <Date>2017-01-11T11:00:00Z</Date>
+              <AppVersion>3.0.1</AppVersion>
+              <TransmissionType>AMT</TransmissionType>
+              <Gears xsi:type="TransmissionGearsVIFType">
+                <Gear number="1">
+                  <Ratio>14.930</Ratio>
+                  <MaxTorque>1900</MaxTorque>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="2">
+                  <Ratio>11.640</Ratio>
+                  <MaxTorque>1900</MaxTorque>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="3">
+                  <Ratio>9.020</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="4">
+                  <Ratio>7.040</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="5">
+                  <Ratio>5.640</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="6">
+                  <Ratio>4.400</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="7">
+                  <Ratio>3.390</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="8">
+                  <Ratio>2.650</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="9">
+                  <Ratio>2.050</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="10">
+                  <Ratio>1.600</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="11">
+                  <Ratio>1.280</Ratio>
+                  <MaxSpeed>2000</MaxSpeed>
+                </Gear>
+                <Gear number="12">
+                  <Ratio>1.000</Ratio>
+                </Gear>
+              </Gears>
+            </Data>
+          </Transmission>
+          <Axlegear>
+            <Data xsi:type="AxlegearDataVIFType">
+              <Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+              <Model>Generic 40t Long Haul Truck AxleGear</Model>
+              <CertificationMethod>Standard values</CertificationMethod>
+              <Date>2017-01-11T11:00:00Z</Date>
+              <AppVersion>3.0.1</AppVersion>
+              <LineType>Single portal axle</LineType>
+              <Ratio>2.590</Ratio>
+            </Data>
+          </Axlegear>
+          <AxleWheels>
+            <Data xsi:type="AxleWheelsDataVIFType">
+              <Axles>
+                <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
+                  <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
+                  <v2.0:TwinTyres>false</v2.0:TwinTyres>
+                  <v2.0:Steered>true</v2.0:Steered>
+                  <v2.0:Tyre>
+                    <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="v2.0:TyreDataDeclarationType">
+                      <v2.0:Manufacturer>Generic Wheels Manufacturer</v2.0:Manufacturer>
+                      <v2.0:Model>Generic Wheel</v2.0:Model>
+                      <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+                      <v2.0:Date>2017-01-11T14:00:00Z</v2.0:Date>
+                      <v2.0:AppVersion>Tyre Generation App 1.0</v2.0:AppVersion>
+                      <v2.0:Dimension>315/70 R22.5</v2.0:Dimension>
+                      <v2.0:RRCDeclared>0.0055</v2.0:RRCDeclared>
+                      <v2.0:FzISO>31300</v2.0:FzISO>
+                    </v2.0:Data>
+                    <v2.0:Signature>
+                      <di:Reference URI="#WHL-5432198760-315-70-R22.5" xmlns:di="http://www.w3.org/2000/09/xmldsig#">
+                        <di:Transforms>
+                          <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+                          <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+                        </di:Transforms>
+                        <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+                        <di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue>
+                      </di:Reference>
+                    </v2.0:Signature>
+                  </v2.0:Tyre>
+                </Axle>
+                <Axle axleNumber="2" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
+                  <v2.0:AxleType>VehicleDriven</v2.0:AxleType>
+                  <v2.0:TwinTyres>true</v2.0:TwinTyres>
+                  <v2.0:Steered>false</v2.0:Steered>
+                  <v2.0:Tyre>
+                    <v2.0:Data id="WHL-5432198760-315-70-R22.5" xsi:type="v2.0:TyreDataDeclarationType">
+                      <v2.0:Manufacturer>Generic Wheels Manufacturer</v2.0:Manufacturer>
+                      <v2.0:Model>Generic Wheel</v2.0:Model>
+                      <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber>
+                      <v2.0:Date>2017-01-11T14:00:00Z</v2.0:Date>
+                      <v2.0:AppVersion>Tyre Generation App 1.0</v2.0:AppVersion>
+                      <v2.0:Dimension>315/70 R22.5</v2.0:Dimension>
+                      <v2.0:RRCDeclared>0.0063</v2.0:RRCDeclared>
+                      <v2.0:FzISO>31300</v2.0:FzISO>
+                    </v2.0:Data>
+                    <v2.0:Signature>
+                      <di:Reference URI="#WHL-5432198760-315-70-R22.5" xmlns:di="http://www.w3.org/2000/09/xmldsig#">
+                        <di:Transforms>
+                          <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+                          <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+                        </di:Transforms>
+                        <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+                        <di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue>
+                      </di:Reference>
+                    </v2.0:Signature>
+                  </v2.0:Tyre>
+                </Axle>
+              </Axles>
+            </Data>
+          </AxleWheels>
+          <Auxiliaries>
+            <Data xsi:type="AuxiliaryDataVIFType">
+              <Fan>
+                <Technology>Hydraulic driven - Constant displacement pump</Technology>
+              </Fan>
+              <SteeringPump>
+                <Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+              </SteeringPump>
+              <ElectricSystem>
+                <AlternatorTechnology>conventional</AlternatorTechnology>
+              </ElectricSystem>
+              <PneumaticSystem>
+                <SizeOfAirSupply>Large Supply 2-stage</SizeOfAirSupply>
+                <CompressorDrive>electrically</CompressorDrive>
+                <Clutch>none</Clutch>
+                <CompressorRatio>1.000</CompressorRatio>
+                <SmartCompressionSystem>false</SmartCompressionSystem>
+                <SmartRegenerationSystem>false</SmartRegenerationSystem>
+                <AirsuspensionControl>electronically</AirsuspensionControl>
+                <PneumaticSCRReagentDosing>true</PneumaticSCRReagentDosing>
+              </PneumaticSystem>
+              <HVAC>
+                <AdjustableCoolantThermostat>true</AdjustableCoolantThermostat>
+                <EngineWasteGasHeatExchanger>true</EngineWasteGasHeatExchanger>
+              </HVAC>
+            </Data>
+          </Auxiliaries>
+        </Components>
+      </Vehicle>
+      <InputDataSignature>
+        <di:Reference URI="#VEH-1234567890">
+          <di:Transforms>
+            <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+            <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+          </di:Transforms>
+          <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+          <di:DigestValue>8uY4dWDsEyozlZhzV8X7Fq1tavvoBIXiCn8oAUcsjVw=</di:DigestValue>
+        </di:Reference>
+      </InputDataSignature>
+      <ManufacturerRecordSignature>
+        <di:Reference URI="#RESULT-4b16ccbbf7954e00b62f">
+          <di:Transforms>
+            <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+            <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+          </di:Transforms>
+          <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+          <di:DigestValue>a/pzFL7U/6tarrWBJcjp09y/FrZjBpUDX/uDhMTOoM4=</di:DigestValue>
+        </di:Reference>
+      </ManufacturerRecordSignature>
+      <Results>
+        <Status>success</Status>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Heavy Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
+            <Payload unit="kg">1123.63</Payload>
+            <PassengerCount>16.52</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">19.71467</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">1104.84</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Heavy Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
+            <Payload unit="kg">5618.16</Payload>
+            <PassengerCount>82.62</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">23.22512</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">1301.57</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
+            <Payload unit="kg">1123.63</Payload>
+            <PassengerCount>16.52</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">15.45965</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">866.38</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
+            <Payload unit="kg">5618.16</Payload>
+            <PassengerCount>82.62</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">18.39275</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">1030.76</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Suburban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
+            <Payload unit="kg">1123.63</Payload>
+            <PassengerCount>16.52</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">13.17582</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">738.40</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Suburban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
+            <Payload unit="kg">5618.16</Payload>
+            <PassengerCount>82.62</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">16.00192</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">896.77</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Interurban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13050.44</TotalVehicleMass>
+            <Payload unit="kg">1075.44</Payload>
+            <PassengerCount>15.15</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">11.11672</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">623.00</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31SD</VehicleGroup>
+          <Mission>Interurban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">15494.61</TotalVehicleMass>
+            <Payload unit="kg">3519.61</Payload>
+            <PassengerCount>49.57</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">12.34809</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">692.01</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31DD</VehicleGroup>
+          <Mission>Heavy Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
+            <Payload unit="kg">1193.34</Payload>
+            <PassengerCount>17.55</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">1160.65</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31DD</VehicleGroup>
+          <Mission>Heavy Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
+            <Payload unit="kg">5966.69</Payload>
+            <PassengerCount>87.75</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">24.68655</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">1383.48</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31DD</VehicleGroup>
+          <Mission>Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
+            <Payload unit="kg">1193.34</Payload>
+            <PassengerCount>17.55</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">16.25928</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">911.20</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31DD</VehicleGroup>
+          <Mission>Urban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
+            <Payload unit="kg">5966.69</Payload>
+            <PassengerCount>87.75</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">19.58479</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">1097.56</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31DD</VehicleGroup>
+          <Mission>Suburban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
+            <Payload unit="kg">1193.34</Payload>
+            <PassengerCount>17.55</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">13.83088</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">775.11</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P31DD</VehicleGroup>
+          <Mission>Suburban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
+            <Payload unit="kg">5966.69</Payload>
+            <PassengerCount>87.75</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">17.02489</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">954.10</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32SD</VehicleGroup>
+          <Mission>Interurban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">14225.44</TotalVehicleMass>
+            <Payload unit="kg">1075.44</Payload>
+            <PassengerCount>15.15</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">11.30640</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">633.63</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32SD</VehicleGroup>
+          <Mission>Interurban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">16669.61</TotalVehicleMass>
+            <Payload unit="kg">3519.61</Payload>
+            <PassengerCount>49.57</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">12.56427</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">704.12</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32SD</VehicleGroup>
+          <Mission>Coach</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">14244.99</TotalVehicleMass>
+            <Payload unit="kg">1094.99</Payload>
+            <PassengerCount>15.42</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">8.73159</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">489.33</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32SD</VehicleGroup>
+          <Mission>Coach</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">15887.48</TotalVehicleMass>
+            <Payload unit="kg">2737.48</Payload>
+            <PassengerCount>38.56</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">9.18847</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">514.94</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32DD</VehicleGroup>
+          <Mission>Interurban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">14662.82</TotalVehicleMass>
+            <Payload unit="kg">1262.82</Payload>
+            <PassengerCount>17.79</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">11.67569</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">654.33</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32DD</VehicleGroup>
+          <Mission>Interurban</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">17609.41</TotalVehicleMass>
+            <Payload unit="kg">4209.41</Payload>
+            <PassengerCount>59.29</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">13.23582</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">741.76</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32DD</VehicleGroup>
+          <Mission>Coach</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">14747.01</TotalVehicleMass>
+            <Payload unit="kg">1347.01</Payload>
+            <PassengerCount>18.97</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">9.18672</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">514.84</CO2>
+        </Result>
+        <Result status="success">
+          <VehicleGroup>P32DD</VehicleGroup>
+          <Mission>Coach</Mission>
+          <SimulationParameters>
+            <TotalVehicleMass unit="kg">16767.53</TotalVehicleMass>
+            <Payload unit="kg">3367.53</Payload>
+            <PassengerCount>47.43</PassengerCount>
+            <FuelMode>single fuel mode</FuelMode>
+          </SimulationParameters>
+          <Fuel type="NG CI">
+            <EnergyConsumption unit="MJ/km">9.74629</EnergyConsumption>
+          </Fuel>
+          <CO2 unit="g/km">546.20</CO2>
+        </Result>
+      </Results>
+      <ApplicationInformation>
+        <SimulationToolVersion>0.7.5.2380-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion>
+        <Date>2022-01-19T08:51:05.447084Z</Date>
+      </ApplicationInformation>
+    </Data>
+    <tns:Signature>
+      <di:Reference URI="#VEH-287da6b1275749ac832d">
+        <di:Transforms>
+          <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+          <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+        </di:Transforms>
+        <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+        <di:DigestValue>pw5MvbQPD1gZvBmbrCkia7fU0KNCs2mDRf0iMJ2ozT4=</di:DigestValue>
+      </di:Reference>
+    </tns:Signature>
+  </tns:PrimaryVehicle>
+  <tns:ManufacturingStage stageCount="2">
+    <Data xsi:type="BusManufacturingStageDataType" id="MST-31c5c8eee8384019b5c6" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
+      <HashPreviousStage>
+        <di:Reference URI="#VEH-287da6b1275749ac832d">
+          <di:Transforms>
+            <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+            <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+          </di:Transforms>
+          <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+          <di:DigestValue>pw5MvbQPD1gZvBmbrCkia7fU0KNCs2mDRf0iMJ2ozT4=</di:DigestValue>
+        </di:Reference>
+      </HashPreviousStage>
+      <tns:Vehicle xsi:type="Vehicle_Conventional_CompletedBusDeclarationType" id="VEH-48bd60d263ab40b19387" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2">
+        <Manufacturer>aaa</Manufacturer>
+        <ManufacturerAddress>aaaa</ManufacturerAddress>
+        <VIN>123456789</VIN>
+        <Date>2022-01-18T23:00:00Z</Date>
+        <Model>Model1</Model>
+        <LegislativeCategory>M3</LegislativeCategory>
+        <CorrectedActualMass>3500</CorrectedActualMass>
+        <TechnicalPermissibleMaximumLadenMass>25000</TechnicalPermissibleMaximumLadenMass>
+        <ClassBus>II+III</ClassBus>
+        <NgTankSystem>Liquefied</NgTankSystem>
+        <NumberPassengerSeatsLowerDeck>14</NumberPassengerSeatsLowerDeck>
+        <NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck>
+        <NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck>
+        <NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck>
+        <BodyworkCode>CC</BodyworkCode>
+        <LowEntry>true</LowEntry>
+        <HeightIntegratedBody>1560</HeightIntegratedBody>
+        <VehicleLength>3000</VehicleLength>
+        <VehicleWidth>2000</VehicleWidth>
+        <EntranceHeight>100</EntranceHeight>
+        <DoorDriveTechnology>electric</DoorDriveTechnology>
+        <VehicleDeclarationType>interim</VehicleDeclarationType>
+        <VehicleTypeApprovalNumber>12345678</VehicleTypeApprovalNumber>
+        <ADAS xsi:type="ADAS_Conventional_Type">
+          <EngineStopStart>false</EngineStopStart>
+          <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+          <EcoRollWithEngineStop>false</EcoRollWithEngineStop>
+          <PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+          <APTEcoRollReleaseLockupClutch>false</APTEcoRollReleaseLockupClutch>
+        </ADAS>
+        <Components xsi:type="Components_Conventional_CompletedBusType">
+          <Auxiliaries>
+            <Data xsi:type="AUX_Conventional_CompletedBusType">
+              <ElectricSystem>
+                <LEDLights>
+                  <Interiorlights>false</Interiorlights>
+                  <Dayrunninglights>false</Dayrunninglights>
+                  <Positionlights>true</Positionlights>
+                  <Brakelights>false</Brakelights>
+                  <Headlights>false</Headlights>
+                </LEDLights>
+              </ElectricSystem>
+              <HVAC>
+                <SystemConfiguration>2</SystemConfiguration>
+                <HeatPumpTypeDriverCompartment>
+                  <Cooling>non R-744 2-stage</Cooling>
+                  <Heating>non R-744 2-stage</Heating>
+                </HeatPumpTypeDriverCompartment>
+                <HeatPumpTypePassengerCompartment>
+                  <Cooling>non R-744 3-stage</Cooling>
+                  <Heating>non R-744 3-stage</Heating>
+                </HeatPumpTypePassengerCompartment>
+                <AuxiliaryHeaterPower>1000</AuxiliaryHeaterPower>
+                <DoubleGlazing>false</DoubleGlazing>
+                <AdjustableAuxiliaryHeater>false</AdjustableAuxiliaryHeater>
+                <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts>
+              </HVAC>
+            </Data>
+          </Auxiliaries>
+        </Components>
+      </tns:Vehicle>
+      <ApplicationInformation>
+        <SimulationToolVersion>0.7.5.2380-DEV</SimulationToolVersion>
+        <Date>2022-01-19T08:55:47.1061162Z</Date>
+      </ApplicationInformation>
+    </Data>
+    <tns:Signature>
+      <di:Reference URI="#MST-31c5c8eee8384019b5c6">
+        <di:Transforms>
+          <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+          <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+        </di:Transforms>
+        <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+        <di:DigestValue>YaObqSLKRyG/xDvQ0DvUWMLurVr7gxObFw5TZ95J71o=</di:DigestValue>
+      </di:Reference>
+    </tns:Signature>
+  </tns:ManufacturingStage>
+  <tns:ManufacturingStage stageCount="3">
+    <Data xsi:type="BusManufacturingStageDataType" id="MST-66a6244b593b4b73ba45" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
+      <HashPreviousStage>
+        <di:Reference URI="#MST-31c5c8eee8384019b5c6">
+          <di:Transforms>
+            <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+            <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+          </di:Transforms>
+          <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+          <di:DigestValue>YaObqSLKRyG/xDvQ0DvUWMLurVr7gxObFw5TZ95J71o=</di:DigestValue>
+        </di:Reference>
+      </HashPreviousStage>
+      <tns:Vehicle xsi:type="Vehicle_Conventional_CompletedBusDeclarationType" id="VEH-afaecc21a42f4cc79d58" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2">
+        <Manufacturer>bbbb</Manufacturer>
+        <ManufacturerAddress>bbb</ManufacturerAddress>
+        <VIN>assssss</VIN>
+        <Date>2022-01-18T23:00:00Z</Date>
+        <VehicleDeclarationType>final</VehicleDeclarationType>
+      </tns:Vehicle>
+      <ApplicationInformation>
+        <SimulationToolVersion>0.7.5.2380-DEV</SimulationToolVersion>
+        <Date>2022-01-19T08:56:27.8435294Z</Date>
+      </ApplicationInformation>
+    </Data>
+    <tns:Signature>
+      <di:Reference URI="#MST-66a6244b593b4b73ba45">
+        <di:Transforms>
+          <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
+          <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+        </di:Transforms>
+        <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
+        <di:DigestValue>XkonpptkzWTFQbkkKkmNawd6zl/iPUaJfhzUDlvrNiE=</di:DigestValue>
+      </di:Reference>
+    </tns:Signature>
+  </tns:ManufacturingStage>
+</tns:VectoOutputMultistage>
\ No newline at end of file
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 ac99245ae39617d7a7b4a484fb46ca6005a85cdd..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>
@@ -86,7 +86,7 @@
         <BodyworkCode>CE</BodyworkCode>
         <LowEntry>true</LowEntry>
         <HeightIntegratedBody>2000</HeightIntegratedBody>
-      </vif0.1:Vehicle>
+	</vif0.1:Vehicle>
       <ApplicationInformation>
         <SimulationToolVersion>0.7.5.2380-DEV</SimulationToolVersion>
         <Date>2021-08-24T09:29:02.5917498Z</Date>
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 c05751b10f15f84dea6532b141d717b2ff5ff9cf..03a7ba470d4845c7a936b8606794c981b02e3cc6 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 8c6780476508c0f76b89a2e62393c83ef4de4dd5..da9f3c666adc260d549935a7f87d7f40095e310b 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -78,7 +78,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -86,7 +86,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -140,7 +140,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -155,7 +155,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -166,7 +166,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -178,7 +178,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -265,7 +265,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -317,7 +317,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -328,10 +328,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -342,10 +341,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -356,10 +354,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -370,10 +367,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -384,10 +380,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -398,10 +393,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -412,10 +406,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -426,10 +419,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -440,10 +432,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -454,10 +445,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -468,10 +458,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -482,10 +471,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -496,10 +484,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -510,10 +497,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -524,10 +510,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -538,10 +523,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -552,10 +536,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -566,10 +549,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -580,10 +562,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -594,10 +575,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -608,10 +588,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -622,7 +601,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -631,7 +609,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -644,7 +622,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 558a14bba8d743e37f34a892a94fdda477847069..7a5e4c74001178c92f737ae70cb27ece6947e123 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 d2173a5bc555e4de2827baa3faf7846cb2124cdc..bf29b3f750dd84fade436eae75488f8d47777942 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 3cd8d425981460fc1397bc5ecb452f45ba95ce34..e25c4ac5ecfa29afe750a0c3dd4a85dd6bd51514 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 cc86208f242838f8e4feb89f6cb8528cd9f2a2f1..01aece6ca7db482c73c394147c344a1bcd95c9d9 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 bc03e50212bc45a042ed350c8635eca6d5660368..ee349909db66391ee95f497152561b5a666fc59a 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels >
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 a0f342417a135fab931debfea70a34f36f004f4b..c45a370997de9a7bacbf8dca78ea15c3acab4ca5 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 841720ef6ac519c3a045f5b27c454b876cf682a4..2776075bc28f99828e8f0450da7a4e7c95f15d13 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
@@ -8,9 +8,9 @@ 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" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
   <PrimaryVehicle>
     <Data id="VEH-622a60d3b3cf4340a362" xsi:type="PrimaryVehicleDataType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1">
-      <Vehicle xsi:type="VehiclePIFType">
-        <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-        <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+      <Vehicle xsi:type="ConventionalVehicleVIFType">
+        <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>
@@ -35,9 +35,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <v2.0:Entry gear="1" maxTorque="2500" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" />
           <v2.0:Entry gear="12" maxTorque="1900" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" />
         </vif0.1:TorqueLimits>
-        <Components xsi:type="VehicleComponentsPIFType">
+        <Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
           <Engine>
-            <Data xsi:type="EngineDataPIFType">
+            <Data xsi:type="EngineDataVIFType">
               <Manufacturer>Generic Engine Manufacturer</Manufacturer>
               <Model>Generic 40t Long Haul Truck Engine</Model>
               <CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -48,9 +48,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
               <RatedPower>380000</RatedPower>
               <MaxEngineTorque>2400</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>560</IdlingSpeed>
@@ -73,14 +73,14 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
             </Data>
           </Engine>
           <Transmission>
-            <Data xsi:type="TransmissionDataPIFType">
+            <Data xsi:type="TransmissionDataVIFType">
               <Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
               <Model>Generic 40t Long Haul Truck Gearbox</Model>
               <MainCertificationMethod>Standard values</MainCertificationMethod>
               <Date>2017-01-11T11:00:00Z</Date>
               <AppVersion>3.0.1</AppVersion>
               <TransmissionType>AMT</TransmissionType>
-              <Gears xsi:type="TransmissionGearsPIFType">
+              <Gears xsi:type="TransmissionGearsVIFType">
                 <Gear number="1">
                   <Ratio>14.930</Ratio>
                   <MaxTorque>1900</MaxTorque>
@@ -134,7 +134,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
             </Data>
           </Transmission>
           <Axlegear>
-            <Data xsi:type="AxlegearDataPIFType">
+            <Data xsi:type="AxlegearDataVIFType">
               <Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
               <Model>Generic 40t Long Haul Truck AxleGear</Model>
               <CertificationMethod>Standard values</CertificationMethod>
@@ -145,7 +145,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
             </Data>
           </Axlegear>
           <AxleWheels>
-            <Data xsi:type="AxleWheelsDataPIFType">
+            <Data xsi:type="AxleWheelsDataVIFType">
               <Axles>
                 <Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
                   <v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -205,7 +205,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
             </Data>
           </AxleWheels>
           <Auxiliaries>
-            <Data xsi:type="AuxiliaryDataPIFType">
+            <Data xsi:type="AUX_Conventional_PrimaryBusType">
               <Fan>
                 <Technology>Hydraulic driven - Constant displacement pump</Technology>
               </Fan>
@@ -256,7 +256,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
       <Results>
         <Status>success</Status>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Heavy Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
@@ -267,10 +267,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">19.71467</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">1104.84</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Heavy Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
@@ -281,10 +280,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">23.22512</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">1301.57</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
@@ -295,10 +293,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">15.45965</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">866.38</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
@@ -309,10 +306,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">18.39275</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">1030.76</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Suburban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
@@ -323,10 +319,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">13.17582</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">738.40</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Suburban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
@@ -337,10 +332,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">16.00192</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">896.77</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Interurban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13050.44</TotalVehicleMass>
@@ -351,10 +345,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">11.11672</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">623.00</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
           <Mission>Interurban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">15494.61</TotalVehicleMass>
@@ -365,10 +358,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">12.34809</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">692.01</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
           <Mission>Heavy Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
@@ -379,10 +371,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">1160.65</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
           <Mission>Heavy Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
@@ -393,10 +384,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">24.68655</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">1383.48</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
           <Mission>Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
@@ -407,10 +397,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">16.25928</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">911.20</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
           <Mission>Urban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
@@ -421,10 +410,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">19.58479</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">1097.56</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
           <Mission>Suburban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
@@ -435,10 +423,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">13.83088</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">775.11</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P31DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
           <Mission>Suburban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
@@ -449,10 +436,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">17.02489</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">954.10</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
           <Mission>Interurban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">14225.44</TotalVehicleMass>
@@ -463,10 +449,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">11.30640</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">633.63</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
           <Mission>Interurban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">16669.61</TotalVehicleMass>
@@ -477,10 +462,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">12.56427</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">704.12</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
           <Mission>Coach</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">14244.99</TotalVehicleMass>
@@ -491,10 +475,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">8.73159</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">489.33</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32SD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
           <Mission>Coach</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">15887.48</TotalVehicleMass>
@@ -505,10 +488,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">9.18847</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">514.94</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
           <Mission>Interurban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">14662.82</TotalVehicleMass>
@@ -519,10 +501,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">11.67569</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">654.33</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
           <Mission>Interurban</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">17609.41</TotalVehicleMass>
@@ -533,10 +514,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">13.23582</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">741.76</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
           <Mission>Coach</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">14747.01</TotalVehicleMass>
@@ -547,10 +527,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">9.18672</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">514.84</CO2>
         </Result>
         <Result status="success">
-          <VehicleGroup>P32DD</VehicleGroup>
+          <PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
           <Mission>Coach</Mission>
           <SimulationParameters>
             <TotalVehicleMass unit="kg">16767.53</TotalVehicleMass>
@@ -561,7 +540,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
           <Fuel type="NG CI">
             <EnergyConsumption unit="MJ/km">9.74629</EnergyConsumption>
           </Fuel>
-          <CO2 unit="g/km">546.20</CO2>
         </Result>
       </Results>
       <ApplicationInformation>
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 7aa3d38fbe6ce4acce962eb218d79a371baa8214..1f414754425db20bbb8efe1ba985a16cd986e8e2 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -330,7 +330,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -341,10 +341,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -355,10 +354,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -369,10 +367,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -383,10 +380,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -397,10 +393,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -411,10 +406,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -425,10 +419,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -439,10 +432,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -453,10 +445,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -467,10 +458,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -481,10 +471,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -495,10 +484,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -509,10 +497,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -523,10 +510,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -537,10 +523,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -551,10 +536,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -565,10 +549,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -579,10 +562,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -593,10 +575,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -607,10 +588,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -621,10 +601,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -635,7 +614,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -644,7 +622,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 22f99e3cd63fed7b699ae186af47573cc3bca2cf..d34bfcf00384e5d81586bc65709d98361b4b099e 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
@@ -10,9 +10,9 @@ 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>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -38,9 +38,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -76,7 +76,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -84,7 +84,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -138,7 +138,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -153,7 +153,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -164,7 +164,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -176,7 +176,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -263,7 +263,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -315,7 +315,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -326,10 +326,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -340,10 +339,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -354,10 +352,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -368,10 +365,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -382,10 +378,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -396,10 +391,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -410,10 +404,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -424,10 +417,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -438,10 +430,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -452,10 +443,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -466,10 +456,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -480,10 +469,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -494,10 +482,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -508,10 +495,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -522,10 +508,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -536,10 +521,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -550,10 +534,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -564,10 +547,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -578,10 +560,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -592,10 +573,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -606,10 +586,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -620,7 +599,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -629,7 +607,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -642,7 +620,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 53e56e8b8f3823973131160dd4869fb092641255..6f9fd5e8818736df9c407402c4bc1ca44a7ad4ec 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -38,9 +38,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="6" maxTorque="1800"/>
 					<tcl:Entry gear="1" maxTorque="2500"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Generic primary bus 41 Engine</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -78,14 +78,14 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 						<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 						<Model>AT 6 Gear</Model>
 						<MainCertificationMethod>Standard values</MainCertificationMethod>
 						<Date>2017-01-11T11:00:00Z</Date>
 						<AppVersion>3.0.1</AppVersion>
 						<TransmissionType>APT-S</TransmissionType>
-						<Gears xsi:type="TransmissionGearsPIFType">
+						<Gears xsi:type="TransmissionGearsVIFType">
 						  <Gear number="1">
 							<Ratio>3.364</Ratio>
 							<MaxTorque>1900</MaxTorque>
@@ -116,7 +116,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic primary bus 41 AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -127,7 +127,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -187,7 +187,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -250,7 +250,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 			  <Status>success</Status>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Heavy Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
@@ -261,10 +261,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">20.73851</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1520.18</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Heavy Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
@@ -275,10 +274,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">24.94611</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1828.60</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
@@ -289,10 +287,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">16.93598</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1241.44</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
@@ -303,10 +300,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">20.36950</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1493.13</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Suburban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">13098.63</TotalVehicleMass>
@@ -317,10 +313,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">15.03487</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1102.09</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Suburban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">17593.16</TotalVehicleMass>
@@ -331,10 +326,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">18.14589</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1330.13</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Interurban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">12854.90</TotalVehicleMass>
@@ -345,10 +339,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">12.90679</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">946.09</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31SD</PrimaryVehicleSubgroup>
 				<Mission>Interurban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">15494.61</TotalVehicleMass>
@@ -359,10 +352,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">14.34621</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1051.61</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
 				<Mission>Heavy Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
@@ -373,10 +365,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">21.81903</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1599.38</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
 				<Mission>Heavy Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
@@ -387,10 +378,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">26.59833</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1949.71</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
 				<Mission>Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
@@ -401,10 +391,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">17.82311</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1306.47</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
 				<Mission>Urban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
@@ -415,10 +404,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">21.69768</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1590.49</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
 				<Mission>Suburban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">13543.34</TotalVehicleMass>
@@ -429,10 +417,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">15.74932</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1154.46</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P31DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P31DD</PrimaryVehicleSubgroup>
 				<Mission>Suburban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">18316.69</TotalVehicleMass>
@@ -443,10 +430,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">19.17775</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1405.77</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
 				<Mission>Interurban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">14225.44</TotalVehicleMass>
@@ -457,10 +443,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">13.19757</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">967.41</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
 				<Mission>Interurban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">16669.61</TotalVehicleMass>
@@ -471,10 +456,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">14.54412</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1066.11</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
 				<Mission>Coach</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">14244.99</TotalVehicleMass>
@@ -485,10 +469,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">11.13867</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">816.49</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32SD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32SD</PrimaryVehicleSubgroup>
 				<Mission>Coach</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">15887.48</TotalVehicleMass>
@@ -499,10 +482,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">11.58643</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">849.31</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
 				<Mission>Interurban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">14662.82</TotalVehicleMass>
@@ -513,10 +495,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">13.62230</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">998.54</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
 				<Mission>Interurban</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">17609.41</TotalVehicleMass>
@@ -527,10 +508,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">15.22020</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">1115.67</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
 				<Mission>Coach</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">14747.01</TotalVehicleMass>
@@ -541,10 +521,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">11.61807</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">851.63</CO2>
 			  </Result>
 			  <Result status="success">
-				<VehicleGroup>P32DD</VehicleGroup>
+				<PrimaryVehicleSubgroup>P32DD</PrimaryVehicleSubgroup>
 				<Mission>Coach</Mission>
 				<SimulationParameters>
 				  <TotalVehicleMass unit="kg">16767.53</TotalVehicleMass>
@@ -555,7 +534,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 				<Fuel type="Diesel CI">
 				  <EnergyConsumption unit="MJ/km">12.15012</EnergyConsumption>
 				</Fuel>
-				<CO2 unit="g/km">890.63</CO2>
 			  </Result>
 			</Results>
 			<ApplicationInformation>
@@ -564,7 +542,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -577,7 +555,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 586c608eb4d46140fe6ad025fb6556f327cc33fb..f6f605cabb6941f10b77e5f3e55d13fbd209db68 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels>
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d11aff76c5d149948046">
+			<di:Reference URI="#VIF-d11aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
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 092cda1172d7539b1006774b00db7c48380b08d5..bdfe494846eeac09700d147f84b6757967d23586 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
@@ -11,9 +11,9 @@ xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"
 xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 v:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistep.0.1.xsd">
 	<PrimaryVehicle>
 		<Data id="text" xsi:type="PrimaryVehicleDataType">
-			<Vehicle xsi:type="VehiclePIFType">
-				<ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle>
-				<ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle>
+			<Vehicle xsi:type="ConventionalVehicleVIFType">
+				<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>
@@ -39,9 +39,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<tcl:Entry gear="1" maxTorque="2500"/>
 					<tcl:Entry gear="12" maxTorque="1900"/>
 				</TorqueLimits>
-				<Components xsi:type="VehicleComponentsPIFType">
+				<Components xsi:type="Vehicle_Conventional_ComponentsVIFType">
 					<Engine>
-						<Data xsi:type="EngineDataPIFType">
+						<Data xsi:type="EngineDataVIFType">
 							<Manufacturer>Generic Engine Manufacturer</Manufacturer>
 							<Model>Bus 6x2</Model>
 							<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
@@ -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>
@@ -77,7 +77,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Engine>
 					<Transmission>
-						<Data xsi:type="TransmissionDataPIFType">
+						<Data xsi:type="TransmissionDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck Gearbox</Model>
 							<MainCertificationMethod>Standard values</MainCertificationMethod>
@@ -85,7 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 							<Date>2017-01-11T11:00:00Z</Date>
 							<AppVersion>3.0.1</AppVersion>
 							<TransmissionType>AMT</TransmissionType>
-							<Gears xsi:type="TransmissionGearsPIFType">
+							<Gears xsi:type="TransmissionGearsVIFType">
 								<Gear number="1">
 									<Ratio>14.930</Ratio>
 									<MaxTorque>1900</MaxTorque>
@@ -139,7 +139,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Transmission>
 					<TorqueConverter>
-						<Data xsi:type="TorqueConverterDataPIFType">
+						<Data xsi:type="TorqueConverterDataVIFType">
 							<Manufacturer>Generic Torque Converter</Manufacturer>
 							<Model>Generic Torque Converter Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -154,7 +154,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</TorqueConverter>
 					<Angledrive>
-						<Data xsi:type="AngledriveDataPIFType">
+						<Data xsi:type="AngledriveDataVIFType">
 							<Manufacturer>Generic Angledrive</Manufacturer>
 							<Model>Generic Angledrive Model</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -165,7 +165,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Angledrive>
 					<Axlegear>
-						<Data xsi:type="AxlegearDataPIFType">
+						<Data xsi:type="AxlegearDataVIFType">
 							<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
 							<Model>Generic 40t Long Haul Truck AxleGear</Model>
 							<CertificationMethod>Standard values</CertificationMethod>
@@ -177,7 +177,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</Axlegear>
 					<AxleWheels >
-						<Data xsi:type="AxleWheelsDataPIFType">
+						<Data xsi:type="AxleWheelsDataVIFType">
 							<Axles>
 								<Axle axleNumber="1" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:AxleDataDeclarationType">
 									<v2.0:AxleType>VehicleNonDriven</v2.0:AxleType>
@@ -264,7 +264,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 						</Data>
 					</AxleWheels>
 					<Auxiliaries>
-						<Data xsi:type="AuxiliaryDataPIFType">
+						<Data xsi:type="AUX_Conventional_PrimaryBusType">
 							<Fan>
 								<Technology>Hydraulic driven - Constant displacement pump</Technology>
 							</Fan>
@@ -316,7 +316,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			<Results>
 				<Status>success</Status>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -327,10 +327,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">21.22359</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1555.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -341,10 +340,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">25.40945</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1862.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -355,10 +353,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">16.74101</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1227.15</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -369,10 +366,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">20.24221</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1483.80</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15527.52</TotalVehicleMass>
@@ -383,10 +379,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">14.34578</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1051.58</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">20937.60</TotalVehicleMass>
@@ -397,10 +392,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.60016</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1290.13</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">15469.51</TotalVehicleMass>
@@ -411,10 +405,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.82313</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">866.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18411.57</TotalVehicleMass>
@@ -425,10 +418,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.24283</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">970.73</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -439,10 +431,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.72091</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1665.49</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Heavy Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -453,10 +444,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">27.95930</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">2049.48</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -467,10 +457,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">17.90756</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1312.66</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Urban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -481,10 +470,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">22.23796</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1630.09</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16303.29</TotalVehicleMass>
@@ -495,10 +483,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.28035</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1120.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P33DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P33DD</PrimaryVehicleSubgroup>
 					<Mission>Suburban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22616.43</TotalVehicleMass>
@@ -509,10 +496,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">19.26201</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1411.95</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16467.68</TotalVehicleMass>
@@ -523,10 +509,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">11.93701</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">875.01</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19319.21</TotalVehicleMass>
@@ -537,10 +522,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.32341</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">976.63</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">16490.49</TotalVehicleMass>
@@ -551,10 +535,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">8.71847</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">639.08</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34SD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34SD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">18406.72</TotalVehicleMass>
@@ -565,10 +548,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.20255</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">674.57</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19588.08</TotalVehicleMass>
@@ -579,10 +561,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">13.58335</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">995.69</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Interurban</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">23643.60</TotalVehicleMass>
@@ -593,10 +574,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">15.56740</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">1141.12</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">19703.95</TotalVehicleMass>
@@ -607,10 +587,9 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">9.82937</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">720.51</CO2>
 				</Result>
 				<Result status="success">
-					<VehicleGroup>P34DD</VehicleGroup>
+					<PrimaryVehicleSubgroup>P34DD</PrimaryVehicleSubgroup>
 					<Mission>Coach</Mission>
 					<SimulationParameters>
 						<TotalVehicleMass unit="kg">22484.88</TotalVehicleMass>
@@ -621,7 +600,6 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 					<Fuel type="Diesel CI">
 						<EnergyConsumption unit="MJ/km">10.56728</EnergyConsumption>
 					</Fuel>
-					<CO2 unit="g/km">774.60</CO2>
 				</Result>
 			</Results>
 			<ApplicationInformation>
@@ -630,7 +608,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 			</ApplicationInformation>
 		</Data>
 		<Signature>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
@@ -643,7 +621,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile
 	<ManufacturingStep stepCount="2">
 		<Data xsi:type="BusManufacturingStepDataType" id="MSTG-1">
 			<HashPreviousStep>
-			<di:Reference URI="#PIF-d10aff76c5d149948046">
+			<di:Reference URI="#VIF-d10aff76c5d149948046">
 				<di:Transforms>
 					<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
 					<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
diff --git a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs
index cad4740bce7fa4013c6d113f12092b17a5cd1271..091e324a1e09109e93265558ebe4281de85a5613 100644
--- a/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs
+++ b/VectoCore/VectoCoreTest/Utils/CompletedVIF.cs
@@ -22,7 +22,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			var vifDataProvider = xmlInputReader.Create(completedJson.PrimaryInputDataFile);
 			var completeDataProvider = xmlInputReader.CreateDeclaration(completedJson.CompletedInputDataFile);
 			var inputDataAsm = new XMLDeclarationVIFInputData(
-				vifDataProvider as IMultistageBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
+				vifDataProvider as IMultistepBusInputDataProvider, completeDataProvider.JobInputData.Vehicle);
 
 			var filename = Guid.NewGuid().ToString().Substring(0, 20);
 			var writerAsm = new FileOutputVIFWriter(filename, 0);
@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			var completedVif =
 				xmlInputReader.CreateDeclaration(XmlReader.Create(new StringReader(CreateCompletedVifXML(completedJson, xmlInputReader))));
 			
-			return new XMLDeclarationVIFInputData(completedVif as IMultistageBusInputDataProvider, null);
+			return new XMLDeclarationVIFInputData(completedVif as IMultistepBusInputDataProvider, null);
 			}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
index 8179c07f6e34a3bd7334bb93c7df0674c1a88428..6c78f97dc72c0cacf8cce1d10b1d18945c09dfdc 100644
--- a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
@@ -72,6 +72,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 		public ArchitectureID ArchitectureID { get; }
 		public bool OvcHev { get; }
 		public Watt MaxChargingPower { get; }
+		public VectoSimulationJobType VehicleType { get; }
 
 		#endregion
 
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index 89cb4aa357f7538fa59d723c3af9793f7f735d98..171980a2aa031c888d275bcabce7b982b339b86d 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -301,6 +301,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 		public ArchitectureID ArchitectureID { get; }
 		public bool OvcHev { get; }
 		public Watt MaxChargingPower { get; }
+		public VectoSimulationJobType VehicleType { get; }
 		public IVehicleComponentsDeclaration Components { get; set; }
 		public XmlNode XMLSource { get; }
 	}
diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs
index d5502a5023b79e6cc793b1c65d518ef7cb6c6bef..632be8b00f0bd4acae6ccb16ad0da3e95c8512bc 100644
--- a/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs
@@ -117,5 +117,6 @@ namespace TUGraz.VectoCore.Tests.Utils
 		public bool OvcHev { get; }
 
 		public Watt MaxChargingPower { get; }
+		public VectoSimulationJobType VehicleType { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 7a061b24fd070044491f1af68d5cef93bdc5f7e8..46de90a322530f97057969368805da66f716eed6 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -4,14 +4,20 @@
     <AssemblyName>VectoCoreTest</AssemblyName>
     <TargetFrameworks>net6.0</TargetFrameworks>
     <DefineConstants />
+    <Configurations>Debug;Release;MockupDebug</Configurations>
   </PropertyGroup>
-
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+	<PropertyGroup Condition="('$(Configuration)' == 'MockupRelease') Or ('$(Configuration)' == 'MockupDebug')">
+		<DefineConstants>$(DefineConstants);MOCKUP</DefineConstants>
+	</PropertyGroup>
   <ItemGroup>
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
-    <PackageReference Include="Ninject" Version="3.3.3" />
+    <PackageReference Include="Ninject" Version="3.3.6" />
     <PackageReference Include="NLog" Version="4.7.13" />
   </ItemGroup>
 
@@ -25,10 +31,19 @@
   </ItemGroup>
 
   <ItemGroup>
-    <Reference Include="System.Windows.Forms">
-      <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Windows.Forms.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Windows.Forms.DataVisualization" />
+    <None Update="TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\HeavyLorry\HEV-S_heavyLorry_S3_ovc.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
+	<Choose>
+		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(&#xD;&#xA;         $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))">
+			<ItemGroup>
+				<ProjectReference Include="$(SolutionDir)\VectoMockup\VectoMockup\VectoMockup.csproj" />
 
+			</ItemGroup>
+			<!--<PropertyGroup>
+				<DefineConstants>MOCKUP</DefineConstants>
+			</PropertyGroup>-->
+		</When>
+	</Choose>
 </Project>
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b0f4fb20ad0b2c6b832339cb4ee7d739b8eb719e
--- /dev/null
+++ b/VectoCore/VectoCoreTest/XML/Reports/CustomerInformationFileWriterTest.cs
@@ -0,0 +1,236 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using NUnit.Framework;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.Tests.XML.Reports
+{
+    [TestFixture]
+    internal class CustomerInformationFileWriterTest : MRF_CIF_WriterTestBase
+    {
+		private IXMLCustomerReport GetCustomerReport(string fileName,
+			out IDeclarationInputDataProvider dataProvider)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+			dataProvider = _xmlReader.CreateDeclaration(fileName);
+
+			var arch = dataProvider.JobInputData.Vehicle.ArchitectureID;
+
+			dataProvider.JobInputData.Vehicle.VehicleCategory.GetVehicleType(); // HEV/PEV - Sx/Px
+			var ihpc = (dataProvider.JobInputData.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric =>
+				electric.ElectricMachine.IHPCType != "None") > 0;
+			var iepc = (dataProvider.JobInputData.Vehicle.Components?.IEPC != null);
+			var report = _cifFactory.GetCustomerReport(
+				dataProvider.JobInputData.Vehicle.VehicleCategory,
+				dataProvider.JobInputData.JobType,
+				dataProvider.JobInputData.Vehicle.ArchitectureID,
+				dataProvider.JobInputData.Vehicle.ExemptedVehicle,
+				iepc,
+				ihpc);
+			return report;
+		}
+
+		private IXMLCustomerReport GetCompletedBusCustomerReport(string fileName,
+	out IMultistepBusInputDataProvider dataProvider)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+			var tmp = _xmlReader.CreateDeclaration(fileName);
+			dataProvider = tmp as IMultistepBusInputDataProvider;
+
+			var arch = dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID;
+
+			dataProvider.JobInputData.PrimaryVehicle.Vehicle.VehicleCategory.GetVehicleType(); // HEV/PEV - Sx/Px
+			var ihpc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric =>
+				electric.ElectricMachine.IHPCType != "None") > 0;
+			var iepc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components?.IEPC != null);
+			var report = _cifFactory.GetCustomerReport(
+				dataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
+				dataProvider.JobInputData.JobType,
+				arch,
+				dataProvider.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle,
+				iepc,
+				ihpc);
+			return report;
+		}
+
+
+		[TestCase(ConventionalHeavyLorry)]
+		public void ConventionalLorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as ConventionalLorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_Px_HeavyLorry)]
+		public void HEV_Px_IHPC_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as HEV_PxLorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_S2_HeavyLorry)]
+		public void HEV_S2_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as HEV_S2_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport)); Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+		[TestCase(HEV_S3_HeavyLorry)]
+		public void HEV_S3_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as HEV_S3_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+
+		[TestCase(HEV_S4_HeavyLorry)]
+		public void HEV_S4_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as HEV_S4_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_IEPC_S_HeavyLorry)]
+		public void HEV_IEPC_S_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as HEV_IEPC_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_E2_HeavyLorry)]
+		public void PEV_E2_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as PEV_E2_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_E3_HeavyLorry)]
+		public void PEV_E3_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as PEV_E3_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+		[TestCase(PEV_E4_HeavyLorry)]
+		public void PEV_E4_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as PEV_E4_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+        [TestCase(PEV_IEPC_HeavyLorry)]
+        public void PEV_IEPC_LorryCIFTest(string fileName)
+        {
+            var report = GetCustomerReport(fileName, out var dataProvider) as PEV_IEPC_Lorry_CIF;
+            Assert.NotNull(report);
+            report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(Exempted_HeavyLorry)]
+		public void Exempted_LorryCIFTest(string fileName)
+		{
+			var report = GetCustomerReport(fileName, out var dataProvider) as Exempted_Lorry_CIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+
+		[TestCase(Conventional_CompletedBus)]
+		public void Conventional_CompletedBus_CIFTest(string fileName)
+		{
+			var report = GetCompletedBusCustomerReport(fileName, out var dataProvider) as Conventional_CompletedBusCIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+
+		[TestCase(Exempted_CompletedBus)]
+		public void Exempted_CompletedBus_CIFTest(string fileName)
+		{
+			var report = GetCompletedBusCustomerReport(fileName, out var dataProvider) as Exempted_CompletedBusCIF;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport(XMLHelper.CreateDummySig(XNamespace.Get("http://www.w3.org/2000/09/xmldsig#")));
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.CustomerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+	}
+}
diff --git a/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ffa9c7cd011b51c1342a6854f21d8d224f829061
--- /dev/null
+++ b/VectoCore/VectoCoreTest/XML/Reports/ManufacturerReportWriterTest.cs
@@ -0,0 +1,550 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using System.Xml.Linq;
+using System.Xml.Schema;
+using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.DataCollection;
+using Ninject;
+using NUnit.Framework;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Tests.Integration.CompletedBus;
+using TUGraz.VectoCore.Tests.Models.Simulation;
+using TUGraz.VectoCore.Utils;
+using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
+
+namespace TUGraz.VectoCore.Tests.XML.Reports
+{
+    
+	
+	public class MRF_CIF_WriterTestBase
+	{
+		protected string outputBasePath; //@"C:\Users\Harry\source\vecto\mrf_report_0_9";
+		protected ISimulatorFactory _simulatorFactory;
+		protected IOutputDataWriter _outputWriter;
+		protected StandardKernel _kernel;
+		protected IXMLInputDataReader _xmlReader;
+		protected IManufacturerReportFactory _mrfFactory;
+		protected ICustomerInformationFileFactory _cifFactory;
+
+		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_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 Exempted_HeavyLorry =
+			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\ExemptedVehicles\exempted_heavyLorry.xml";
+
+		protected const string Conventional_PrimaryBus = 
+			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\PrimaryBus\Conventional_primaryBus_AMT.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 Exempted_PrimaryBus =
+			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\ExemptedVehicles\exempted_primaryBus.xml";
+
+
+		protected const string Conventional_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml";
+
+		protected const string Exempted_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\exempted_completed.VIF_Report_2.xml";
+		//@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\ExemptedVehicles\exempted_completedBus_input_full.xml";
+
+		public static bool ValidateAndPrint(XDocument document, XmlDocumentType documentType)
+		{
+			var error = false;
+
+			try {
+				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);
+				}
+			} finally {
+				TestContext.WriteLine(document);
+			}
+			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)
+		{
+			TestContext.WriteLine($"{basePath},{fileName}");
+			if (!fileName.EndsWith(".xml"))
+			{
+				fileName = fileName + ".xml";
+			}
+
+			if (!Directory.Exists(basePath)) {
+				Directory.CreateDirectory(basePath);
+			}
+			var destPath = Path.Combine(basePath, fileName);
+			using (var writer = new XmlTextWriter(destPath, Encoding.UTF8) { Formatting = Formatting.Indented })
+			{
+				try
+				{
+					xDocument.WriteTo(writer);
+				}
+				catch (Exception ex)
+				{
+					TestContext.WriteLine(ex);
+					return false;
+				}
+			}
+
+			return true;
+		}
+
+		[OneTimeSetUp]
+		public void OneTimeSetup()
+		{
+			_kernel = new StandardKernel(
+				new VectoNinjectModule()
+			);
+			outputBasePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "XMLReports_0.9");
+		}
+
+		[SetUp]
+		public void SetUp()
+		{
+			//_outputWriter = new FileOutputWriter()
+			_xmlReader = _kernel.Get<IXMLInputDataReader>();
+			_mrfFactory = _kernel.Get<IManufacturerReportFactory>();
+			_cifFactory = _kernel.Get<ICustomerInformationFileFactory>();
+		}
+	}
+
+    
+	[TestFixture]
+    public class ManufacturerReportWriterTest : MRF_CIF_WriterTestBase
+	{
+
+
+		private IXMLManufacturerReport GetReport(string fileName,
+			out IDeclarationInputDataProvider dataProvider)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+			dataProvider = _xmlReader.CreateDeclaration(fileName);
+			
+
+			dataProvider.JobInputData.Vehicle.VehicleCategory.GetVehicleType(); // HEV/PEV - Sx/Px
+			var ihpc = (dataProvider.JobInputData.Vehicle.Components?.ElectricMachines?.Entries)?.Count(electric =>
+				electric.ElectricMachine.IHPCType != "None") > 0;
+			var iepc = (dataProvider.JobInputData.Vehicle.Components?.IEPC != null);
+			var report = _mrfFactory.GetManufacturerReport(
+				dataProvider.JobInputData.Vehicle.VehicleCategory,
+				dataProvider.JobInputData.JobType,
+				dataProvider.JobInputData.Vehicle.ArchitectureID,
+				dataProvider.JobInputData.Vehicle.ExemptedVehicle,
+				iepc,
+				ihpc);
+			return report;
+		}
+
+		private IXMLManufacturerReport GetCompletedBusReport(string fileName,
+			out IMultistepBusInputDataProvider dataProvider)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+			dataProvider = _xmlReader.CreateDeclaration(fileName) as IMultistepBusInputDataProvider;
+			Assert.NotNull(dataProvider);
+			var arch = dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID;
+
+			dataProvider.JobInputData.PrimaryVehicle.Vehicle.VehicleCategory.GetVehicleType();// HEV/PEV - Sx/Px
+
+
+			var ihpc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0;
+			var iepc = (dataProvider.JobInputData.PrimaryVehicle.Vehicle.Components.IEPC != null);
+			var report = _mrfFactory.GetManufacturerReport(
+				dataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
+				dataProvider.JobInputData.JobType,
+				dataProvider.JobInputData.PrimaryVehicle.Vehicle.ArchitectureID,
+				dataProvider.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle,
+				iepc,
+				ihpc);
+			return report;
+		}
+
+
+		
+		[TestCase(ConventionalHeavyLorry)]
+		public async Task ConventionalLorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as ConventionalLorryManufacturerReport;
+
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+            Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+        }
+
+		[TestCase(HEV_Px_HeavyLorry)]
+		public async Task HEV_Px_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_Px_IHPC_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_S2_HeavyLorry)]
+		public async Task HEV_S2_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_S2_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_S3_HeavyLorry)]
+		public async Task HEV_S3_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_S3_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_S4_HeavyLorry)]
+		public async Task HEV_S4_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_S4_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_IEPC_S_HeavyLorry)]
+		public async Task HEV_IEPC_S_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_IEPC_S_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_E2_HeavyLorry)]
+		public async Task PEV_E2_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_E2_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_E3_HeavyLorry)]
+		public async Task PEV_E3_LorryMRFTest(string fileName)
+		{
+
+			var report = GetReport(fileName, out var dataProvider) as PEV_E3_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_E4_HeavyLorry)]
+		public async Task PEV_E4_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_E4_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_IEPC_HeavyLorry)]
+		public async Task PEV_IEPC_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_IEPC_LorryManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+        [TestCase(Exempted_HeavyLorry, TestName="ExemptedHeavyLorry_MRF")]
+		public void Exempted_LorryMRFTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider); 
+			Assert.NotNull(report as Exempted_LorryManufacturerReport);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+		[TestCase(Conventional_PrimaryBus)]
+		public void ConventionalPrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as Conventional_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+            report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_Px_IHPC_PrimaryBus)]
+		public void HEV_Px_IHPC_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_Px_IHPC_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+
+
+		[TestCase(HEV_S2_PrimaryBus)]
+		public void HEV_S2_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_S2_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+		[TestCase(HEV_S3_PrimaryBus)]
+		public void HEV_S3_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_S3_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_S4_PrimaryBus)]
+		public void HEV_S4_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_S4_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(HEV_IEPC_S_PrimaryBus)]
+		public void HEV_IEPC_S_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as HEV_IEPC_S_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+
+		[TestCase(PEV_E2_PrimaryBus)]
+		public void PEV_E2_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_E2_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+		[TestCase(PEV_E3_PrimaryBus)]
+		public void PEV_E3_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_E3_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(PEV_E4_PrimaryBus)]
+		public void PEV_E4_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_E4_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+
+		[TestCase(PEV_IEPC_PrimaryBus)]
+		public void PEV_IEPC_PrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as PEV_IEPC_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(Exempted_PrimaryBus)]
+		public void ExemptedPrimaryBusTest(string fileName)
+		{
+			var report = GetReport(fileName, out var dataProvider) as Exempted_PrimaryBus_ManufacturerReport;
+			Assert.NotNull(report);
+			report.InitializeVehicleData(dataProvider);
+
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[TestCase(Conventional_CompletedBus)]
+        public void Conventional_CompletedBusTest(string fileName)
+        {
+			var report = GetCompletedBusReport(fileName, out var dataProvider) as Conventional_CompletedBusManufacturerReport;
+			Assert.NotNull(report);
+            report.InitializeVehicleData(dataProvider);
+			report.GenerateReport();
+
+			Assert.IsTrue(ValidateAndPrint(report.Report, XmlDocumentType.ManufacturerReport));
+			Assert.IsTrue(WriteToDisk(outputBasePath, TestContext.CurrentContext.Test.MethodName, report.Report));
+		}
+
+		[Ignore("No testfile")]
+		[TestCase("")]
+		public void HEV_CompletedBusTest(string fileName)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+
+		}
+		[Ignore("No testfile")]
+		[TestCase("")]
+		public void PEV_CompletedBusTest(string fileName)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+		}
+
+		[Ignore("No testfile")]
+		[TestCase("")]
+		public void Exempted_CompletedBusTest(string fileName)
+		{
+			Assert.IsFalse(string.IsNullOrEmpty(fileName));
+		}
+
+	}
+}
diff --git a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs
index cdc154af1079b570121439b6310a50f9c5ed26d6..5943588c1f1922db0a42874bdf3e052f8ed02c04 100644
--- a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs
@@ -692,7 +692,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			//angledrivelosses.ReplaceSelf(new XElement(XMLNames.AngleDrive_Efficiency, "0.9124").ToString());
 			aux.InnerXml =
 				new XElement(XMLNames.Auxiliaries_Auxiliary, new XAttribute(XMLNames.Auxiliaries_Auxiliary_ID_Attr, "const"),
-					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + "type", "AuxiliaryEntryEngineeringType"),
+					new XAttribute(XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance") + XMLNames.XSIType, "AuxiliaryEntryEngineeringType"),
 					new XElement(XMLNames.Auxiliaries_Auxiliary_ConstantAuxLoad, "5000")).ToString();
 
 			//var modified = XmlReader.Create(new StringReader(nav.OuterXml));
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
index e0c0068ab735dfe618f1eb956f8fb43a9f20696d..65d45abfca0c2c90dfdd174cdf5aa0dc8e15cba9 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageVehicle()
 		{
 			var reader = XmlReader.Create(_consolidatedInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
 			TestConsolidateManufacturingStage(inputDataProvider.JobInputData.ConsolidateManufacturingStage);
 		}
@@ -110,7 +110,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestPrimaryOnlyConsolidateMultistageVehicle()
 		{ 
 			var reader = XmlReader.Create(_primaryOnlyInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			Assert.AreEqual(null, inputDataProvider.JobInputData.ManufacturingStages);
 			//The consolidated ManufacturingStage is now always created, and can hold some values from the primary vehicle (i.e. TPMLM)
@@ -122,7 +122,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestOneStageConsolidateMultistageVehicle()
 		{
 			var reader = XmlReader.Create(_oneStageInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
 
 			
@@ -161,7 +161,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestTwoStagesConsolidateMultistageVehicle()
 		{
 			var reader = XmlReader.Create(_twoStagesInputData);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
 			
 			var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle;
@@ -202,7 +202,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageAirdrag()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataAirdrag);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
@@ -221,7 +221,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageHeatPump()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatPump);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
@@ -238,7 +238,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageHeatHev()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatHev);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
@@ -255,7 +255,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestConsolidateMultistageHeatNgTankSystem()
 		{
 			var reader = XmlReader.Create(_consolidatedInputDataHeatNgTank);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 
 			var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux;
 			Assert.NotNull(hvaux);
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
index e6f64bb85b0d4ca7add6630ec87f1193ace9140e..1207efe1f950bf47a86536db865420232bdd454d 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
@@ -42,7 +42,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestVehicleMultistageBusInput01()
 		{
 			var reader = XmlReader.Create(VIF01);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle);
 			TestManufacturingStages(inputDataProvider.JobInputData.ManufacturingStages);
 		}
@@ -508,7 +508,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(totalMass.SI<Kilogram>(), result.SimulationParameter.TotalVehicleMass);
 			Assert.AreEqual(payload.SI<Kilogram>(), result.SimulationParameter.Payload);
 			Assert.AreEqual(passenger, result.SimulationParameter.PassengerCount);
-			Assert.AreEqual(fuelMode, result.SimulationParameter.FuelMode);
+			//Assert.AreEqual(fuelMode, result.SimulationParameter.FuelMode);
 
 			index++;
 		}
@@ -670,7 +670,7 @@ namespace TUGraz.VectoCore.Tests.XML
 		public void TestVehicleMultistageBusInput02()
 		{
 			var reader = XmlReader.Create(VIF02);
-			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
+			var inputDataProvider = _xmlInputReader.Create(reader) as IMultistepBusInputDataProvider;
 			TestPrimaryVehicleDataType(inputDataProvider.JobInputData.PrimaryVehicle);
 			TestManufacturingStageVIF02(inputDataProvider.JobInputData.ManufacturingStages);
 		}
diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp
index 2e53f15050d98a712aeca380bbe208a6e7e2cdb9..a58a883006e9defa8c30efc46df520bbb5d0768d 100644
--- a/VectoCore/VectoXML.spp
+++ b/VectoCore/VectoXML.spp
@@ -154,6 +154,29 @@
 			<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_full.xml" HomeFolder="Yes"/>
 			<File FilePath="VectoCoreTest\TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_stage_2_mandatory.xml" HomeFolder="Yes"/>
 		</Folder>
+		<Folder FolderName="MockupResults">
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_Conv_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_Conv_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_non-OVC-HEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_non-OVC-HEV_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_OVC-HEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_OVC-HEV_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_PEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\CIF_MockupResults_PEV_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_Conv_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_Conv_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_Error.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_non-OVC-HEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_non-OVC-HEV_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_OVC-HEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_OVC-HEV_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_PEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\MRF_MockupResults_PEV_Lorry.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_Conv_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_non-OVC-HEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_OVC-HEV_Bus.xml" HomeFolder="Yes"/>
+			<File FilePath="..\VectoMockup\VectoMockup\MockupResults\VIF_MockupResults_PEV_Bus.xml" HomeFolder="Yes"/>
+		</Folder>
 	</Folder>
 	<Folder FolderName="XML Files Vecto Testcases">
 		<Folder FolderName="SchemaVersion2.4" ExtStr=".xml">
@@ -551,6 +574,7 @@
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.7.1.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.7.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.8.xsd" HomeFolder="Yes"/>
+			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputDefinitions.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.5.xsd" HomeFolder="Yes"/>
@@ -558,6 +582,7 @@
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.1.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.8.xsd" HomeFolder="Yes"/>
+			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VTPReport.0.1.xsd" HomeFolder="Yes"/>
diff --git a/VectoMockup/VectoMockup/MockupModalDataContainer.cs b/VectoMockup/VectoMockup/MockupModalDataContainer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c5ddedd060b2972d1097bbf27746368bb0c35f82
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupModalDataContainer.cs
@@ -0,0 +1,284 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData;
+
+namespace TUGraz.VectoMockup
+{
+
+	//public void Run()
+	//{
+	//	if (!FoundPreviousResults)
+	//	{
+	//		(GetContainer().ModalData as ModalDataContainer).ModalDataContainerFinished += DummyRun_ModalDataContainerFinished;
+	//		_run.Run();
+	//	}
+	//	else
+	//	{
+	//		//TODO HM 
+	//		Log.Warn($"[DEV ONLY!] Using mod data: {_dummyFilePath}");
+
+	//		var modDataContainer = GetContainer().ModalData as ModalDataContainer;
+	//		modDataContainer.ReadDataFromXml(_dummyFilePath);
+	//		modDataContainer.Finish(VectoRun.Status.Success);
+	//	}
+
+
+	//}
+
+	//private void DummyRun_ModalDataContainerFinished(object sender, ModalDataContainer.ModalDataContainerFinishedEventArgs e)
+	//{
+	//	if (FinishedWithoutErrors)
+	//	{
+	//		e.DataOnFinish.WriteXml(_dummyFilePath, false);
+	//		Log.Warn($"[DEV ONLY!] Data written to {_dummyFilePath}:");
+	//	}
+	//}
+	internal class MockupModalDataContainer : IModalDataContainer
+    {
+		private IModalDataContainer _modalDataContainerImplementation;
+		private readonly Action<IModalDataContainer> _addReportResult;
+
+		public MockupModalDataContainer(IModalDataContainer modalDataContainer,
+			Action<IModalDataContainer> addReportResult)
+		{
+			_modalDataContainerImplementation = modalDataContainer;
+			_addReportResult = addReportResult;
+
+		}
+
+		#region MockupImplementation
+
+		public Second Duration => 1.SI(Unit.SI.Hour).Cast<Second>();
+		public Meter Distance => 100.SI(Unit.SI.Kilo.Meter).Cast<Meter>();
+
+
+		#endregion
+
+
+		#region Implementation of IModalDataContainer
+
+		public object this[ModalResultField key]
+		{
+			get => _modalDataContainerImplementation[key];
+			set => _modalDataContainerImplementation[key] = value;
+		}
+
+		public object this[ModalResultField key, IFuelProperties fuel]
+		{
+			get => _modalDataContainerImplementation[key, fuel];
+			set => _modalDataContainerImplementation[key, fuel] = value;
+		}
+
+		public object this[ModalResultField key, PowertrainPosition pos]
+		{
+			get => _modalDataContainerImplementation[key, pos];
+			set => _modalDataContainerImplementation[key, pos] = value;
+		}
+
+		public object this[ModalResultField key, int? pos]
+		{
+			get => _modalDataContainerImplementation[key, pos];
+			set => _modalDataContainerImplementation[key, pos] = value;
+		}
+
+		public object this[string auxId]
+		{
+			get => _modalDataContainerImplementation[auxId];
+			set => _modalDataContainerImplementation[auxId] = value;
+		}
+
+		public void CommitSimulationStep()
+		{
+			_modalDataContainerImplementation.CommitSimulationStep();
+		}
+
+		public IList<IFuelProperties> FuelData => _modalDataContainerImplementation.FuelData;
+
+		public VectoRun.Status RunStatus => _modalDataContainerImplementation.RunStatus;
+
+		public string Error => _modalDataContainerImplementation.Error;
+
+		public string StackTrace => _modalDataContainerImplementation.StackTrace;
+
+		public IEnumerable<T> GetValues<T>(ModalResultField key)
+		{
+			return _modalDataContainerImplementation.GetValues<T>(key);
+		}
+
+		public IEnumerable<T> GetValues<T>(DataColumn col)
+		{
+			return _modalDataContainerImplementation.GetValues<T>(col);
+		}
+
+		public IEnumerable<T> GetValues<T>(Func<DataRow, T> selectorFunc)
+		{
+			return _modalDataContainerImplementation.GetValues(selectorFunc);
+		}
+
+		public Dictionary<string, DataColumn> Auxiliaries => _modalDataContainerImplementation.Auxiliaries;
+
+		public T TimeIntegral<T>(ModalResultField field, Func<SI, bool> filter = null) where T : SIBase<T>
+		{
+			return _modalDataContainerImplementation.TimeIntegral<T>(field, filter);
+		}
+
+		public T TimeIntegral<T>(string field, Func<SI, bool> filter = null) where T : SIBase<T>
+		{
+			return _modalDataContainerImplementation.TimeIntegral<T>(field, filter);
+		}
+
+		public void SetDataValue(string fieldName, object value)
+		{
+			_modalDataContainerImplementation.SetDataValue(fieldName, value);
+		}
+
+		public void AddAuxiliary(string id, string columnName = null)
+		{
+			_modalDataContainerImplementation.AddAuxiliary(id, columnName);
+		}
+
+		public void Finish(VectoRun.Status runStatus, Exception exception = null)
+		{
+			_modalDataContainerImplementation.Finish(runStatus, exception);
+			if (_addReportResult != null) {
+				_addReportResult(this);
+			}
+
+		}
+
+		public void FinishSimulation()
+		{
+			_modalDataContainerImplementation.FinishSimulation();
+		}
+
+		public string GetColumnName(IFuelProperties fuelData, ModalResultField mrf)
+		{
+			return _modalDataContainerImplementation.GetColumnName(fuelData, mrf);
+		}
+
+		public void Reset()
+		{
+			_modalDataContainerImplementation.Reset();
+		}
+
+		
+
+		public Func<Second, Joule, Joule> AuxHeaterDemandCalc
+		{
+			get => _modalDataContainerImplementation.AuxHeaterDemandCalc;
+			set => _modalDataContainerImplementation.AuxHeaterDemandCalc = value;
+		}
+
+		public KilogramPerWattSecond EngineLineCorrectionFactor(IFuelProperties fuel)
+		{
+			return _modalDataContainerImplementation.EngineLineCorrectionFactor(fuel);
+		}
+
+		public void CalculateAggregateValues()
+		{
+			_modalDataContainerImplementation.CalculateAggregateValues();
+		}
+
+		public void AddElectricMotor(PowertrainPosition pos)
+		{
+			_modalDataContainerImplementation.AddElectricMotor(pos);
+		}
+
+		public KilogramPerWattSecond VehicleLineSlope(IFuelProperties fuel)
+		{
+			return _modalDataContainerImplementation.VehicleLineSlope(fuel);
+		}
+
+		public bool HasCombustionEngine => _modalDataContainerImplementation.HasCombustionEngine;
+
+		public WattSecond TotalElectricMotorWorkDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorWorkDrive(emPos);
+		}
+
+		public WattSecond TotalElectricMotorWorkRecuperate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorWorkRecuperate(emPos);
+		}
+
+		public WattSecond TotalElectricMotorMotWorkDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorMotWorkDrive(emPos);
+		}
+
+		public WattSecond TotalElectricMotorMotWorkRecuperate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.TotalElectricMotorMotWorkRecuperate(emPos);
+		}
+
+		public PerSecond ElectricMotorAverageSpeed(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorAverageSpeed(emPos);
+		}
+
+		public double ElectricMotorEfficiencyDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorEfficiencyDrive(emPos);
+		}
+
+		public double ElectricMotorEfficiencyGenerate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorEfficiencyGenerate(emPos);
+		}
+
+		public double ElectricMotorMotEfficiencyDrive(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorMotEfficiencyDrive(emPos);
+		}
+
+		public double ElectricMotorMotEfficiencyGenerate(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorMotEfficiencyGenerate(emPos);
+		}
+
+		public WattSecond ElectricMotorOffLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorOffLosses(emPos);
+		}
+
+		public WattSecond ElectricMotorLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorLosses(emPos);
+		}
+
+		public WattSecond ElectricMotorMotLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorMotLosses(emPos);
+		}
+
+		public WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos)
+		{
+			return _modalDataContainerImplementation.ElectricMotorTransmissionLosses(emPos);
+		}
+
+		public double REESSStartSoC()
+		{
+			return _modalDataContainerImplementation.REESSStartSoC();
+		}
+
+		public double REESSEndSoC()
+		{
+			return _modalDataContainerImplementation.REESSEndSoC();
+		}
+
+		public WattSecond REESSLoss()
+		{
+			return _modalDataContainerImplementation.REESSLoss();
+		}
+
+		public ICorrectedModalData CorrectedModalData => _modalDataContainerImplementation.CorrectedModalData;
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/MockupResultReader.cs b/VectoMockup/VectoMockup/MockupResultReader.cs
new file mode 100644
index 0000000000000000000000000000000000000000..4d235350a16ece3472c173742ea53a6fb6ecbd78
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResultReader.cs
@@ -0,0 +1,306 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoMockup
+{
+
+
+    internal static class MockupResultReader
+    {
+		private enum ResultType
+		{
+			CIF,
+			MRF,
+			VIF
+		}
+		private static class MockupResultHelper
+		{
+			private static string _convArch = "Conv";
+			private const string mockupResourcePrefix = "TUGraz.VectoMockup.MockupResults";
+			
+			
+			private static HashSet<string> conventional = new HashSet<string>() {
+				//MRF
+				XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType,
+
+				//CIF
+				XMLNames.CIF_OutputDataType_ConventionalLorryOutputType,
+				
+
+				//VIF //TODO: seperate namespaces
+				"urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1",
+			};
+
+			private static HashSet<string> hev = new HashSet<string>() {
+				//MRF
+				XMLNames.MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType,
+				//CIF
+				XMLNames.CIF_OutputDataType_HEV_S2_LorryOutputType,
+				XMLNames.CIF_OutputDataType_HEV_S3_LorryOutputType,
+				XMLNames.CIF_OutputDataType_HEV_S4_LorryOutputType,
+				XMLNames.CIF_OutputDataType_HEV_IEPC_S_LorryOutputType,
+				XMLNames.CIF_OutputDataType_HEV_Px_LorryOutputType,
+			};
+			private static HashSet<string> pev = new HashSet<string>() {
+				//MRF
+				XMLNames.MRF_OutputDataType_PEV_E2_LorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_PEV_E3_LorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_PEV_E4_LorryManufacturerOutputDataType,
+				XMLNames.MRF_OutputDataType_PEV_IEPC_LorryManufacturerOutputDataType,
+
+				//CIF
+				XMLNames.CIF_OutputDataType_PEV_E2_LorryOutputType,
+				XMLNames.CIF_OutputDataType_PEV_E3_LorryOutputType,
+				XMLNames.CIF_OutputDataType_PEV_E4_LorryOutputType,
+				XMLNames.CIF_OutputDataType_PEV_IEPC_LorryOutputType
+
+			};
+
+			public static string GetResourceName(string xmlName, XMLDeclarationReport.ResultEntry result, ResultType type, VectoRunData runData)
+			{
+				
+				var resNames = Assembly.GetAssembly(typeof(MockupResultReader)).GetManifestResourceNames();
+				//if (result.Status == VectoRun.Status.Success) {
+					var arch = GetArch(xmlName, runData);
+					var reportType = GetReportType(type);
+					var vehicleType = result.VehicleClass.IsBus() ? "Bus" : "Lorry";
+					return $"{mockupResourcePrefix}.{reportType}_MockupResults_{arch}_{vehicleType}.xml";
+				//}
+
+				throw new NotImplementedException("Error result not implemented\n");
+			}
+
+			private static object GetReportType(ResultType type)
+			{
+				switch (type) {
+					case ResultType.CIF:
+						return "CIF";
+					case ResultType.MRF:
+						return "MRF";
+					case ResultType.VIF:
+						return "VIF";
+					default:
+						throw new ArgumentOutOfRangeException(nameof(type), type, null);
+				}
+			}
+
+			private static string GetArch(string xmlName, VectoRunData runData)
+			{
+				bool ovc = false;
+				var jobType = VectoSimulationJobType.ConventionalVehicle;
+				if (runData.InputData is IXMLMultistageInputDataProvider mst) {
+					ovc = false; //TODO implement
+					jobType = mst.JobInputData.JobType; //runData.InputData.JobInputData.JobType;
+				} else {
+					ovc = runData.InputData.JobInputData.Vehicle.OvcHev;
+					jobType = runData.InputData.JobInputData.JobType;
+				}
+
+				
+				if (jobType == VectoSimulationJobType.ConventionalVehicle) {
+					return "Conv";
+				}
+
+				if (jobType.IsOneOf(VectoSimulationJobType.ParallelHybridVehicle, VectoSimulationJobType.SerialHybridVehicle)) {
+					return ovc ? "OVC-HEV" : "non-OVC-HEV";
+				}
+
+				if (jobType.IsOneOf(VectoSimulationJobType.BatteryElectricVehicle)) {
+					return "PEV";
+				}
+
+				throw new VectoException($"{xmlName} not mapped to Architecture (Conv/HEV/PEV)");
+			}
+
+
+		}
+        
+		public static XElement GetMRFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData)
+		{
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF, runData));
+			ReplaceMission(result, resultElement);
+			ReplaceGroup(result, resultElement);
+			ReplacePayload(result, resultElement);
+			ReplaceFuelMode(result, resultElement);
+			SetFuels(result, resultElement);
+			ClearGearboxAndAxleGearEntries(result, resultElement, runData);
+			
+			return resultElement;
+		}
+
+
+
+		public static XElement GetCIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData)
+		{
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF, runData));
+			resultElement.DescendantNodes().OfType<XComment>().Remove();
+			ReplaceMission(result, resultElement);
+			SetFuels(result, resultElement);
+
+			return resultElement;
+		}
+
+		public static XElement GetVIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, VectoRunData runData)
+		{
+			var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.VIF, runData));
+			resultElement.DescendantNodes().OfType<XComment>().Remove();
+			ReplaceMission(result, resultElement);
+			ReplaceGroup(result, resultElement);
+			ReplacePayload(result, resultElement);
+			ReplaceFuelMode(result,resultElement);
+            SetFuels(result, resultElement);
+
+            return resultElement;
+		}
+
+
+
+		private static void ReplacePayload(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			if (result.Payload == null) {
+				return;
+			}
+			var payload = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_ResultEntry_Payload}']").ToList();
+			if (!payload.Any()) {
+				return;
+			}
+			payload.ForEach(x => x.Value = result.Payload.ToXMLFormat());
+		}
+
+		private static void ReplaceGroup(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			var groupElement = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results_PrimaryVehicleSubgroup}']").ToList();
+			if (!groupElement.Any()) {
+				return;
+			}
+			groupElement.ForEach(x => x.Value = result.VehicleClass.GetClassNumber());
+		}
+
+		private static void ReplaceFuelMode(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			var fuelMode = resultElement.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Result_FuelMode}']");
+			var fuelModeElement = fuelMode.FirstOrDefault();
+			if (fuelModeElement != null) {
+				fuelModeElement.Value = result.FuelData.Count > 1
+					? XMLNames.Report_Result_FuelMode_Val_Dual
+					: XMLNames.Report_Result_FuelMode_Val_Single;
+			}
+		}
+
+
+		private static XElement GetResultElement(XName resultElementName, string resourceName)
+		{
+			var xDoc = XDocument.Load(ReadStream(resourceName));
+			
+			var results = xDoc.XPathSelectElements($"//*[local-name()='{resultElementName.LocalName}']");
+			var resultElement = results.First();
+			resultElement.DescendantNodes().OfType<XComment>().Remove();
+			return resultElement;
+		}
+		public static Stream ReadStream(string resourceName)
+		{
+			var assembly = Assembly.GetAssembly(typeof(MockupResultReader));
+			var resource = assembly.GetManifestResourceStream(resourceName);
+			if (resource == null)
+			{
+				throw new VectoException("Resource file not found: " + resourceName);
+			}
+			return resource;
+		}
+
+
+		private static void ReplaceMission(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			var mission = resultElement.Elements()
+				.FirstOrDefault(x => x.Name.LocalName == XMLNames.Report_Result_Mission);
+			if (mission != null) {
+				mission.Value = result.Mission.ToXMLFormat();
+			}
+				
+		}
+
+		private static void SetFuels(XMLDeclarationReport.ResultEntry result, XElement resultElement)
+		{
+			//var tmpResultElement = new XElement(resultElement);
+			var fuelElements = resultElement.XPathSelectElements("//*[local-name()='Fuel']").ToList();
+			foreach (var fuelElement in fuelElements) {
+				var insertPos = fuelElement.NextNode as XElement;
+				;
+				foreach (var fuelProperties in result.FuelData)
+				{
+					var fuelElementToAdd = new XElement(fuelElement); //deep copy of fuel element;
+					fuelElementToAdd.SetAttributeValue(XMLNames.Report_Results_Fuel_Type_Attr, fuelProperties.FuelType.ToXMLFormat());
+					ClearFuelConsumptionEntries(fuelProperties, fuelElementToAdd, result.VehicleClass);
+					if (insertPos == null) {
+						resultElement.Add(fuelElementToAdd);
+					} else {
+						insertPos.AddBeforeSelf(fuelElementToAdd);
+					}
+				}
+				fuelElement.Remove();
+			}
+		}
+
+		private static void ClearGearboxAndAxleGearEntries(XMLDeclarationReport.ResultEntry result,
+			XElement resultElement, VectoRunData runData)
+		{
+			var elementsToRemove = new List<XElement>();
+			if (runData.GearboxData == null) {
+				//elementsToRemove.AddRange(resultElement.XPathSelectElements("//*[name()='GearshiftCount']"));
+				var gearshiftCount = resultElement.XPathSelectElement("//*[name()='GearshiftCount']");
+				gearshiftCount.Value = "1";
+				elementsToRemove.AddRange(resultElement.XPathSelectElements("//*[name()='AverageGearboxEfficiency']"));
+			}
+
+			if (runData.AxleGearData == null) {
+				elementsToRemove.AddRange(resultElement.XPathSelectElements("//*[name()='AverageAxlegearEfficiency']"));
+			}
+			foreach (var xElement in elementsToRemove) {
+				xElement.Remove();
+			}
+		}
+
+		/// <summary>
+		/// Clears fuel consumption entries that are not used for a specified fueltype and vehicle class
+		/// </summary>
+		private static void ClearFuelConsumptionEntries(IFuelProperties fuelProperties, XElement fuelElement,
+			VehicleClass vehicleClass)
+		{
+			if(!(vehicleClass.IsHeavyLorry() || vehicleClass.IsMediumLorry()))
+			{
+				fuelElement.XPathSelectElements("//*[@unit='l/m³-km']").FirstOrDefault()?.Remove();
+			}
+
+			if (fuelProperties.FuelDensity == null) {
+				//var test = fuelElement.XPathSelectElements("//*[@unit='l/m³-km']");
+				fuelElement.XPathSelectElements("//*[@unit='l/m³-km']").FirstOrDefault()?.Remove();
+				fuelElement.XPathSelectElements("//*[@unit='l/t-km']").FirstOrDefault()?.Remove();
+				fuelElement.XPathSelectElements("//*[@unit='l/100km']").FirstOrDefault()?.Remove();
+				fuelElement.XPathSelectElements("//*[@unit='l/p-km']").FirstOrDefault()?.Remove();
+			}
+		}
+
+		
+	}
+}
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7d57378d89b10ea655c328c080fd9458989ab2d4
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- Conventional Bus  -->
+		<Result status="success" xsi:type="ResultSuccessConventionalType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<MassPassengers unit="kg">2600</MassPassengers>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</Total>
+		</Result>
+		<!-- Conventional Bus -->
+		<Summary xsi:type="ResultSummaryConventionalType">
+			<AveragePassengerCount>3.141</AveragePassengerCount>
+			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+			</Fuel>
+			<CO2 unit="g/km">8.1</CO2>
+			<CO2 unit="g/p-km">8.2</CO2>
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4a4d304c91d16afde3f5d261e69d240a615b05b
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- Conventional Lorry  -->
+		<Result status="success" xsi:type="ResultSuccessConventionalType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+			</Total>
+		</Result>
+		<!-- END Conventional Lorry -->
+		<Summary xsi:type="ResultSummaryConventionalType">
+			<AveragePayload unit="t">3.141</AveragePayload>
+			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+				<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+				<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+			</Fuel>
+			<CO2 unit="g/km">8.1</CO2>
+			<CO2 unit="g/t-km">8.3</CO2>
+			<CO2 unit="g/m³-km">8.4</CO2>
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b91ea62812809430c94fc095215ced25373a2fa
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- OCV HEV (and OCV FCV in future) Bus -->
+		<Result status="success" xsi:type="ResultSuccessOCVHEVType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<MassPassengers unit="kg">2600</MassPassengers>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<OCVMode type="charge depleting">
+				<AverageSpeed unit="km/h">1.0</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">3.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">3.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">3.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">3.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">3.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/p-km">4.111</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">5.1</CO2>
+				<CO2 unit="g/p-km">5.2</CO2>
+			</OCVMode>
+			<OCVMode type="charge sustaining">
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</OCVMode>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>					
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+				<UtilityFactor>0.345</UtilityFactor>
+			</Total>
+		</Result>
+		<!-- END OCV HEV (and OCV FCV in future) Bus -->
+		<Summary xsi:type="ResultSummaryOCVHEVType">
+			<AveragePassengerCount>3.141</AveragePassengerCount>
+			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+			</Fuel>
+			<ElectricEnergy>
+				<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+				<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
+				<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+				<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+			</ElectricEnergy>
+			<CO2 unit="g/km">8.1</CO2>
+			<CO2 unit="g/p-km">8.2</CO2>
+			<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+			<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+			<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>	
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..db265ed79273d2cee5d05e5105c94799edce0264
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- OCV HEV (and OCV FCV in future) Lorry  -->
+		<Result status="success" xsi:type="ResultSuccessOCVHEVType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<OCVMode type="charge depleting">
+				<AverageSpeed unit="km/h">1.0</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">3.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">3.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">3.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">3.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">3.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">3.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">3.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">3.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="kWh/m³-km">4.131</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">5.1</CO2>
+				<CO2 unit="g/t-km">5.3</CO2>
+				<CO2 unit="g/m³-km">5.4</CO2>
+			</OCVMode>
+			<OCVMode type="charge sustaining">
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+			</OCVMode>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>	
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption>
+					<EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+				<UtilityFactor>0.345</UtilityFactor>
+			</Total>
+		</Result>
+		<!-- END OCV HEV (and OCV FCV in future) Lorry -->
+		<Summary xsi:type="ResultSummaryOCVHEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
+			<!-- repeat for every fuel used -->
+			<Fuel type="Diesel CI">
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+				<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+				<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+			</Fuel>
+			<ElectricEnergy>
+				<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+				<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption>
+				<EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption>
+				<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+				<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+				<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+			</ElectricEnergy>
+			<CO2 unit="g/km">8.1</CO2>
+			<CO2 unit="g/t-km">8.3</CO2>
+			<CO2 unit="g/m³-km">8.4</CO2>
+			<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+			<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+			<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>	
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e0e57d9cbf8b2fc4ee2bfea4f3a305fadbcfba80
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- PEV Bus  -->
+		<Result status="success" xsi:type="ResultSuccessPEVType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<MassPassengers unit="kg">2600</MassPassengers>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>	
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+				</ElectricEnergy>
+				<FC_ZEV_AuxHeater type="Diesel CI"><!-- only if aux heater power > 0 -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption>
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption>
+				</FC_ZEV_AuxHeater>
+				<CO2_ZEV_AuxHeater><!-- only if aux heater power > 0 -->
+					<CO2 unit="g/km">8.1</CO2>
+					<CO2 unit="g/p-km">8.2</CO2>
+				</CO2_ZEV_AuxHeater><ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+			</Total>
+		</Result>
+		<!-- END PEV Bus -->
+		<Summary xsi:type="ResultSummaryPEVType">
+			<AveragePassengerCount>3.141</AveragePassengerCount>
+			<ElectricEnergy>
+				<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+				<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
+				<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+				<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+			</ElectricEnergy>
+			<FC_ZEV_AuxHeater type="Diesel CI"><!-- only if aux heater power > 0 -->
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption>
+				<FuelConsumption unit="l/p-km">6.2301</FuelConsumption>
+			</FC_ZEV_AuxHeater>
+			<CO2_ZEV_AuxHeater><!-- only if aux heater power > 0 -->
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</CO2_ZEV_AuxHeater>
+			<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+			<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+			<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>	
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4a92ac09c793592149ab66be057dccacf50507a
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- PEV Lorry  -->
+		<Result status="success" xsi:type="ResultSuccessPEVType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>	
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption>
+					<EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+				</ElectricEnergy>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+			</Total>
+		</Result>
+		<!-- END PEV Lorry -->
+		<Summary xsi:type="ResultSummaryPEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
+			<ElectricEnergy>
+				<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+				<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption>
+				<EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption>
+				<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+				<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+				<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+			</ElectricEnergy>
+			<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+			<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+			<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>	
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..337f5ef774c228c0217b3821988fb325e11c14cd
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- non-OCV HEV Bus  -->
+		<Result status="success" xsi:type="ResultSuccessNonOCVHEVType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<MassPassengers unit="kg">2600</MassPassengers>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</Total>
+		</Result>
+		<!-- END non-OCV HEV Bus -->
+		<Summary xsi:type="ResultSummaryNonOCVHEVType">
+			<AveragePassengerCount>3.141</AveragePassengerCount>
+			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+			</Fuel>
+			<CO2 unit="g/km">8.1</CO2>
+			<CO2 unit="g/p-km">8.2</CO2>
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b6c0a8ffbb92c40a9ef28fc3db700f07c587123
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputCustomer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- non-OCV HEV Lorry  -->
+		<Result status="success" xsi:type="ResultSuccessNonOCVHEVType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<Total>
+				<AverageSpeed unit="km/h">1.2</AverageSpeed>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+			</Total>
+		</Result>
+		<!-- END non-OCV HEV Lorry -->
+		<Summary xsi:type="ResultSummaryNonOCVHEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
+			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+				<FuelConsumption unit="g/km">6.1</FuelConsumption>
+				<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+				<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+				<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+				<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+				<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+				<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+				<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+			</Fuel>
+			<CO2 unit="g/km">8.1</CO2>
+			<CO2 unit="g/t-km">8.3</CO2>
+			<CO2 unit="g/m³-km">8.4</CO2>
+		</Summary>
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89a9d9c2b623e46eef334767474337013e9a7095
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Bus.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- ICE only, non-OCV HEV (and H2 only ICE in future) Bus  -->
+		<Result status="success" xsi:type="ResultSuccessConventionalType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<PrimaryVehicleSubgroup>Pxx</PrimaryVehicleSubgroup>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>	
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.0</Min>
+						<Average unit="rpm">1000.0</Average>
+						<Max unit="rpm">2000.0</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</Total>
+		</Result>
+		<!-- END ICE only, non-OCV HEV (and H2 only ICE in future) Bus -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8cbd3114a6e2e1a75b6013804bdcfc7b0823e289
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Conv_Lorry.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry -->
+		<Result status="success" xsi:type="ResultSuccessConventionalType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.0</Min>
+						<Average unit="rpm">1000.0</Average>
+						<Max unit="rpm">2000.0</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- only for lorries--><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+			</Total>
+		</Result>
+		<!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Error.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Error.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8674b89b0326c30cd27b0ac8ffc019546ff0d955
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_Error.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- All powertrain architectures and vehicle types  -->
+		<Result status="error" xsi:type="ResultErrorType">
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<VehicleGroup>Pxx</VehicleGroup>
+			<Error>7 (LongHaul LowLoading) - absTime: 45.8061 [s], distance: 575.8976 [m], dt: 0.4990 [s], v: 23.6111 [m/s], Gear: 8 | AxleGear LossMap data was extrapolated in Declaration Mode: range for loss map is not sufficient: n:568.520042003599, torque:983.0149 [Nm]</Error>
+			<ErrorDetails>   at TUGraz.VectoCore.Models.SimulationComponent.Impl.TransmissionComponent.DoCommitSimulationStep() in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\SimulationComponent\Impl\TransmissionComponent.cs:line 118
+   at TUGraz.VectoCore.Models.SimulationComponent.VectoSimulationComponent.CommitSimulationStep(IModalDataContainer container) in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\SimulationComponent\VectoSimulationComponent.cs:line 67
+   at TUGraz.VectoCore.Models.Simulation.Impl.VehicleContainer.CommitSimulationStep(Second time, Second simulationInterval) in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\Simulation\Impl\VehicleContainer.cs:line 331
+   at TUGraz.VectoCore.Models.Simulation.Impl.VectoRun.Run() in E:\QUAM\Workspace\VECTO_quam\VectoCore\VectoCore\Models\Simulation\Impl\VectoRun.cs:line 120</ErrorDetails>
+		</Result>
+		<!-- END All powertrain architectures and vehicle types -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0b8151ad2b9eaf1341b8dd3db5d14a4130d7ef40
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Bus.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- OCV HEV (and OCV FCV in future) Bus -->
+		<Result status="success" xsi:type="ResultSuccessOVCHEVType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<PrimaryVehicleSubgroup>Pxx</PrimaryVehicleSubgroup>
+			<OVCMode type="charge depleting">
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.0</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.1</AverageDrivingSpeed>
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.0</Min>
+						<Average unit="rpm">1000.0</Average>
+						<Max unit="rpm">2000.0</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">3.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">3.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">3.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">3.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">3.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/p-km">4.111</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">5.1</CO2>
+				<CO2 unit="g/p-km">5.2</CO2>
+			</OVCMode>
+			<OVCMode type="charge sustaining">
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.1</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.03</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.04</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.81</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.1</Min>
+						<Average unit="rpm">1000.1</Average>
+						<Max unit="rpm">2000.1</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.97</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.96</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</OVCMode>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+				<UtilityFactor>0.345</UtilityFactor>
+			</Total>
+		</Result>
+		<!-- END OCV HEV (and OCV FCV in future) Bus -->
+	</Results>
+</VectoMockResults>
+
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e3f1c79e9d37a53ab0faebdf701badf5f6a5ef9a
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_OVC-HEV_Lorry.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- OCV HEV (and OCV FCV in future) Lorry -->
+		<Result status="success" xsi:type="ResultSuccessOVCHEVType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<OVCMode type="charge depleting">
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.0</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.1</AverageDrivingSpeed>
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.0</Min>
+						<Average unit="rpm">1000.0</Average>
+						<Max unit="rpm">2000.0</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">3.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">3.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">3.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">3.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">3.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">3.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">3.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">3.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">3.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="kWh/m³-km">4.131</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">5.1</CO2>
+				<CO2 unit="g/t-km">5.3</CO2>
+				<CO2 unit="g/m³-km">5.4</CO2>
+			</OVCMode>
+			<OVCMode type="charge sustaining">
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.1</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.03</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.04</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.81</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.1</Min>
+						<Average unit="rpm">1000.1</Average>
+						<Max unit="rpm">2000.1</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.97</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.96</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+			</OVCMode>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption>
+					<EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption>
+					<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption>
+				</ElectricEnergy>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+				<UtilityFactor>0.345</UtilityFactor>
+			</Total>
+		</Result>
+		<!-- END OCV HEV (and OCV FCV in future) Lorry -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fc1db115aed7bde74c3c0627a5f174aa8ac68721
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Bus.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- PEV Bus -->
+		<Result status="success" xsi:type="ResultSuccessPEVType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<PrimaryVehicleSubgroup></PrimaryVehicleSubgroup>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+					
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount><!-- only if gearbox is present -->
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency><!-- only if gearbox is present -->
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency><!-- only if axlegear is present -->
+				</VehiclePerformance>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/p-km">4.111</EnergyConsumption>
+				</ElectricEnergy>
+				<FC_ZEV_AuxHeater type="Diesel CI"><!-- only if aux heater power > 0 -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption>
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption>
+				</FC_ZEV_AuxHeater>
+				<CO2_ZEV_AuxHeater><!-- only if aux heater power > 0 -->
+					<CO2 unit="g/km">8.1</CO2>
+					<CO2 unit="g/p-km">8.2</CO2>
+				</CO2_ZEV_AuxHeater>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+			</Total>
+		</Result>
+		<!-- END PEV Bus -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7468105446333de20000758b526bf19df72b978c
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_PEV_Lorry.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- PEV Lorry -->
+		<Result status="success" xsi:type="ResultSuccessPEVType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+					
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount><!-- only if gearbox is present -->
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency><!-- only if gearbox is present -->
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency><!-- only if axlegear is present -->
+				</VehiclePerformance>
+				<ElectricEnergy>
+					<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
+					<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption><!-- only for lorries -->
+					<EnergyConsumption unit="kWh/m³-km">7.131</EnergyConsumption><!-- only for lorries -->
+					<EnergyConsumption unit="MJ/km">4.101</EnergyConsumption>
+					<EnergyConsumption unit="MJ/t-km">4.121</EnergyConsumption><!-- only for lorries -->
+					<EnergyConsumption unit="MJ/m³-km">4.131</EnergyConsumption><!-- only for lorries -->
+				</ElectricEnergy>
+				<ActualChargeDepletingRange unit="km">9.1</ActualChargeDepletingRange>
+				<EquivalentAllElectricRange unit="km">9.2</EquivalentAllElectricRange>
+				<ZeroCO2EmissionsRange unit="km">9.3</ZeroCO2EmissionsRange>
+			</Total>
+		</Result>
+		<!-- END PEV Lorry -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..44dba2fad0d19dc8ee45e70b1fe4a80fce89c58c
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Bus.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- ICE only, non-OCV HEV (and H2 only ICE in future) Bus  -->
+		<Result status="success" xsi:type="ResultSuccessNonOCVHEVType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+				<PassengerCount>13.75</PassengerCount>
+			</SimulationParameters>
+			<PrimaryVehicleSubgroup>Pxxx</PrimaryVehicleSubgroup>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>	
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.0</Min>
+						<Average unit="rpm">1000.0</Average>
+						<Max unit="rpm">2000.0</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/p-km">6.222</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/p-km">6.2301</FuelConsumption><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/p-km">8.2</CO2>
+			</Total>
+		</Result>
+		<!-- END ICE only, non-OCV HEV (and H2 only ICE in future) Bus -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Lorry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3294c2ec5e8ca2ab2a55a1e3bad65f81cf57c669
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/MRF_MockupResults_non-OVC-HEV_Lorry.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VectoMockResults xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputManufacturer.0.9.xsd">
+	<Results>
+		<Status>success</Status>
+		<!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry -->
+		<Result status="success" xsi:type="ResultSuccessNonOCVHEVType">
+			<Mission>Long Haul</Mission>
+			<Distance unit="km">100.185</Distance>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">17200</TotalVehicleMass>
+				<Payload unit="kg">2600</Payload>
+			</SimulationParameters>
+			<Total>
+				<VehiclePerformance>
+					<AverageSpeed unit="km/h">1.2</AverageSpeed>
+					<AverageDrivingSpeed unit="km/h">1.3</AverageDrivingSpeed>
+					<MinSpeed unit="km/h">0.0</MinSpeed>
+					<MaxSpeed unit="km/h">100.0</MaxSpeed>
+					<MaxDeceleration unit="m/s²">1.01</MaxDeceleration>
+					<MaxAcceleration unit="m/s²">1.02</MaxAcceleration>
+					<FullLoadDrivingtimePercentage>3.80</FullLoadDrivingtimePercentage>
+					<GearshiftCount>42</GearshiftCount>
+					<EngineSpeedDriving>
+						<Min unit="rpm">600.0</Min>
+						<Average unit="rpm">1000.0</Average>
+						<Max unit="rpm">2000.0</Max>
+					</EngineSpeedDriving>
+					<AverageGearboxEfficiency unit="%">99.99</AverageGearboxEfficiency>
+					<AverageAxlegearEfficiency unit="%">99.98</AverageAxlegearEfficiency>
+				</VehiclePerformance>
+				<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
+					<FuelConsumption unit="g/km">6.1</FuelConsumption>
+					<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
+					<FuelConsumption unit="g/m³-km">6.220</FuelConsumption>
+					<FuelConsumption unit="MJ/km">6.221</FuelConsumption>
+					<FuelConsumption unit="MJ/t-km">6.223</FuelConsumption>
+					<FuelConsumption unit="MJ/m³-km">6.224</FuelConsumption>
+					<FuelConsumption unit="l/100km">6.230</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/t-km">6.2302</FuelConsumption><!-- NOT for gaseous fuels -->
+					<FuelConsumption unit="l/m³-km">6.230301</FuelConsumption><!-- only for lorries--><!-- NOT for gaseous fuels -->
+				</Fuel>
+				<CO2 unit="g/km">8.1</CO2>
+				<CO2 unit="g/t-km">8.3</CO2>
+				<CO2 unit="g/m³-km">8.4</CO2>
+			</Total>
+		</Result>
+		<!-- ICE only, non-OCV HEV (and H2 only ICE in future) Lorry -->
+	</Results>
+</VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_Conv_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..afd621f890f029d84a17fab9d304234e7faa6d88
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_Conv_Bus.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" 
+xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" 
+xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1  V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd">
+	<Results>
+		<Status>success</Status>
+		<Result status="success">
+			<PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup>
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">15000</TotalVehicleMass>
+				<Payload unit="kg">15000</Payload>
+				<PassengerCount>2</PassengerCount>
+			</SimulationParameters>
+			<Fuel type="NG CI">
+				<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+			</Fuel>
+		</Result>
+	</Results>
+</vif:VectoMockResults>
+
+
diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_OVC-HEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a33e6ef4186b047b65e48713a927e9cc9af3a81
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_OVC-HEV_Bus.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" 
+xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1  V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd">
+	<Results>
+		<Status>success</Status>
+		<Result status="success">
+			<PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup>
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">15000</TotalVehicleMass>
+				<Payload unit="kg">15000</Payload>
+				<PassengerCount>2</PassengerCount>
+			</SimulationParameters>
+			<OVCMode type="charge depleting">
+				<Fuel type="NG CI">
+					<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+				</Fuel>
+				<ElectricEnergyConsumption>
+					<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+				</ElectricEnergyConsumption>
+			</OVCMode>
+			<OVCMode type="charge sustaining">
+				<Fuel type="NG CI">
+					<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+				</Fuel>
+				<ElectricEnergyConsumption>
+					<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+				</ElectricEnergyConsumption>
+			</OVCMode>
+		</Result>
+	</Results>
+</vif:VectoMockResults>
diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_PEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c9ef9ec854f41ac123dafb336a18d33702157539
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_PEV_Bus.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" 
+xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1 V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd">
+	<Results>
+		<Status>success</Status>
+		<Result status="success">
+			<PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup>
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">15000</TotalVehicleMass>
+				<Payload unit="kg">15000</Payload>
+				<PassengerCount>2</PassengerCount>
+			</SimulationParameters>
+			<ElectricEnergyConsumption>
+				<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+			</ElectricEnergyConsumption>
+		</Result>
+	</Results>
+</vif:VectoMockResults>
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_non-OVC-HEV_Bus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..998432fee874796d221fe50f8f0fcffb9f241ea5
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupResults/VIF_MockupResults_non-OVC-HEV_Bus.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<vif:VectoMockResults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" 
+xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1  V:\VectoCore\VectoCore\Resources\XSD\VectoOutputMultistep.0.1.xsd">
+	<Results>
+		<Status>success</Status>
+		<Result status="success">
+			<PrimaryVehicleSubgroup>GRP</PrimaryVehicleSubgroup>
+			<Mission>Long Haul</Mission>
+			<SimulationParameters>
+				<TotalVehicleMass unit="kg">15000</TotalVehicleMass>
+				<Payload unit="kg">15000</Payload>
+				<PassengerCount>2</PassengerCount>
+			</SimulationParameters>
+			<Fuel type="NG CI">
+				<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+			</Fuel>
+			<ElectricEnergyConsumption>
+				<EnergyConsumption unit="MJ/km">20.71050</EnergyConsumption>
+			</ElectricEnergyConsumption>
+		</Result>
+	</Results>
+</vif:VectoMockResults>
diff --git a/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs b/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..4313770419fe3e795f334b74d8a3fc2a2181d004
--- /dev/null
+++ b/VectoMockup/VectoMockup/MockupXMLInputDataFactory.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
+
+namespace TUGraz.VectoMockup
+{
+    internal class MockupXMLInputDataFactory : XMLInputDataFactory
+	{
+		private const string prefix = "urn:tugraz:ivt:VectoAPI:";
+		private readonly HashSet<string> _supportedNamespaces = new HashSet<string>() {
+			prefix + "DeclarationDefinitions:v2.4",
+			prefix + "VectoOutputMultistep:v0.1",
+			
+		};
+
+		#region Overrides of XMLInputDataFactory
+
+
+		protected override IMultistepBusInputDataProvider ReadMultistageDeclarationJob(XmlDocument xmlDoc, string source)
+		{
+			var ret =  base.ReadMultistageDeclarationJob(xmlDoc, source);
+
+			return ret;
+		}
+
+		protected override IEngineeringInputDataProvider ReadEngineeringJob(XmlDocument xmlDoc, string source)
+		{
+			throw new VectoException("Engineering Mode is not supported in Mockup Vecto");
+		}
+
+		protected override IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source)
+		{
+			var ret = base.ReadDeclarationJob(xmlDoc, source);
+			NamespaceSupported(ret.JobInputData.Vehicle.XMLSource.SchemaInfo.SchemaType.QualifiedName.Namespace);
+			return ret;
+		}
+
+		private void NamespaceSupported(string ns)
+		{
+			if (!_supportedNamespaces.Contains(ns)) {
+				throw new VectoException($"Namespace {ns} not supported in Mockup Vecto!");
+			}
+		}
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..80dc0573315abdb38d7c46e0f7c9b8963e40b676
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/CIFMockupModule.cs
@@ -0,0 +1,309 @@
+using Ninject;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoMockup.Reports;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    // ReSharper disable once InconsistentNaming
+    public class CIFMockupModule : AbstractNinjectModule
+    {
+        #region Overrides of NinjectModule
+
+        public override void Load()
+        {
+			Kernel.Bind<ICustomerInformationFileFactory>().To<MockupCustomerInformationFileFactory>()
+                .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope();
+
+        }
+
+        #endregion
+    }
+
+	public class MockupCustomerInformationFileFactory : ICustomerInformationFileFactory
+    {
+        private readonly ICustomerInformationFileFactory _cifFactory;
+
+        public MockupCustomerInformationFileFactory(ICustomerInformationFileFactory cifFactory)
+        {
+            _cifFactory = cifFactory;
+        }
+
+        #region Implementation of ICustomerInformationFileFactory
+
+        public IXMLCustomerReport GetCustomerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId,
+            bool exempted, bool iepc, bool ihpc)
+        {
+            return new MockupCustomerReport(_cifFactory.GetCustomerReport(vehicleType, jobType, archId, exempted, iepc, ihpc), exempted);
+        }
+
+        public IXmlTypeWriter GetConventionalLorryVehicleType()
+        {
+            return _cifFactory.GetConventionalLorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_PxLorryVehicleType()
+        {
+            return _cifFactory.GetHEV_PxLorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S2_LorryVehicleType()
+        {
+            return _cifFactory.GetHEV_S2_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S3_LorryVehicleType()
+        {
+            return _cifFactory.GetHEV_S3_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S4_LorryVehicleType()
+        {
+            return _cifFactory.GetHEV_S4_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_IEPC_LorryVehicleType()
+        {
+            return _cifFactory.GetHEV_IEPC_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E2_LorryVehicleType()
+        {
+            return _cifFactory.GetPEV_E2_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E3_LorryVehicleType()
+        {
+            return _cifFactory.GetPEV_E3_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E4_LorryVehicleType()
+        {
+            return _cifFactory.GetPEV_E4_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_IEPC_LorryVehicleType()
+        {
+            return _cifFactory.GetPEV_IEPC_LorryVehicleType();
+        }
+
+		public IXmlTypeWriter GetExempted_LorryVehicleType()
+		{
+			return _cifFactory.GetExempted_LorryVehicleType();
+		}
+
+		public IXmlTypeWriter GetConventional_CompletedBusVehicleType()
+        {
+            return _cifFactory.GetConventional_CompletedBusVehicleType();
+        }
+
+		public IXmlTypeWriter GetHEV_Px_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetHEV_Px_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetHEV_IHPC_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetHEV_IHPC_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetHEV_S2_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetHEV_S2_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetHEV_S3_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetHEV_S3_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetHEV_S4_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetHEV_S4_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetHEV_IEPC_S_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetHEV_IEPC_S_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetPEV_E2_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetPEV_E2_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetPEV_E3_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetPEV_E3_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetPEV_E4_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetPEV_E4_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetPEV_IEPC_CompletedBusVehicleType()
+		{
+			return _cifFactory.GetPEV_IEPC_CompletedBusVehicleType();
+		}
+
+
+		public IXmlTypeWriter GetExemptedCompletedBusVehicleType()
+		{
+			return _cifFactory.GetExemptedCompletedBusVehicleType();
+		}
+
+		public IReportVehicleOutputGroup GetGeneralVehicleSequenceGroupWriter()
+        {
+            return _cifFactory.GetGeneralVehicleSequenceGroupWriter();
+        }
+
+        public IReportOutputGroup GetLorryGeneralVehicleSequenceGroupWriter()
+        {
+            return _cifFactory.GetLorryGeneralVehicleSequenceGroupWriter();
+        }
+
+        public IReportOutputGroup GetConventionalLorryVehicleSequenceGroupWriter()
+        {
+            return _cifFactory.GetConventionalLorryVehicleSequenceGroupWriter();
+        }
+
+		public IReportOutputGroup GetConventionalCompletedBusVehicleSequenceGroupWriter()
+		{
+			return _cifFactory.GetConventionalCompletedBusVehicleSequenceGroupWriter();
+		}
+
+		public IReportOutputGroup GetEngineGroup()
+        {
+            return _cifFactory.GetEngineGroup();
+        }
+
+        public IReportOutputGroup GetTransmissionGroup()
+        {
+            return _cifFactory.GetTransmissionGroup();
+        }
+
+		public IReportOutputGroup GetTransmissionGroupNoGearbox()
+		{
+			return _cifFactory.GetTransmissionGroupNoGearbox();
+		}
+
+		public IReportOutputGroup GetAxleWheelsGroup()
+        {
+            return _cifFactory.GetAxleWheelsGroup();
+        }
+
+        public IReportOutputGroup GetLorryAuxGroup()
+        {
+            return _cifFactory.GetLorryAuxGroup();
+        }
+
+        public IReportOutputGroup GetConventionalCompletedBusAuxGroup()
+        {
+            return _cifFactory.GetConventionalCompletedBusAuxGroup();
+        }
+
+		public IReportOutputGroup GetHEV_Px_IHPC_CompletedBusAuxGroup()
+		{
+			return _cifFactory.GetHEV_Px_IHPC_CompletedBusAuxGroup();
+		}
+
+		public IReportOutputGroup GetHEV_Sx_CompletedBusAuxGroup()
+		{
+			return _cifFactory.GetHEV_Sx_CompletedBusAuxGroup();
+		}
+
+		public IReportOutputGroup GetPEV_CompletedBusAuxGroup()
+		{
+			return _cifFactory.GetPEV_CompletedBusAuxGroup();
+		}
+
+		public IReportOutputGroup GetHEV_LorryVehicleSequenceGroupWriter()
+        {
+            return _cifFactory.GetHEV_LorryVehicleSequenceGroupWriter();
+        }
+
+		public IReportOutputGroup GetHEV_CompletedBusVehicleSequenceGroupWriter()
+		{
+			return _cifFactory.GetHEV_CompletedBusVehicleSequenceGroupWriter();
+		}
+
+		public IReportOutputGroup GetHEV_LorryVehicleTypeGroup()
+        {
+            return _cifFactory.GetHEV_LorryVehicleTypeGroup();
+        }
+
+        public IReportOutputGroup GetElectricMachineGroup()
+        {
+            return _cifFactory.GetElectricMachineGroup();
+        }
+
+        public IReportOutputGroup GetREESSGroup()
+        {
+            return _cifFactory.GetREESSGroup();
+        }
+
+        public IReportOutputGroup GetPEV_LorryVehicleTypeGroup()
+        {
+            return _cifFactory.GetPEV_LorryVehicleTypeGroup();
+        }
+
+        public IReportOutputGroup GetPEV_LorryVehicleSequenceGroupWriter()
+        {
+            return _cifFactory.GetPEV_LorryVehicleSequenceGroupWriter();
+        }
+
+		public IReportOutputGroup GetPEV_CompletedBusVehicleSequenceGroupWriter()
+		{
+			return _cifFactory.GetPEV_CompletedBusVehicleSequenceGroupWriter();
+		}
+
+		public IReportOutputGroup GetCompletedBusVehicleTypeGroup()
+        {
+            return _cifFactory.GetCompletedBusVehicleTypeGroup();
+        }
+
+		public IReportOutputGroup GetExemptedCompletedBusVehicleTypeGroup()
+		{
+			return _cifFactory.GetExemptedCompletedBusVehicleTypeGroup();
+		}
+
+		public IReportCompletedBusOutputGroup GetGeneralVehicleSequenceGroupWriterCompletedBus()
+        {
+            return _cifFactory.GetGeneralVehicleSequenceGroupWriterCompletedBus();
+        }
+
+		public ICIFAdasType GetConventionalADASType()
+		{
+			return _cifFactory.GetConventionalADASType();
+		}
+
+		public ICIFAdasType GetHEVADASType()
+		{
+			return _cifFactory.GetHEVADASType();
+		}
+
+		public ICIFAdasType GetPEVADASType()
+		{
+			return _cifFactory.GetPEVADASType();
+		}
+
+		public IReportOutputGroup GetPEVCompletedBusVehicleTypeGroup()
+		{
+			return _cifFactory.GetPEVCompletedBusVehicleTypeGroup();
+		}
+
+		public IReportOutputGroup GetIEPCTransmissionGroup()
+		{
+			return _cifFactory.GetIEPCTransmissionGroup();
+		}
+
+		#endregion
+    }
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6b51536cf11d869d421e0a2113249bbfac07b1ca
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/MRFMockupModule.cs
@@ -0,0 +1,587 @@
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.CompletedBus;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoMockup.Reports;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    // ReSharper disable once InconsistentNaming
+    public class MRFMockupModule : AbstractNinjectModule
+    {
+        #region Overrides of NinjectModule
+
+        public override void Load()
+        {
+            Kernel.Bind<IManufacturerReportFactory>().To<MockupManufacturerReportFactory>()
+                .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope();
+        }
+
+        #endregion
+    }
+
+
+	public class MockupManufacturerReportFactory : IManufacturerReportFactory
+    {
+        private IManufacturerReportFactory _manufacturerReportFactoryImplementation;
+
+        #region Implementation of IManufacturerReportFactory
+
+        public MockupManufacturerReportFactory(IManufacturerReportFactory mrfFactory)
+        {
+            _manufacturerReportFactoryImplementation = mrfFactory;
+        }
+        public IXMLManufacturerReport GetConventionalLorryManufacturerReport()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalLorryManufacturerReport();
+        }
+
+        public IXMLManufacturerReport GetManufacturerReport(VehicleCategory vehicleType, VectoSimulationJobType jobType,
+            ArchitectureID archId, bool exempted, bool iepc, bool ihpc)
+        {
+            return new MockupManufacturerReport(_manufacturerReportFactoryImplementation.GetManufacturerReport(vehicleType, jobType, archId, exempted, iepc, ihpc), exempted);
+        }
+
+        public IXmlTypeWriter GetConventionalLorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalLorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_Px_IHCP_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_Px_IHCP_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S2_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S2_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S3_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S3_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S4_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S4_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_IEPC_S_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E2_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E2_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E3_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E3_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E4_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E4_LorryVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_IEPC_LorryVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_IEPC_LorryVehicleType();
+        }
+
+		public IXmlTypeWriter GetExempted_LorryVehicleType()
+		{
+			return _manufacturerReportFactoryImplementation.GetExempted_LorryVehicleType();
+		}
+
+		public IXmlTypeWriter GetConventional_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventional_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_Px_IHPC_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S2_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S2_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S3_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S3_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_S4_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S4_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E2_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E2_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E3_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E3_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_E4_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E4_PrimaryBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_IEPC_PrimaryBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_IEPC_PrimaryBusVehicleType();
+        }
+
+		public IXmlTypeWriter GetExempted_PrimaryBusVehicleType()
+		{
+			return _manufacturerReportFactoryImplementation.GetExempted_PrimaryBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetConventional_CompletedBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventional_CompletedBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetHEV_CompletedBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_CompletedBusVehicleType();
+        }
+
+        public IXmlTypeWriter GetPEV_CompletedBusVehicleType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_CompletedBusVehicleType();
+        }
+
+		public IXmlTypeWriter GetExempted_CompletedBusVehicleType()
+		{
+			return _manufacturerReportFactoryImplementation.GetExempted_CompletedBusVehicleType();
+		}
+
+		public IXmlTypeWriter GetConventionalLorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalLorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_Px_IHCP_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_Px_IHCP_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_S2_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S2_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_S3_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S3_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_S4_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S4_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_IEPC_S_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_E2_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E2_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_E3_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E3_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_E4_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E4_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_IEPC_S_LorryComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_IEPC_S_LorryComponentsType();
+        }
+
+        public IXmlTypeWriter GetConventional_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventional_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_Px_IHPC_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_Px_IHPC_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_S2_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S2_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_S3_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S3_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_S4_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_S4_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_IEPC_S_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_IEPC_S_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_E2_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E2_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_E3_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E3_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_E4_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_E4_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_IEPC_PrimaryBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_IEPC_PrimaryBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetConventional_CompletedBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventional_CompletedBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetHEV_CompletedBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_CompletedBusComponentsType();
+        }
+
+        public IXmlTypeWriter GetPEV_CompletedBusComponentsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_CompletedBusComponentsType();
+        }
+
+        public IReportVehicleOutputGroup GetGeneralVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetGeneralVehicleOutputGroup();
+        }
+
+        public IReportOutputGroup GetGeneralLorryVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetGeneralLorryVehicleOutputGroup();
+        }
+
+        public IReportOutputGroup GetHEV_VehicleSequenceGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_VehicleSequenceGroup();
+        }
+
+        public IReportOutputGroup GetPEV_VehicleSequenceGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_VehicleSequenceGroup();
+        }
+
+        public IReportOutputGroup GetConventionalLorryVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalLorryVehicleOutputGroup();
+        }
+
+        public IReportOutputGroup GetHEV_lorryVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_lorryVehicleOutputGroup();
+        }
+
+        public IReportOutputGroup GetPEV_lorryVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_lorryVehicleOutputGroup();
+        }
+
+        public IReportOutputGroup GetHEV_lorryVehicleOutputSequenceGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_lorryVehicleOutputSequenceGroup();
+        }
+
+        public IReportOutputGroup GetPrimaryBusGeneralVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusGeneralVehicleOutputGroup();
+        }
+
+		public IReportOutputGroup GetExemptedPrimaryBusGeneralVehicleOutputGroup()
+		{
+			return _manufacturerReportFactoryImplementation.GetExemptedPrimaryBusGeneralVehicleOutputGroup();
+		}
+
+		public IReportOutputGroup GetHEV_PrimaryBusVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_PrimaryBusVehicleOutputGroup();
+        }
+
+        public IXmlTypeWriter GetEngineTorqueLimitationsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetEngineTorqueLimitationsType();
+        }
+
+        public IXmlTypeWriter GetEngineType()
+        {
+            return _manufacturerReportFactoryImplementation.GetEngineType();
+        }
+
+        public IXmlTypeWriter GetRetarderType()
+        {
+            return _manufacturerReportFactoryImplementation.GetRetarderType();
+        }
+
+        public IXmlTypeWriter GetTorqueConverterType()
+        {
+            return _manufacturerReportFactoryImplementation.GetTorqueConverterType();
+        }
+
+        public IXmlTypeWriter GetAngleDriveType()
+        {
+            return _manufacturerReportFactoryImplementation.GetAngleDriveType();
+        }
+
+        public IXmlTypeWriter GetTransmissionType()
+        {
+            return _manufacturerReportFactoryImplementation.GetTransmissionType();
+        }
+
+        public IXmlTypeWriter GetElectricMachinesType()
+        {
+            return _manufacturerReportFactoryImplementation.GetElectricMachinesType();
+        }
+
+        public IXmlTypeWriter GetAxleGearType()
+        {
+            return _manufacturerReportFactoryImplementation.GetAxleGearType();
+        }
+
+        public IXmlTypeWriter GetAxleWheelsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetAxleWheelsType();
+        }
+
+        public IMRFAdasType GetConventionalADASType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalADASType();
+        }
+
+        public IMRFAdasType GetHEVADASType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEVADASType();
+        }
+
+        public IMRFAdasType GetPEVADASType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEVADASType();
+        }
+
+        public IXmlTypeWriter GetIEPCSpecifications()
+        {
+            return _manufacturerReportFactoryImplementation.GetIEPCSpecifications();
+        }
+
+        public IXmlTypeWriter GetREESSSpecificationsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetREESSSpecificationsType();
+        }
+
+        public IMrfAirdragType GetAirdragType()
+        {
+            return _manufacturerReportFactoryImplementation.GetAirdragType();
+        }
+
+        public IMRFLorryAuxiliariesType GetConventionalLorryAuxType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalLorryAuxType();
+        }
+
+        public IMRFLorryAuxiliariesType GetHEV_LorryAuxiliariesType()
+        {
+            return _manufacturerReportFactoryImplementation.GetHEV_LorryAuxiliariesType();
+        }
+
+        public IMRFLorryAuxiliariesType GetPEV_LorryAuxiliariesType()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_LorryAuxiliariesType();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusAuxType_Conventional()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_Conventional();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_P()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_HEV_P();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusAuxType_HEV_S()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_HEV_S();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusAuxType_PEV()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusAuxType_PEV();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusPneumaticSystemType_Conventional_HEV_Px();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_HEV_S()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusPneumaticSystemType_HEV_S();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusPneumaticSystemType_PEV_IEPC()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusPneumaticSystemType_PEV_IEPC();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_Conventional_HEV()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusElectricSystemType_Conventional_HEV();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusElectricSystemType_PEV()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusElectricSystemType_PEV();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_Conventional_HEV()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusHVACSystemType_Conventional_HEV();
+        }
+
+        public IMRFBusAuxiliariesType GetPrimaryBusHVACSystemType_PEV()
+        {
+            return _manufacturerReportFactoryImplementation.GetPrimaryBusHVACSystemType_PEV();
+        }
+
+        public IMRFBusAuxiliariesType GetConventionalCompletedBusAuxType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalCompletedBusAuxType();
+        }
+
+        public IMRFBusAuxiliariesType GetConventionalCompletedBus_HVACSystemType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalCompletedBus_HVACSystemType();
+        }
+
+        public IMRFBusAuxiliariesType GetConventionalCompletedBusElectricSystemType()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalCompletedBusElectricSystemType();
+        }
+
+		public IMRFBusAuxiliariesType GetHEVCompletedBusAuxType()
+		{
+			return _manufacturerReportFactoryImplementation.GetHEVCompletedBusAuxType();
+		}
+
+		public IMRFBusAuxiliariesType GetHEVCompletedBus_HVACSystemType()
+		{
+			return _manufacturerReportFactoryImplementation.GetHEVCompletedBus_HVACSystemType();
+		}
+
+		public IMRFBusAuxiliariesType GetHEVCompletedBusElectricSystemType()
+		{
+			return _manufacturerReportFactoryImplementation.GetHEVCompletedBusElectricSystemType();
+		}
+
+		public IMRFBusAuxiliariesType GetPEVCompletedBusAuxType()
+		{
+			return _manufacturerReportFactoryImplementation.GetPEVCompletedBusAuxType();
+		}
+
+		public IMRFBusAuxiliariesType GetPEVCompletedBus_HVACSystemType()
+		{
+			return _manufacturerReportFactoryImplementation.GetPEVCompletedBus_HVACSystemType();
+		}
+
+		public IMRFBusAuxiliariesType GetPEVCompletedBusElectricSystemType()
+		{
+			return _manufacturerReportFactoryImplementation.GetPEVCompletedBusElectricSystemType();
+		}
+
+		public IReportOutputGroup GetPEV_PrimaryBusVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetPEV_PrimaryBusVehicleOutputGroup();
+        }
+
+        public IReportOutputGroup GetConventionalCompletedBusGeneralVehicleOutputGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetConventionalCompletedBusGeneralVehicleOutputGroup();
+        }
+
+		public IReportOutputGroup GetHEVCompletedBusGeneralVehicleOutputGroup()
+		{
+			return _manufacturerReportFactoryImplementation.GetHEVCompletedBusGeneralVehicleOutputGroup();
+		}
+
+		public IReportOutputGroup GetPEVCompletedBusGeneralVehicleOutputGroup()
+		{
+			return _manufacturerReportFactoryImplementation.GetPEVCompletedBusGeneralVehicleOutputGroup();
+		}
+
+		public IReportVehicleOutputGroup GetCompletedBusSequenceGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetCompletedBusSequenceGroup();
+        }
+
+        public IReportVehicleOutputGroup GetCompletedBusDimensionSequenceGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetCompletedBusDimensionSequenceGroup();
+        }
+
+        public IMrfBusAuxGroup GetCompletedBus_HVACSystemGroup()
+        {
+            return _manufacturerReportFactoryImplementation.GetCompletedBus_HVACSystemGroup();
+        }
+
+		public IMrfBusAuxGroup GetCompletedBus_xEVHVACSystemGroup()
+		{
+			return _manufacturerReportFactoryImplementation.GetCompletedBus_xEVHVACSystemGroup();
+		}
+
+		public IMrfVehicleType GetBoostingLimitationsType()
+        {
+            return _manufacturerReportFactoryImplementation.GetBoostingLimitationsType();
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Ninject/MockupModule.cs b/VectoMockup/VectoMockup/Ninject/MockupModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cbc57cb97423faeaf92992ae5b6d106e4bd71cc1
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/MockupModule.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Ninject.Modules;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.InputData;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoMockup.Reports;
+using TUGraz.VectoMockup.Simulation.RundataFactories;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    public class MockupModule : AbstractNinjectModule
+    {
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			Rebind<IVectoRunDataFactoryFactory>().To<VectoMockUpRunDataFactoryFactory>();
+			Rebind<IXMLDeclarationReportFactory>().To<MockupReportFactory>();
+			Rebind<IXMLInputDataReader>().To<MockupXMLInputDataFactory>();
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs b/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b930fad6120400ee8df515d36dd518c4278a13f2
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/SimulatorFactoryModule.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
+using TUGraz.VectoMockup.Simulation.SimulatorFactory;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    public class SimulatorFactoryModule : AbstractNinjectModule
+    {
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			Kernel.Rebind<ISimulatorFactory>().To<MockupDeclarationSimulatorFactory>().Named(ExecutionMode.Declaration.ToString());
+			//Rebind clears all bindings for ISimulatorFactory
+			Kernel.Bind<ISimulatorFactory>().To<MockupEngineeringSimulatorFactory>().Named(ExecutionMode.Engineering.ToString());
+			//Bind<ISimulatorFactory>().To<SimulatorFactoryEngineering>().Named(ExecutionMode.Engineering.ToString());
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0eb7a2f9ad9d42de4353a530b2a41d8b82a1952e
--- /dev/null
+++ b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs
@@ -0,0 +1,453 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components;
+using TUGraz.VectoMockup.Reports;
+
+namespace TUGraz.VectoMockup.Ninject
+{
+    public class VIFMockupModule : AbstractNinjectModule
+    {
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			Kernel.Bind<IVIFReportFactory>().To<MockupVIFReportFactory>()
+				.WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope();
+
+			Kernel.Bind<IVIFReportInterimFactory>().To<MockupVIFReportFactory>()
+				.WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope();
+		}
+
+		#endregion
+
+		public class MockupVIFReportFactory : IVIFReportFactory, IVIFReportInterimFactory
+		{
+			private IVIFReportFactory _vifReportFactoryImplementation;
+			private readonly IVIFReportInterimFactory _interimFactory;
+
+
+			public MockupVIFReportFactory(IVIFReportFactory vifReportFactoryImplementation, IVIFReportInterimFactory interimFactory)
+			{
+				_vifReportFactoryImplementation = vifReportFactoryImplementation;
+				_interimFactory = interimFactory;
+			}
+
+
+			#region Implementation of IVIFReportFactory
+
+			public IXMLVehicleInformationFile GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId,
+				bool exempted, bool iepc, bool ihpc)
+			{
+				return new MockupPrimaryVehicleInformationFile(
+					_vifReportFactoryImplementation.GetVIFReport(vehicleType, jobType, archId, exempted, iepc,
+						ihpc));
+			}
+			
+			public IXMLMultistepIntermediateReport GetInterimVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType,
+				ArchitectureID archId, bool exempted, bool iepc, bool ihpc)
+			{
+				return new MockupInterimVehicleInformationFile(
+					_interimFactory.GetInterimVIFReport(vehicleType, jobType, archId, exempted,
+						iepc, ihpc));
+			}
+
+			IXmlMultistepTypeWriter IVIFReportInterimFactory.GetConventionalVehicleType()
+			{
+				return _interimFactory.GetConventionalVehicleType();
+			}
+
+			public IXmlMultistepTypeWriter GetHEVVehicleType()
+			{
+				return _interimFactory.GetHEVVehicleType();
+			}
+
+			public IXmlMultistepTypeWriter GetPEVVehicleType()
+			{
+				return _interimFactory.GetPEVVehicleType();
+			}
+
+			public IXmlMultistepTypeWriter GetIEPCVehicleType()
+			{
+				return _interimFactory.GetIEPCVehicleType();
+			}
+
+			IXmlMultistepTypeWriter IVIFReportInterimFactory.GetExemptedVehicleType()
+			{
+				return _interimFactory.GetExemptedVehicleType();
+			}
+
+			public IReportMultistepCompletedBusOutputGroup GetCompletedBusGeneralParametersGroup()
+			{
+				return _interimFactory.GetCompletedBusGeneralParametersGroup();
+			}
+
+			public IReportMultistepCompletedBusOutputGroup GetCompletedBusParametersGroup()
+			{
+				return _interimFactory.GetCompletedBusParametersGroup();
+			}
+
+			public IReportMultistepCompletedBusOutputGroup GetCompletedBusPassengerCountGroup()
+			{
+				return _interimFactory.GetCompletedBusPassengerCountGroup();
+			}
+
+			public IReportMultistepCompletedBusOutputGroup GetCompletedBusDimensionsGroup()
+			{
+				return _interimFactory.GetCompletedBusDimensionsGroup();
+			}
+
+			public IReportMultistepCompletedBusTypeWriter GetInterimConventionalAuxiliariesType()
+			{
+				return _interimFactory.GetInterimConventionalAuxiliariesType();
+			}
+
+			public IReportMultistepCompletedBusTypeWriter GetInterimxEVAuxiliariesType()
+			{
+				return _interimFactory.GetInterimxEVAuxiliariesType();
+			}
+
+			public IVIFFAdasType GetConventionalInterimADASType()
+			{
+				return _interimFactory.GetConventionalInterimADASType();
+			}
+
+			public IVIFFAdasType GetHEVInterimADASType()
+			{
+				return _interimFactory.GetHEVInterimADASType();
+			}
+
+			public IVIFFAdasType GetPEVInterimADASType()
+			{
+				return _interimFactory.GetPEVInterimADASType();
+			}
+
+			public IVIFFAdasType GetIEPCInterimADASType()
+			{
+				return _interimFactory.GetIEPCInterimADASType();
+			}
+
+			public IReportMultistepCompletedBusTypeWriter GetConventionalInterimComponentsType()
+			{
+				return _interimFactory.GetConventionalInterimComponentsType();
+			}
+
+			public IReportMultistepCompletedBusTypeWriter GetxEVInterimComponentsType()
+			{
+				return _interimFactory.GetxEVInterimComponentsType();
+			}
+
+			public IReportMultistepCompletedBusTypeWriter GetInterimAirdragType()
+			{
+				return _interimFactory.GetInterimAirdragType();
+			}
+
+			public IXmlTypeWriter GetConventionalVehicleType()
+			{
+				return _vifReportFactoryImplementation.GetConventionalVehicleType();
+			}
+
+			public IXmlTypeWriter GetHevIepcSVehicleType()
+			{
+				return _vifReportFactoryImplementation.GetHevIepcSVehicleType();
+			}
+
+			public IXmlTypeWriter GetHevPxVehicleType()
+			{
+				return _vifReportFactoryImplementation.GetHevPxVehicleType();
+			}
+
+			public IXmlTypeWriter GetHevS2VehicleType()
+			{
+				return _vifReportFactoryImplementation.GetHevS2VehicleType();
+			}
+
+			public IXmlTypeWriter GetHevS3VehicleType()
+			{
+				return _vifReportFactoryImplementation.GetHevS3VehicleType();
+			}
+
+			public IXmlTypeWriter GetHevS4VehicleType()
+			{
+				return _vifReportFactoryImplementation.GetHevS4VehicleType();
+			}
+
+			public IXmlTypeWriter GetIepcVehicleType()
+			{
+				return _vifReportFactoryImplementation.GetIepcVehicleType();
+			}
+
+			public IXmlTypeWriter GetPevE2VehicleType()
+			{
+				return _vifReportFactoryImplementation.GetPevE2VehicleType();
+			}
+
+			public IXmlTypeWriter GetPevE3VehicleType()
+			{
+				return _vifReportFactoryImplementation.GetPevE3VehicleType();
+			}
+
+			public IXmlTypeWriter GetPevE4VehicleType()
+			{
+				return _vifReportFactoryImplementation.GetPevE4VehicleType();
+			}
+
+			public IXmlTypeWriter GetPevIEPCVehicleType()
+			{
+				return _vifReportFactoryImplementation.GetPevIEPCVehicleType();
+			}
+
+			public IXmlTypeWriter GetExemptedVehicleType()
+			{
+				return _vifReportFactoryImplementation.GetExemptedVehicleType();
+			}
+
+			public IXmlTypeWriter GetConventionalComponentType()
+			{
+				return _vifReportFactoryImplementation.GetConventionalComponentType();
+			}
+
+			public IXmlTypeWriter GetHevIepcSComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetHevIepcSComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetHevPxComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetHevPxComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetHevS2ComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetHevS2ComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetHevS3ComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetHevS3ComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetHevS4ComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetHevS4ComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetPevE2ComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetPevE2ComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetPevE3ComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetPevE3ComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetPevE4ComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetPevE4ComponentVIFType();
+			}
+
+			public IXmlTypeWriter GetPevIEPCComponentVIFType()
+			{
+				return _vifReportFactoryImplementation.GetPevIEPCComponentVIFType();
+			}
+
+			public IVIFFAdasType GetConventionalADASType()
+			{
+				return _vifReportFactoryImplementation.GetConventionalADASType();
+			}
+
+			public IVIFFAdasType GetHEVADASType()
+			{
+				return _vifReportFactoryImplementation.GetHEVADASType();
+			}
+
+			public IVIFFAdasType GetPEVADASType()
+			{
+				return _vifReportFactoryImplementation.GetPEVADASType();
+			}
+
+			public IVIFFAdasType GetIEPCADASType()
+			{
+				return _vifReportFactoryImplementation.GetIEPCADASType();
+			}
+
+			public IXmlTypeWriter GetTorqueConvertType()
+			{
+				return _vifReportFactoryImplementation.GetTorqueConvertType();
+			}
+
+			public IXmlTypeWriter GetIepcType()
+			{
+				return _vifReportFactoryImplementation.GetIepcType();
+			}
+
+			public IXmlTypeWriter GetTorqueLimitsType()
+			{
+				return _vifReportFactoryImplementation.GetTorqueLimitsType();
+			}
+
+			public IXmlTypeWriter GetTransmissionType()
+			{
+				return _vifReportFactoryImplementation.GetTransmissionType();
+			}
+
+			public IReportOutputGroup GetConventionalVehicleGroup()
+			{
+				return _vifReportFactoryImplementation.GetConventionalVehicleGroup();
+			}
+
+			public IReportOutputGroup GetPrimaryBusGeneralParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetPrimaryBusGeneralParameterGroup();
+			}
+
+			public IReportOutputGroup GetPrimaryBusChassisParameterGroup()
+			{
+				throw new NotImplementedException();
+			}
+
+			public IReportOutputGroup GetPrimaryBusRetarderParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetPrimaryBusRetarderParameterGroup();
+			}
+
+			public IReportOutputGroup GetPrimaryBusXevParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetPrimaryBusXevParameterGroup();
+			}
+
+			public IReportOutputGroup GetHevIepcSVehicleParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetHevIepcSVehicleParameterGroup();
+			}
+
+			public IReportOutputGroup GetHevSxVehicleParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetHevSxVehicleParameterGroup();
+			}
+
+			public IReportOutputGroup GetIepcVehicleParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetIepcVehicleParameterGroup();
+			}
+
+			public IReportOutputGroup GetPevExVehicleParmeterGroup()
+			{
+				return _vifReportFactoryImplementation.GetPevExVehicleParmeterGroup();
+			}
+
+			public IReportOutputGroup GetPevIEPCVehicleParmeterGroup()
+			{
+				return _vifReportFactoryImplementation.GetPevIEPCVehicleParmeterGroup();
+			}
+
+			public IReportOutputGroup GetHevPxVehicleParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetHevPxVehicleParameterGroup();
+			}
+
+			public IReportOutputGroup GetExemptedVehicleParameterGroup()
+			{
+				return _vifReportFactoryImplementation.GetExemptedVehicleParameterGroup();
+			}
+
+			public IXmlTypeWriter GetAngelDriveType()
+			{
+				return _vifReportFactoryImplementation.GetAngelDriveType();
+			}
+
+			public IXmlTypeWriter GetRetarderType()
+			{
+				return _vifReportFactoryImplementation.GetRetarderType();
+			}
+
+			public IXmlTypeWriter GetAuxiliaryType()
+			{
+				return _vifReportFactoryImplementation.GetAuxiliaryType();
+			}
+
+			public IXmlTypeWriter GetAuxiliaryHevSType()
+			{
+				return _vifReportFactoryImplementation.GetAuxiliaryHevSType();
+			}
+
+			public IXmlTypeWriter GetAuxiliaryIEPC_SType()
+			{
+				return _vifReportFactoryImplementation.GetAuxiliaryIEPC_SType();
+			}
+
+			public IXmlTypeWriter GetAuxiliaryHevPType()
+			{
+				return _vifReportFactoryImplementation.GetAuxiliaryHevPType();
+			}
+
+			public IXmlTypeWriter GetAuxiliaryIEPCType()
+			{
+				return _vifReportFactoryImplementation.GetAuxiliaryIEPCType();
+			}
+
+			public IXmlTypeWriter GetAuxiliaryPEVType()
+			{
+				return _vifReportFactoryImplementation.GetAuxiliaryPEVType();
+			}
+
+			public IXmlTypeWriter GetAxlegearType()
+			{
+				return _vifReportFactoryImplementation.GetAxlegearType();
+			}
+
+			public IXmlTypeWriter GetAxleWheelsType()
+			{
+				return _vifReportFactoryImplementation.GetAxleWheelsType();
+			}
+
+			public IXmlTypeWriter GetBoostingLimitationsType()
+			{
+				return _vifReportFactoryImplementation.GetBoostingLimitationsType();
+			}
+
+			public IXmlTypeWriter GetElectricEnergyStorageType()
+			{
+				return _vifReportFactoryImplementation.GetElectricEnergyStorageType();
+			}
+
+			public IXmlTypeWriter GetElectricMachineGENType()
+			{
+				return _vifReportFactoryImplementation.GetElectricMachineGENType();
+			}
+
+			public IXmlElectricMachineSystemType GetElectricMachineSystemType()
+			{
+				return _vifReportFactoryImplementation.GetElectricMachineSystemType();
+			}
+
+			public IXmlTypeWriter GetElectricMachineType()
+			{
+				return _vifReportFactoryImplementation.GetElectricMachineType();
+			}
+
+			public IXmlTypeWriter GetElectricMotorTorqueLimitsType()
+			{
+				return _vifReportFactoryImplementation.GetElectricMotorTorqueLimitsType();
+			}
+
+			public IXmlTypeWriter GetEngineType()
+			{
+				return _vifReportFactoryImplementation.GetEngineType();
+			}
+
+			#endregion
+		}
+
+	}
+}
diff --git a/VectoMockup/VectoMockup/Reports/IXMLMockupReport.cs b/VectoMockup/VectoMockup/Reports/IXMLMockupReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f5d43b36739186c405bb1df3108dae11455f7ec4
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/IXMLMockupReport.cs
@@ -0,0 +1,11 @@
+using TUGraz.VectoCore.OutputData.XML;
+
+namespace TUGraz.VectoMockup.Reports
+{
+	internal interface IXMLMockupReport
+	{
+		void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue);
+		void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue);
+		void WriteExemptedResults();
+	}
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Reports/MockupCustomerReport.cs b/VectoMockup/VectoMockup/Reports/MockupCustomerReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..01e0401739d9829d804fec28e58c2377a2fcfdf0
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/MockupCustomerReport.cs
@@ -0,0 +1,87 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+
+namespace TUGraz.VectoMockup.Reports
+{
+    public class MockupCustomerReport : IXMLCustomerReport, IXMLMockupReport
+    {
+		private readonly bool _exempted;
+		private readonly AbstractCustomerReport _originalCustomerReport;
+        private XNamespace Cif = AbstractCustomerReport.Cif_0_9;
+        public MockupCustomerReport(IXMLCustomerReport originalReport, bool exempted)
+        {
+			_exempted = exempted;
+			_originalCustomerReport = originalReport as AbstractCustomerReport;
+            _outputDataType = _originalCustomerReport.OutputDataType;
+            Results = new XElement(Cif + XMLNames.Report_Results);
+        }
+
+        private XElement Results;
+        private readonly string _outputDataType;
+        private VectoRunData _modelData;
+        
+        #region Implementation of IXMLCustomerReport
+
+        public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+        {
+            _modelData = modelData;
+            _originalCustomerReport.Initialize(modelData, fuelModes);
+        }
+
+        public XDocument Report
+        {
+            get
+            {
+                var report = _originalCustomerReport.Report;
+                report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']").Single().ReplaceWith(Results);
+
+                return report;
+
+
+            }
+        }
+
+        public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
+        {
+            _originalCustomerReport.WriteResult(resultValue);
+        }
+
+        public void GenerateReport(XElement resultSignature)
+        {
+            _originalCustomerReport.GenerateReport(resultSignature);
+        }
+
+        #endregion
+
+        #region Implementation of IXMLMockupReport
+
+        public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+        {
+            Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Result", _modelData));
+        }
+
+        public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+        {
+            Results.AddFirst(new XElement(Cif + "Status", "success"));
+            Results.AddFirst(new XComment("Always prints success at the moment"));
+            Results.Add(MockupResultReader.GetCIFMockupResult(_outputDataType, resultValue, Cif + "Summary", _modelData));
+        }
+
+		public void WriteExemptedResults()
+		{
+			Results.Add(new XElement(Cif + "Status", "success"));
+			Results.Add(new XElement(Cif + "ExemptedVehicle"));
+        }
+
+		#endregion
+    }
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Reports/MockupManufacturerReport.cs b/VectoMockup/VectoMockup/Reports/MockupManufacturerReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..59a519252b73dc6dc0c79611ef018c4dad6c51d2
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/MockupManufacturerReport.cs
@@ -0,0 +1,95 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+
+namespace TUGraz.VectoMockup.Reports
+{
+	public class MockupManufacturerReport : IXMLManufacturerReport, IXMLMockupReport
+	{
+		private readonly bool _exempted;
+		private AbstractManufacturerReport _ixmlManufacturerReportImplementation;
+		private VectoRunData _modelData;
+
+		private XNamespace Mrf = AbstractManufacturerReport.Mrf_0_9;
+		private readonly string _outputData;
+		private XElement Results { get; set; }
+		public MockupManufacturerReport(IXMLManufacturerReport originalManufacturerReport, bool exempted)
+		{
+			_exempted = exempted;
+			_ixmlManufacturerReportImplementation = originalManufacturerReport as AbstractManufacturerReport;
+			_outputData = _ixmlManufacturerReportImplementation.OutputDataType;
+
+			Results = new XElement(Mrf + XMLNames.Report_Results);
+		}
+
+		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+
+			Results.Add(MockupResultReader.GetMRFMockupResult(_outputData, resultValue, Mrf + "Result", _modelData));
+
+		}
+
+		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			Results.AddFirst(new XElement(Mrf + "Status", "success"));
+			Results.AddFirst(new XComment("Always prints success at the moment"));
+			//Results.Add(MockupResultReader.GetMRFMockupResult(OutputDataType, resultValue, Mrf + "Summary", _ovc));
+		}
+
+		public void WriteExemptedResults()
+		{
+			Results.Add(new XElement(Mrf + "Status", "success"));
+			Results.Add(new XElement(Mrf + "ExemptedVehicle"));
+		}
+
+
+		#region Implementation of IXMLManufacturerReport
+
+
+		public void InitializeVehicleData(IDeclarationInputDataProvider inputData)
+		{
+			_ixmlManufacturerReportImplementation.InitializeVehicleData(inputData);
+		}
+
+		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			_modelData = modelData;
+			_ixmlManufacturerReportImplementation.Initialize(modelData, fuelModes);
+		}
+
+		public XDocument Report
+		{
+			get
+			{
+				var report = _ixmlManufacturerReportImplementation.Report;
+				report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']").Single().ReplaceWith(Results);
+
+				return report;
+			}
+		}
+
+		public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			_ixmlManufacturerReportImplementation.WriteResult(resultValue);
+		}
+
+		public void GenerateReport()
+		{
+			_ixmlManufacturerReportImplementation.GenerateReport();
+		}
+
+		#endregion
+
+
+
+	}
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7d35d9451f2a52e0e790076380920d5526e2f7fd
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs
@@ -0,0 +1,151 @@
+using System;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
+
+
+namespace TUGraz.VectoMockup.Reports
+{
+    class MockupReportFactory : IXMLDeclarationReportFactory, IMockupDeclarationReportFactory
+    {
+
+        private readonly IManufacturerReportFactory _mrfFactory;
+        private readonly ICustomerInformationFileFactory _cifFactory;
+		private readonly IVIFReportFactory _vifFactory;
+		private readonly IVIFReportInterimFactory _interimFactory;
+
+
+		#region Implementation of IXMLDeclarationReportFactory
+
+
+        public MockupReportFactory(IManufacturerReportFactory mrfFactory, ICustomerInformationFileFactory cifFactory,
+			IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory)
+        {
+            _mrfFactory = mrfFactory;
+            _cifFactory = cifFactory;
+			_vifFactory = vifFactory;
+			_interimFactory = interimFactory;
+		}
+
+	
+
+        public IDeclarationReport CreateReport(IInputDataProvider input, IOutputDataWriter outputWriter)
+		{
+            switch (input)
+            {
+                case IMultistepBusInputDataProvider multistageBusInputDataProvider:
+                    break;
+                case ISingleBusInputDataProvider singleBusInputDataProvider:
+                    return new XMLDeclarationReport(outputWriter);
+                case IDeclarationInputDataProvider declarationInputDataProvider:
+                    return CreateDeclarationReport(declarationInputDataProvider, outputWriter);
+                case IMultiStageTypeInputData multiStageTypeInputData:
+                    break;
+                case IMultistageVIFInputData multistageVifInputData:
+                    return CreateDeclarationReport(multistageVifInputData, outputWriter);
+                case IPrimaryVehicleInformationInputDataProvider primaryVehicleInformationInputDataProvider:
+                    break;
+                case IVTPDeclarationInputDataProvider vtpProvider:
+                    {
+                        return null;
+                    }
+                case IMultistagePrimaryAndStageInputDataProvider multistagePrimaryAndStageInputData:
+                    {
+                        return null; //No Report for this type (handled in two simulation steps)
+                    }
+                default:
+                    break;
+
+            }
+            throw new VectoException($"Could not create Declaration Report for {input.GetType()}");
+        }
+
+        public IVTPReport CreateVTPReport(IInputDataProvider input, IOutputDataWriter outputWriter)
+        {
+            return input is IVTPDeclarationInputDataProvider
+                ? new XMLVTPReport(outputWriter)
+                : null;
+        }
+
+        private IDeclarationReport CreateDeclarationReport(IMultistageVIFInputData multistageVifInputData, IOutputDataWriter outputDataWriter)
+        {
+			if (multistageVifInputData.VehicleInputData == null)
+            {
+                var reportCompleted = new XMLDeclarationMockupReportCompletedVehicle(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory,
+					multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle)
+                {
+                    PrimaryVehicleReportInputData = multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle,
+                };
+                return reportCompleted;
+            }
+            else {
+				
+                var report = new XMLDeclarationMockupReportInterimVehicle(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory, _interimFactory,
+					multistageVifInputData.MultistageJobInputData.JobInputData.PrimaryVehicle.Vehicle.ExemptedVehicle);
+                return report;
+            }
+        }
+
+        private IDeclarationReport CreateDeclarationReport(IDeclarationInputDataProvider declarationInputDataProvider,
+            IOutputDataWriter outputDataWriter)
+        {
+            var vehicleCategory = declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory;
+            if (vehicleCategory.IsLorry())
+            {
+                return new XMLDeclarationMockupReport(outputDataWriter, _mrfFactory, _cifFactory, declarationInputDataProvider.JobInputData.Vehicle.ExemptedVehicle);
+            }
+
+            if (vehicleCategory.IsBus())
+            {
+                switch (declarationInputDataProvider.JobInputData.Vehicle.VehicleCategory)
+                {
+                    case VehicleCategory.HeavyBusCompletedVehicle:
+                        throw new NotImplementedException();
+                        return new XMLDeclarationReportCompletedVehicle(outputDataWriter)
+                        {
+                            PrimaryVehicleReportInputData = declarationInputDataProvider.PrimaryVehicleData,
+                        };
+                    case VehicleCategory.HeavyBusPrimaryVehicle:
+                        return new XMLDeclarationMockupPrimaryReport(outputDataWriter, _mrfFactory, _cifFactory, _vifFactory,
+							declarationInputDataProvider.JobInputData.Vehicle.ExemptedVehicle);
+
+                    default:
+                        break;
+                }
+            }
+
+            throw new Exception(
+                $"Could not create DeclarationReport for Vehicle Category{vehicleCategory}");
+        }
+
+        public IVTPReport CreateVTPReport(IVTPDeclarationInputDataProvider input, IOutputDataWriter outputWriter)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
+
+		#region Implementation of IMockupDeclarationReportFactory
+
+		public IManufacturerReportFactory MrfFactory => _mrfFactory;
+		public ICustomerInformationFileFactory CifFactory => _cifFactory;
+
+		public IVIFReportFactory VifFactory => _vifFactory;
+
+		#endregion
+	}
+
+	internal interface IMockupDeclarationReportFactory
+	{
+		IManufacturerReportFactory MrfFactory { get; }
+
+        ICustomerInformationFileFactory CifFactory { get; }
+
+        IVIFReportFactory VifFactory { get; }
+	}
+}
diff --git a/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2c244ecb98da19152005ec297a597928e5cac9d6
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
+
+namespace TUGraz.VectoMockup.Reports
+{
+    public class MockupVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport
+    {
+		private XDocument _report;
+		private XNamespace _tns;
+
+
+		public MockupVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFile)
+		{
+
+		}
+
+
+
+		//private XDocument _report;
+		//private VectoRunData _modelData;
+
+
+		//#region Implementation of IXMLMockupReport
+
+		//public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		//{
+		//	throw new NotImplementedException();
+		//}
+
+		//public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		//{
+		//	throw new NotImplementedException();
+		//}
+
+		//#endregion
+
+		//#region Implementation of IXMLMultistageReport
+
+		//public void Initialize(VectoRunData modelData)
+		//{
+		//	_modelData = modelData;
+		//}
+
+		//public XDocument Report => _report;
+
+		//public void GenerateReport()
+		//{
+		//	throw new NotImplementedException();
+		//}
+
+		//#endregion
+
+		#region Implementation of IXMLPrimaryVehicleReport
+
+		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			throw new NotImplementedException();
+		}
+
+		public void WriteResult(XMLDeclarationReport.ResultEntry result)
+		{
+			throw new NotImplementedException();
+		}
+
+		public void GenerateReport(XElement fullReportHash)
+		{
+			throw new NotImplementedException();
+		}
+
+		public XDocument Report => _report;
+
+		public XNamespace Tns => _tns;
+
+		#endregion
+
+		#region Implementation of IXMLMockupReport
+
+		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			
+		}
+
+		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		{
+		}
+
+		public void WriteExemptedResults()
+		{
+			throw new NotImplementedException();
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs b/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a56c59829de05227ce8012621a1a42a221f1e85a
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/MockupVehicleInformationFile.cs
@@ -0,0 +1,134 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using System.Xml.XPath;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile;
+
+namespace TUGraz.VectoMockup.Reports
+{
+	internal class MockupInterimVehicleInformationFile : IXMLMultistepIntermediateReport, IXMLMockupReport
+	{
+		private readonly IXMLMultistepIntermediateReport _intermediateVifImplementation;
+
+		public MockupInterimVehicleInformationFile(IXMLMultistepIntermediateReport vifImplementation)
+		{
+			_intermediateVifImplementation = vifImplementation;
+		}
+
+		#region Implementation of IXMLMultistepIntermediateReport
+
+		public void Initialize(VectoRunData modelData)
+		{
+			_intermediateVifImplementation.Initialize(modelData);
+		}
+
+		public XDocument Report => _intermediateVifImplementation.Report;
+
+		public void GenerateReport()
+		{
+			_intermediateVifImplementation.GenerateReport();
+		}
+
+		#endregion
+
+		#region Implementation of IXMLMockupReport
+
+		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			
+		}
+
+		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			
+		}
+
+		public void WriteExemptedResults()
+		{
+			
+		}
+
+		#endregion
+	}
+
+
+	internal class MockupPrimaryVehicleInformationFile : IXMLVehicleInformationFile, IXMLMockupReport
+    {
+		
+		private readonly IXMLVehicleInformationFile _vehicleInformationFileImplementation;
+		private VectoRunData _modelData;
+
+		private XElement Results;
+		public MockupPrimaryVehicleInformationFile(IXMLVehicleInformationFile vehicleInformationFileImplementation)
+		{
+			_vehicleInformationFileImplementation = vehicleInformationFileImplementation;
+			Results = new XElement(_vehicleInformationFileImplementation.Tns + XMLNames.Report_Results);
+		}
+
+
+		#region Implementation of IXMLPrimaryVehicleReport
+
+		public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			_vehicleInformationFileImplementation.Initialize(modelData, fuelModes);
+			_modelData = modelData;
+		}
+
+		public void WriteResult(XMLDeclarationReport.ResultEntry result)
+		{
+			_vehicleInformationFileImplementation.WriteResult(result);
+		}
+
+		public XNamespace Tns => _vehicleInformationFileImplementation.Tns;
+
+		#endregion
+
+		#region Implementation of IXMLMockupReport
+
+		public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			var xElement = MockupResultReader.GetVIFMockupResult(Tns.NamespaceName, resultValue, Tns + "Result", _modelData);
+			Results.Add(xElement);
+		}
+
+		public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue)
+		{
+			Results.AddFirst(new XElement(Tns + "Status", "success"));
+			Results.AddFirst(new XComment("Always prints success at the moment"));
+		}
+
+		public void WriteExemptedResults()
+		{
+			Results.Add(new XElement(Tns + "Status", "success"));
+			Results.Add(new XElement(Tns + "ExemptedVehicle"));
+		}
+		
+
+		public void GenerateReport(XElement fullReportHash)
+		{ 
+			_vehicleInformationFileImplementation.GenerateReport(fullReportHash);
+		}
+
+		public XDocument Report
+		{
+			get
+			{
+				var report = _vehicleInformationFileImplementation.Report;
+				var resultsElement = report.XPathSelectElements($"//*[local-name()='{XMLNames.Report_Results}']");
+				resultsElement.First().ReplaceWith(Results);
+				return report;
+			}
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..be9a19230fac2c216501ae1ee1f2f120676780e5
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupPrimaryReport.cs
@@ -0,0 +1,67 @@
+using System.Linq;
+using System.Xml.Linq;
+using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
+
+namespace TUGraz.VectoMockup.Reports
+{
+
+	/// <summary>
+	/// Create MRF and VIF for primary bus
+	/// </summary>
+	public class XMLDeclarationMockupPrimaryReport : XMLDeclarationReportPrimaryVehicle_09
+	{
+		private readonly bool _exempted;
+
+		public XMLDeclarationMockupPrimaryReport(IReportWriter writer,
+			IManufacturerReportFactory mrfFactory,
+			ICustomerInformationFileFactory cifFactory, 
+			IVIFReportFactory vifFactory,
+			bool exempted) : base(writer,
+			mrfFactory,
+			cifFactory,
+			vifFactory)
+		{
+			_exempted = exempted;
+		}
+
+		#region Overrides of XMLDeclarationReportPrimaryVehicle_09
+
+		protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
+		{
+			//Do nothing
+		}
+
+		protected override void WriteResult(ResultEntry result)
+		{
+			(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
+			(VehicleInformationFile as IXMLMockupReport).WriteMockupResult(result);
+		}
+
+		#endregion
+
+		
+		protected override void GenerateReports()
+		{
+			if (!_exempted) {
+				(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
+				(VehicleInformationFile as IXMLMockupReport).WriteMockupSummary(Results.First());
+			} else {
+				(ManufacturerRpt as IXMLMockupReport).WriteExemptedResults();
+				(VehicleInformationFile as IXMLMockupReport).WriteExemptedResults();
+			}
+
+			ManufacturerRpt.GenerateReport();
+			var fullReportHash = GetSignature(ManufacturerRpt.Report);
+			VehicleInformationFile.GenerateReport(fullReportHash);
+		}
+
+	}
+
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..8625f3474be64a73d13de775ecfbf07e5022e97b
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReport.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+
+namespace TUGraz.VectoMockup.Reports
+{
+	/// <summary>
+	/// Create MRF and CIF for lorries
+	/// </summary>
+	internal class XMLDeclarationMockupReport : XMLDeclarationReport09
+    {
+		private readonly bool _exempted;
+
+		public XMLDeclarationMockupReport(IReportWriter writer, IManufacturerReportFactory mrfFactory,
+			ICustomerInformationFileFactory cifFactory, bool exempted) :
+			base(writer, mrfFactory, cifFactory)
+		{
+			_exempted = exempted;
+		}
+
+		#region Overrides of XMLDeclarationReport09
+
+		protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
+		{
+			//Do nothing;
+		}
+
+		protected override void WriteResult(ResultEntry result)
+		{
+			(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
+			(CustomerRpt as IXMLMockupReport).WriteMockupResult(result);
+		}
+
+		protected override void GenerateReports()
+		{
+			if (!_exempted) {
+				(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
+				(CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
+			} else {
+				(ManufacturerRpt as IXMLMockupReport).WriteExemptedResults();
+				(CustomerRpt as IXMLMockupReport).WriteExemptedResults();
+			}
+		
+			
+			
+			base.GenerateReports();
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
new file mode 100644
index 0000000000000000000000000000000000000000..1e7169b8ad82b4cc41fa7dee3ea1431088c1a1f0
--- /dev/null
+++ b/VectoMockup/VectoMockup/Reports/XMLDeclarationMockupReportCompletedVehicle.cs
@@ -0,0 +1,142 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
+
+namespace TUGraz.VectoMockup.Reports
+{
+
+	/// <summary>
+	/// Create VIF of an interim (or the complete(d) step
+	/// </summary>
+	public class XMLDeclarationMockupReportInterimVehicle : XMLDeclarationReportInterimVehicle_09
+	{
+		private readonly bool _exempted;
+
+		public XMLDeclarationMockupReportInterimVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory,
+			ICustomerInformationFileFactory cifFactory, IVIFReportFactory vifFactory, IVIFReportInterimFactory interimFactory, bool exempted) : base(writer,
+			mrfFactory,
+			cifFactory, vifFactory, interimFactory)
+		{
+			_exempted = exempted;
+		}
+	}
+
+
+	/// <summary>
+		/// Create MRF and CIF of the complete(d) step
+		/// </summary>
+	public class XMLDeclarationMockupReportCompletedVehicle : XMLDeclarationReportCompletedVehicle_09
+	{
+		//private readonly IManufacturerReportFactory _mrfFactory;
+		//private readonly ICustomerInformationFileFactory _cifFactory;
+		private readonly bool _exempted;
+		private VectoRunData _modelData;
+
+		public XMLDeclarationMockupReportCompletedVehicle(IReportWriter writer, IManufacturerReportFactory mrfFactory, 
+			ICustomerInformationFileFactory cifFactory, IVIFReportFactory vifFactory, bool exempted) : base(writer, mrfFactory, cifFactory, vifFactory)
+		{
+			//_mrfFactory = mrfFactory;
+			//_cifFactory = cifFactory;
+
+			_exempted = exempted;
+		}
+
+		#region Overrides of XMLDeclarationReportCompletedVehicle
+
+		//protected override void InstantiateReports(VectoRunData modelData)
+		//{
+		//	var inputData = modelData.InputData as IXMLMultistageInputDataProvider;
+		//	var primaryVehicle = inputData.JobInputData.PrimaryVehicle.Vehicle;
+
+		//	var ihpc = (primaryVehicle.Components?.ElectricMachines?.Entries)?.Count(electric => electric.ElectricMachine.IHPCType != "None") > 0;
+		//	var iepc = (primaryVehicle.Components?.IEPC != null);
+		//	ManufacturerRpt = _mrfFactory.GetManufacturerReport(
+		//		inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
+		//		inputData.JobInputData.JobType,
+		//		primaryVehicle.ArchitectureID,
+		//		primaryVehicle.ExemptedVehicle,
+		//		iepc,
+		//		ihpc);
+
+		//	CustomerRpt = _cifFactory.GetCustomerReport(
+		//		inputData.JobInputData.ConsolidateManufacturingStage.Vehicle.VehicleCategory,
+		//		inputData.JobInputData.JobType,
+		//		primaryVehicle.ArchitectureID,
+		//		primaryVehicle.ExemptedVehicle,
+		//		iepc,
+		//		ihpc);
+			
+		//}
+
+        #endregion
+
+		#region Overrides of XMLDeclarationReportCompletedVehicle
+
+		public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
+		{
+			base.InitializeReport(modelData, fuelModes);
+			_modelData = modelData;
+		}
+
+		#endregion
+
+		protected internal override void DoWriteReport()
+        {
+			foreach (var result in OrderedResults) {
+				WriteResult(result);
+			}
+
+			GenerateReports();
+
+			if (Writer != null) {
+				OutputReports();
+			}
+		}
+
+       protected override void DoStoreResult(ResultEntry entry, VectoRunData runData, IModalDataContainer modData)
+		{
+			
+		}
+
+		protected override void WriteResult(ResultEntry result)
+		{
+			if (_modelData.InputData is IMultistepBusInputDataProvider multistageInput) {
+				var primaryResult = multistageInput.JobInputData.PrimaryVehicle.ResultsInputData.Results.FirstOrDefault();
+				var tankSystem = multistageInput.JobInputData.ConsolidateManufacturingStage.Vehicle.TankSystem;
+				result.FuelData = primaryResult.EnergyConsumption.Keys
+					.Select(x => DeclarationData.FuelData.Lookup(x, tankSystem)).Cast<IFuelProperties>().ToList();
+			}
+			(ManufacturerRpt as IXMLMockupReport).WriteMockupResult(result);
+			(CustomerRpt as IXMLMockupReport).WriteMockupResult(result);
+		}
+
+		protected override void GenerateReports()
+		{
+			if (!_exempted) {
+				(ManufacturerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
+				(CustomerRpt as IXMLMockupReport).WriteMockupSummary(Results.First());
+			} else {
+				(ManufacturerRpt as IXMLMockupReport).WriteExemptedResults();
+				(CustomerRpt as IXMLMockupReport).WriteExemptedResults();
+			}
+
+
+
+			base.GenerateReports();
+		}
+
+	}
+}
diff --git a/VectoMockup/VectoMockup/Simulation/MockupExemptedRun.cs b/VectoMockup/VectoMockup/Simulation/MockupExemptedRun.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d6bc297a366616a9a99a5d871ef643221c54828c
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/MockupExemptedRun.cs
@@ -0,0 +1,20 @@
+using System;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData;
+
+namespace TUGraz.VectoMockup.Simulation
+{
+	internal class MockupExemptedRun : ExemptedRun
+	{
+		public MockupExemptedRun(VehicleContainer data, Action<ModalDataContainer> writeSumData) : base(data, writeSumData) { }
+
+		#region Overrides of ExemptedRun
+
+		protected override void CheckValidInput()
+		{
+			return;
+		}
+
+		#endregion
+	}
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Simulation/MockupRun.cs b/VectoMockup/VectoMockup/Simulation/MockupRun.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e349b22deaf53b7c474c41d14b5019f3453f388a
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/MockupRun.cs
@@ -0,0 +1,46 @@
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.Models.Connector.Ports.Impl;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+
+namespace TUGraz.VectoMockup.Simulation
+{
+    public class MockupRun : VectoRun
+	{
+		private IVehicleContainer _vehicleContainer;
+		public MockupRun(IVehicleContainer container) : base(container)
+		{
+			_vehicleContainer = container;
+			
+			
+		}
+
+
+		#region Overrides of VectoRun
+		public override double Progress => 1;
+
+		protected override IResponse DoSimulationStep()
+		{
+			FinishedWithoutErrors = true;
+
+			return new ResponseCycleFinished(this);
+		}
+
+		public override bool CalculateAggregateValues()
+		{
+			return false;
+		}
+
+		protected override bool CheckCyclePortProgress()
+		{
+			return false;
+		}
+
+		protected override IResponse Initialize()
+		{
+			return new ResponseSuccess(this);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..7161fc9579b3d10c2cb120312dec81554615c79d
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/CompletedBusRunDataFactory.cs
@@ -0,0 +1,124 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.OutputData;
+
+namespace TUGraz.VectoMockup.Simulation.RundataFactories
+{
+    internal class MockupMultistageCompletedBusRunDataFactory : DeclarationModeCompletedMultistageBusVectoRunDataFactory
+    {
+		public MockupMultistageCompletedBusRunDataFactory(IMultistepBusInputDataProvider dataProvider,
+			IDeclarationReport report) : base(dataProvider, report)
+		{
+
+		}
+
+
+		#region Overrides of DeclarationModeCompletedMultistageBusVectoRunDataFactory
+
+		protected override void Initialize()
+		{
+
+			_segmentCompletedBus = GetCompletedSegment(CompletedVehicle, PrimaryVehicle.AxleConfiguration);
+			
+			//base.Initialize();
+		}
+
+		protected override IEnumerable<VectoRunData> VectoRunDataHeavyBusCompleted()
+		{
+
+			return base.VectoRunDataHeavyBusCompleted();
+		}
+
+		protected override VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx)
+		{
+			var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
+			
+			var simulationRunData = new VectoRunData
+			{
+				Loading = loading.Key,
+				VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, _segmentCompletedBus,
+					mission, loading),
+				Retarder = PrimaryBusMockupRunDataFactory.CreateMockupRetarder(PrimaryVehicle),
+				AirdragData = PrimaryBusMockupRunDataFactory.CreateMockupAirdragData(CompletedVehicle),
+				EngineData = PrimaryBusMockupRunDataFactory.CreateMockupEngineData(PrimaryVehicle, modeIdx, CompletedVehicle.TankSystem),
+				//ElectricMachinesData = PrimaryBusMockupRunDataFactory.CreateMockupElectricMachineData()
+				AngledriveData = PrimaryBusMockupRunDataFactory.CreateMockupAngleDriveData(PrimaryVehicle),
+				AxleGearData = PrimaryBusMockupRunDataFactory.CreateMockupAxleGearData(PrimaryVehicle),
+				Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
+				Mission = mission,
+				GearboxData = PrimaryBusMockupRunDataFactory.CreateMockupGearboxData(PrimaryVehicle),
+				InputData = InputDataProvider,
+				SimulationType = SimulationType.DistanceCycle,
+				ExecutionMode = ExecutionMode.Declaration,
+				JobName = InputDataProvider.JobInputData.ManufacturingStages.Last().Vehicle.Identifier,
+				Report = Report,
+                //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,
+            };
+			if (simulationRunData.EngineData != null) {
+				simulationRunData.EngineData.FuelMode = 0;
+			}
+			simulationRunData.VehicleData.VehicleClass = _segmentCompletedBus.VehicleClass;
+			simulationRunData.BusAuxiliaries = DataAdapterSpecific.CreateBusAuxiliariesData(mission, PrimaryVehicle, CompletedVehicle, simulationRunData);
+
+			return simulationRunData;
+
+			//return base.CreateVectoRunDataSpecific(mission, loading, modeIdx);
+		}
+
+		protected override VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx)
+		{
+			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);
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..92205fc2343e1bd111d1c109884edb6a0ce72eb5
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/MockupLorryVectoRunDataFactory.cs
@@ -0,0 +1,193 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
+using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.Models.BusAuxiliaries;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+
+namespace TUGraz.VectoMockup.Simulation.RundataFactories
+{
+    public class MockupLorryVectoRunDataFactory : DeclarationModeTruckVectoRunDataFactory
+    {
+        public MockupLorryVectoRunDataFactory(IDeclarationInputDataProvider dataProvider,
+            IDeclarationReport report) : base(dataProvider, report, false)
+        {
+
+        }
+
+        #region Overrides of AbstractDeclarationVectoRunDataFactory
+
+        protected override IDeclarationDataAdapter DataAdapter { get; }
+        protected override IEnumerable<VectoRunData> GetNextRun()
+        {
+            var nextRun = base.GetNextRun();
+
+
+            return nextRun;
+        }
+
+        protected override void InitializeReport()
+        {
+            if (InputDataProvider.JobInputData.JobType == VectoSimulationJobType.ConventionalVehicle)
+            {
+                base.InitializeReport();
+                return;
+            }
+            VectoRunData powertrainConfig;
+            List<List<FuelData.Entry>> fuels;
+            var vehicle = InputDataProvider.JobInputData.Vehicle;
+            if (vehicle.ExemptedVehicle)
+            {
+                powertrainConfig = CreateVectoRunData(vehicle, 0, null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>());
+                fuels = new List<List<FuelData.Entry>>();
+            }
+            else
+            {
+                powertrainConfig = _segment.Missions.Select(
+                        mission => CreateVectoRunData(
+                            vehicle, 0, mission, mission.Loadings.First()))
+                    .FirstOrDefault(x => x != null);
+                fuels = null;
+            }
+            Report.InitializeReport(powertrainConfig, fuels);
+        }
+
+        protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission,
+            KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
+        {
+            VectoRunData runData;
+            if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle)
+            {
+                runData = new VectoRunData
+                { 
+                    Exempted = true,
+                    Report = Report,
+                    Mission = new Mission() { MissionType = MissionType.ExemptedMission },
+                    VehicleData = CreateMockupVehicleData(vehicle),
+                    InputDataHash = InputDataProvider.XMLHash
+                };
+				runData.VehicleData.InputData = vehicle;
+			}
+            else
+            {
+
+                var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ =>
+                {
+                    return DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "",
+                            false);
+                });
+                runData = new VectoRunData()
+                {
+                    Loading = loading.Key,
+                    Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
+                    ExecutionMode = ExecutionMode.Declaration,
+                    Report = Report,
+                    Mission = mission,
+                    SimulationType = SimulationType.DistanceCycle,
+                    VehicleData = CreateMockupVehicleData(vehicle),
+                    EngineData = CreateMockupEngineData(vehicle, modeIdx),
+                    GearboxData = CreateMockupGearboxData(vehicle),
+                    AxleGearData = CreateMockupAxleGearData(vehicle),
+
+                    JobType = InputDataProvider.JobInputData.JobType,
+
+                };
+            }
+
+            runData.InputData = InputDataProvider;
+
+
+            return runData;
+
+
+
+        }
+
+
+
+
+        protected override void Initialize()
+        {
+            _segment = GetSegment(InputDataProvider.JobInputData.Vehicle);
+
+        }
+
+        #endregion
+
+        private AxleGearData CreateMockupAxleGearData(IVehicleDeclarationInputData vehicle)
+        {
+            if (vehicle.Components.AxleGearInputData == null)
+            {
+                return null;
+            }
+
+            return new AxleGearData()
+            {
+                InputData = vehicle.Components.AxleGearInputData,
+            };
+        }
+
+        private GearboxData CreateMockupGearboxData(IVehicleDeclarationInputData vehicle)
+        {
+            if (vehicle.Components.GearboxInputData == null)
+            {
+                return null;
+            }
+
+            return new GearboxData()
+            {
+                InputData = vehicle.Components.GearboxInputData,
+            };
+        }
+
+
+        private CombustionEngineData CreateMockupEngineData(IVehicleDeclarationInputData vehicleData, int modeIdx)
+        {
+
+            var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData;
+            if (engine == null)
+            {
+                return null;
+            }
+            var engineModes = engine.EngineModes;
+            var engineMode = engineModes[modeIdx];
+            var fuels = new List<CombustionEngineFuelData>();
+            foreach (var fuel in engineMode.Fuels)
+            {
+                fuels.Add(new CombustionEngineFuelData()
+                {
+                    FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, vehicleData.TankSystem)
+                });
+            }
+
+            return new CombustionEngineData()
+            {
+                Fuels = fuels,
+                RatedPowerDeclared = vehicleData.Components.EngineInputData.RatedPowerDeclared
+            };
+        }
+
+
+        private VehicleData CreateMockupVehicleData(IVehicleDeclarationInputData vehicleData)
+        {
+            return new VehicleData()
+            {
+                InputData = vehicleData,
+                SleeperCab = vehicleData.SleeperCab,
+                VehicleClass = _segment.VehicleClass,
+                Ocv = vehicleData.OvcHev,
+
+            };
+        }
+    }
+}
diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d95245224de65e40ab8950e7d09052fcd64f1970
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/PrimaryBusMockupRunDataFactory.cs
@@ -0,0 +1,337 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
+using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.Models.BusAuxiliaries;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+using TUGraz.VectoCore.OutputData;
+
+namespace TUGraz.VectoMockup.Simulation.RundataFactories
+{
+    public class PrimaryBusMockupRunDataFactory : DeclarationModePrimaryBusVectoRunDataFactory
+    {
+        public PrimaryBusMockupRunDataFactory(IDeclarationInputDataProvider dataProvider,
+            IDeclarationReport report) :
+            base(dataProvider, report, false)
+        { }
+
+        #region Overrides of AbstractDeclarationVectoRunDataFactory
+
+        protected override void Initialize()
+        {
+            _segment = GetSegment(InputDataProvider.JobInputData.Vehicle);
+        }
+
+        protected override void InitializeReport()
+        {
+            if (InputDataProvider.JobInputData.JobType == VectoSimulationJobType.ConventionalVehicle)
+            {
+                base.InitializeReport();
+                return;
+            }
+
+            VectoRunData powertrainConfig;
+            List<List<FuelData.Entry>> fuels;
+            var vehicle = InputDataProvider.JobInputData.Vehicle;
+            if (vehicle.ExemptedVehicle)
+            {
+                powertrainConfig = CreateVectoRunData(vehicle, 0, null,
+                    new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>());
+                fuels = new List<List<FuelData.Entry>>();
+            }
+            else
+            {
+                powertrainConfig = _segment.Missions.Select(
+                        mission => CreateVectoRunData(
+                            vehicle, 0, mission, mission.Loadings.First()))
+                    .FirstOrDefault(x => x != null);
+                fuels = null;
+            }
+
+            Report.InitializeReport(powertrainConfig, fuels);
+        }
+
+        #region Overrides of DeclarationModePrimaryBusVectoRunDataFactory
+
+        protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx,
+            Mission mission,
+            KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
+        {
+
+            VectoRunData runData;
+            if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle)
+            {
+				runData = new VectoRunData
+				{
+					Exempted = true,
+					Report = Report,
+					Mission = new Mission() { MissionType = MissionType.ExemptedMission },
+					VehicleData = CreateExemptedMockupVehicleData(vehicle, _segment),
+					InputDataHash = InputDataProvider.XMLHash
+				};
+				runData.VehicleData.InputData = vehicle;
+            }
+            else
+            {
+                var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType,
+                    _ =>
+                    {
+                        return DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "",
+                            false);
+                    });
+
+
+                runData = new VectoRunData()
+                {
+                    Loading = loading.Key,
+                    Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
+                    ExecutionMode = ExecutionMode.Declaration,
+                    Report = Report,
+					Mission = mission,
+                    SimulationType = SimulationType.DistanceCycle,
+                    VehicleData = CreateMockupVehicleData(vehicle, _segment, loading),
+                    Retarder = CreateMockupRetarder(vehicle),
+                    AxleGearData = CreateMockupAxleGearData(vehicle),
+                    GearboxData = CreateMockupGearboxData(vehicle),
+                    AngledriveData = CreateMockupAngleDriveData(vehicle),
+					EngineData = CreateMockupEngineData(vehicle, modeIdx),
+                    BusAuxiliaries = CreateMockupBusAux(vehicle),
+					InputDataHash = InputDataProvider.XMLHash,
+                };
+            }
+
+            runData.InputData = InputDataProvider;
+
+            return runData;
+        }
+
+
+		#endregion
+
+        #endregion
+        public static IAuxiliaryConfig CreateMockupBusAux(IVehicleDeclarationInputData vehicle)
+        {
+            return new AuxiliaryConfig()
+            {
+                InputData = vehicle.Components.BusAuxiliaries,
+
+            };
+        }
+
+		public static AirdragData CreateMockupAirdragData(IVehicleDeclarationInputData vehicle)
+		{
+			var airdrag = vehicle.Components.AirdragInputData;
+			return new AirdragData() {
+				CertificationMethod = airdrag.CertificationMethod,
+				CertificationNumber = airdrag.CertificationNumber,
+				DeclaredAirdragAreaInput = airdrag.AirDragArea,
+			};
+		}
+        public static RetarderData CreateMockupRetarder(IVehicleDeclarationInputData vehicle)
+        {
+            var xmlVehicle = vehicle as IXMLDeclarationVehicleData;
+            return new RetarderData()
+            {
+                Type = xmlVehicle.RetarderType,
+
+                Ratio = xmlVehicle.RetarderType.IsDedicatedComponent() ? xmlVehicle.RetarderRatio : 0,
+            };
+        }
+
+        public static AngledriveData CreateMockupAngleDriveData(IVehicleDeclarationInputData vehicle)
+        {
+            if (vehicle.Components.AngledriveInputData == null || vehicle.Components.AngledriveInputData.Type != AngledriveType.SeparateAngledrive)
+            {
+                return null;
+            }
+
+			var componentData = vehicle.Components.AngledriveInputData;
+			var angleDriveData = new AngledriveData {
+				InputData = vehicle.Components.AngledriveInputData,
+				Type = componentData.Type,
+            };
+
+			if (componentData.Type == AngledriveType.SeparateAngledrive) {
+
+				angleDriveData.Angledrive = new TransmissionData() {
+					Ratio = componentData.Ratio,
+				};
+
+				angleDriveData.Manufacturer = componentData.Manufacturer;
+				angleDriveData.ModelName = componentData.Model;
+				angleDriveData.CertificationNumber = componentData.CertificationNumber;
+				angleDriveData.Date = componentData.Date;
+			}
+
+			return angleDriveData;
+		}
+
+        public static AxleGearData CreateMockupAxleGearData(IVehicleDeclarationInputData vehicle)
+        {
+            if (vehicle.Components.AxleGearInputData == null)
+            {
+                return null;
+            }
+
+			var componentData = vehicle.Components.AxleGearInputData;
+            return new AxleGearData()
+            {
+                InputData = vehicle.Components.AxleGearInputData,
+
+				Manufacturer = componentData.Manufacturer,
+				ModelName = componentData.Model,
+				CertificationNumber = componentData.CertificationNumber,
+				Date = componentData.Date,
+                LineType = componentData.LineType,
+                AxleGear = new TransmissionData()
+                {
+                    Ratio = vehicle.Components.AxleGearInputData.Ratio,
+
+				}
+            };
+        }
+
+        public static GearboxData CreateMockupGearboxData(IVehicleDeclarationInputData vehicle)
+        {
+            if (vehicle.Components.GearboxInputData == null)
+            {
+                return null;
+            }
+
+			var componentData = vehicle.Components.GearboxInputData;
+			var gears = new Dictionary<uint, GearData>();
+            foreach (var gearInputData in componentData.Gears) {
+				gears.Add((uint)gearInputData.Gear, new GearData() {
+                    Ratio = gearInputData.Ratio,
+                    MaxTorque = gearInputData.MaxTorque,
+                    MaxSpeed = gearInputData.MaxInputSpeed,
+				});
+			}
+				
+
+			return new GearboxData()
+            {
+                InputData = vehicle.Components.GearboxInputData,
+                Type = vehicle.Components.GearboxInputData.Type,
+				Manufacturer = componentData.Manufacturer,
+				ModelName = componentData.Model,
+				CertificationNumber = componentData.CertificationNumber,
+				Date = componentData.Date,
+                Gears = gears,
+
+			};
+        }
+
+
+        public static CombustionEngineData CreateMockupEngineData(IVehicleDeclarationInputData vehicleData, int modeIdx, TankSystem? tankSystem = null)
+		{
+
+			var engine = vehicleData.Components.EngineInputData;
+            if (engine == null)
+            {
+                return null;
+            }
+
+            var engineModes = engine.EngineModes;
+            var engineMode = engineModes[modeIdx];
+            var fuels = new List<CombustionEngineFuelData>();
+            foreach (var fuel in engineMode.Fuels)
+            {
+                fuels.Add(new CombustionEngineFuelData()
+                {
+                    FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, tankSystem ?? vehicleData.TankSystem)
+                });
+            }
+
+			var componentData = vehicleData.Components.EngineInputData;
+            return new CombustionEngineData()
+            {
+                Fuels = fuels,
+                RatedPowerDeclared = vehicleData.Components.EngineInputData.RatedPowerDeclared,
+                IdleSpeed = vehicleData.EngineIdleSpeed,
+                InputData = vehicleData.Components.EngineInputData,
+                WHRType = vehicleData.Components.EngineInputData.WHRType,
+                RatedSpeedDeclared = engine.RatedSpeedDeclared,
+                Displacement = engine.Displacement,
+
+                Manufacturer = componentData.Manufacturer,
+                ModelName = componentData.Model,
+                CertificationNumber = componentData.CertificationNumber,
+                Date = componentData.Date,
+
+
+            };
+        }
+
+		private VehicleData CreateExemptedMockupVehicleData(IVehicleDeclarationInputData vehicleData, Segment segment)
+		{
+			return new VehicleData() {
+				InputData = vehicleData,
+				SleeperCab = vehicleData.SleeperCab,
+				//Loading = loading.Value.Item1,
+				VehicleClass = segment.VehicleClass,
+				Ocv = vehicleData.OvcHev,
+				VehicleCategory = vehicleData.VehicleCategory,
+				ZeroEmissionVehicle = vehicleData.ZeroEmissionVehicle,
+				//ADAS = CreateMockupAdasData(vehicleData),
+
+				Manufacturer = vehicleData.Manufacturer,
+				ManufacturerAddress = vehicleData.ManufacturerAddress,
+				ModelName = vehicleData.Model,
+				VIN = vehicleData.VIN,
+				LegislativeClass = vehicleData.LegislativeClass,
+				AxleConfiguration = vehicleData.AxleConfiguration,
+				Date = vehicleData.Date,
+
+			};
+		}
+
+        public static VehicleData CreateMockupVehicleData(IVehicleDeclarationInputData vehicleData, Segment segment,
+			KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
+        {
+            return new VehicleData()
+            {
+
+                InputData = vehicleData,
+                SleeperCab = vehicleData.SleeperCab,
+                Loading = loading.Value.Item1,
+                VehicleClass = segment.VehicleClass,
+                Ocv = vehicleData.OvcHev,
+                VehicleCategory = vehicleData.VehicleCategory,
+                ZeroEmissionVehicle = vehicleData.ZeroEmissionVehicle,
+                ADAS = CreateMockupAdasData(vehicleData),
+                
+                Manufacturer = vehicleData.Manufacturer,
+                ManufacturerAddress = vehicleData.ManufacturerAddress,
+                ModelName = vehicleData.Model,
+                VIN = vehicleData.VIN,
+                LegislativeClass = vehicleData.LegislativeClass,
+                AxleConfiguration = vehicleData.AxleConfiguration,
+                Date = vehicleData.Date,
+			};
+        }
+
+        public static VehicleData.ADASData CreateMockupAdasData(IVehicleDeclarationInputData vehicleData)
+        {
+            var adas = vehicleData.ADAS;
+            return new VehicleData.ADASData()
+            {
+                EcoRoll = adas.EcoRoll,
+                EngineStopStart = adas.EngineStopStart,
+                InputData = adas,
+                PredictiveCruiseControl = adas.PredictiveCruiseControl,
+            };
+        }
+    }
+}
diff --git a/VectoMockup/VectoMockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs b/VectoMockup/VectoMockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs
new file mode 100644
index 0000000000000000000000000000000000000000..571f038ca5101d9842df4735df59858ec5b79ae1
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/RundataFactories/VectoMockupRunDataFactoryFactory.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData;
+using TUGraz.VectoCore.InputData.Reader.Impl;
+using TUGraz.VectoCore.OutputData;
+
+
+namespace TUGraz.VectoMockup.Simulation.RundataFactories
+{
+    public class VectoMockUpRunDataFactoryFactory : IVectoRunDataFactoryFactory
+    {
+        #region Implementation of IVectoRunDataFactoryFactory
+
+
+
+        public IVectoRunDataFactory CreateDeclarationRunDataFactory(IInputDataProvider inputDataProvider, IDeclarationReport report,
+            IVTPReport vtpReport)
+        {
+            if (inputDataProvider == null)
+                throw new ArgumentNullException(nameof(inputDataProvider));
+
+            switch (inputDataProvider)
+            {
+                case IVTPDeclarationInputDataProvider vtpProvider:
+                    return CreateRunDataReader(vtpProvider, vtpReport);
+                case ISingleBusInputDataProvider singleBusProvider:
+                    return CreateRunDataReader(singleBusProvider, report);
+                case IDeclarationInputDataProvider declDataProvider:
+                    return CreateRunDataReader(declDataProvider, report);
+                case IMultistageVIFInputData multistageVifInputData:
+                    return CreateRunDataReader(multistageVifInputData, report);
+                default:
+                    break;
+            }
+            throw new VectoException("Unknown InputData for Declaration Mode!");
+        }
+
+        private IVectoRunDataFactory CreateRunDataReader(IMultistageVIFInputData multistageVifInputData, IDeclarationReport report)
+        {
+			if (multistageVifInputData.VehicleInputData == null)
+			{
+				return new MockupMultistageCompletedBusRunDataFactory(
+					multistageVifInputData.MultistageJobInputData,
+					report);
+			}
+			else {
+				return new DeclarationModeMultistageBusVectoRunDataFactory(multistageVifInputData, report);
+			}
+		}
+
+        private IVectoRunDataFactory CreateRunDataReader(IDeclarationInputDataProvider declDataProvider, IDeclarationReport report)
+        {
+            var vehicleCategory = declDataProvider.JobInputData.Vehicle.VehicleCategory;
+            if (vehicleCategory.IsLorry())
+            {
+                return new MockupLorryVectoRunDataFactory(declDataProvider, report);
+            }
+
+            if (vehicleCategory.IsBus())
+
+                switch (declDataProvider.JobInputData.Vehicle.VehicleCategory)
+                {
+                    case VehicleCategory.HeavyBusCompletedVehicle:
+                        throw new NotImplementedException();
+                        return new DeclarationModeCompletedBusVectoRunDataFactory(declDataProvider, report);
+                    case VehicleCategory.HeavyBusPrimaryVehicle:
+                        return new PrimaryBusMockupRunDataFactory(declDataProvider, report);
+                    default:
+                        break;
+                }
+
+            throw new Exception(
+                $"Could not create RunDataFactory for Vehicle Category{vehicleCategory}");
+        }
+
+        private IVectoRunDataFactory CreateRunDataReader(ISingleBusInputDataProvider singleBusProvider, IDeclarationReport report)
+        {
+            throw new NotImplementedException();
+        }
+
+        private IVectoRunDataFactory CreateRunDataReader(IVTPDeclarationInputDataProvider vtpProvider, IVTPReport vtpReport)
+        {
+            throw new NotImplementedException();
+        }
+
+        public IVectoRunDataFactory CreateEngineeringRunDataFactory(IEngineeringInputDataProvider inputDataProvider)
+        {
+            throw new NotImplementedException();
+        }
+
+        #endregion
+    }
+}
diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e391adfd712cf147a8bc4496d6f8e08eb9842637
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupFollowUpSimulatorFactoryCreator.cs
@@ -0,0 +1,70 @@
+using System;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
+using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1;
+using TUGraz.VectoMockup.Reports;
+
+namespace TUGraz.VectoMockup.Simulation.SimulatorFactory
+{
+	public class MockupInterimAfterPrimaryFactoryCreator : InterimAfterPrimaryFactoryCreator
+	{
+		public MockupInterimAfterPrimaryFactoryCreator(
+			IMultistagePrimaryAndStageInputDataProvider originalStageInputData, IOutputDataWriter originalReportWriter,
+			IDeclarationReport originalDeclarationReport, 
+			ISimulatorFactoryFactory simFactoryFactory,
+			IManufacturerReportFactory mrfFactory, 
+			ICustomerInformationFileFactory cifFactory,
+			IVIFReportFactory vifFactory,
+			IXMLInputDataReader inputDataReader, bool validate) :
+			base(originalStageInputData, originalReportWriter, originalDeclarationReport, simFactoryFactory,
+				inputDataReader, validate)
+		{
+			_currentStageDeclarationReport =
+				new XMLDeclarationMockupPrimaryReport(_currentStageOutputDataWriter, mrfFactory, cifFactory, vifFactory, originalStageInputData.StageInputData.ExemptedVehicle);
+		}
+
+		#region Overrides of InterimAfterPrimaryFactoryCreator
+
+		public override ISimulatorFactory GetNextFactory()
+		{
+			//throw new NotImplementedException();
+			return base.GetNextFactory();
+		}
+
+		#endregion
+	}
+
+	public class MockupCompletedAfterPrimaryFactoryCreator : CompletedAfterInterimPrimaryFactoryCreator
+	{
+		public MockupCompletedAfterPrimaryFactoryCreator(IMultistageVIFInputData originalInputData,
+			IOutputDataWriter originalOutputDataWriter,
+			IDeclarationReport originalDeclarationReport,
+			IXMLInputDataReader inputDataReader,
+			ISimulatorFactoryFactory simulatorFactoryFactory,
+			bool validate) :
+			base(originalInputData,
+				originalOutputDataWriter,
+				originalDeclarationReport,
+				inputDataReader,
+				simulatorFactoryFactory,
+				validate)
+		{
+
+		}
+
+		#region Overrides of CompletedAfterInterimPrimaryFactoryCreator
+
+		public override ISimulatorFactory GetNextFactory()
+		{
+			return base.GetNextFactory();
+		}
+
+		#endregion
+	}
+
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs
new file mode 100644
index 0000000000000000000000000000000000000000..90fb473ab9f05bfa336bcb2670d8c783fd8ec312
--- /dev/null
+++ b/VectoMockup/VectoMockup/Simulation/SimulatorFactory/MockupSimulatorFactories.cs
@@ -0,0 +1,148 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoMockup.Reports;
+
+namespace TUGraz.VectoMockup.Simulation.SimulatorFactory
+{
+	internal class MockupEngineeringSimulatorFactory : SimulatorFactoryEngineering
+	{
+		public MockupEngineeringSimulatorFactory(IInputDataProvider dataProvider, IOutputDataWriter writer,
+			bool validate) : base(dataProvider, writer, validate)
+		{
+			throw new VectoException("Engineering mode is not supported in Mockup Vecto");
+		}
+	}
+
+
+	internal class MockupDeclarationSimulatorFactory : SimulatorFactoryDeclaration
+    {
+		private void CheckInputData(IInputDataProvider dataProvider)
+		{
+			if (dataProvider is JSONFile json && !(dataProvider is JSONInputDataV10_PrimaryAndStageInputBus || dataProvider is JSONInputDataCompletedBusFactorMethodV7)) {
+				throw new VectoException($"JSON input data is not supported in Mockup Vecto");
+			}
+		}
+
+		public MockupDeclarationSimulatorFactory(IInputDataProvider dataProvider, IOutputDataWriter writer,
+			IDeclarationReport declarationReport, IVTPReport vtpReport, bool validate,
+			IXMLInputDataReader xmlInputDataReader, ISimulatorFactoryFactory simulatorFactoryFactory,
+			IXMLDeclarationReportFactory xmlDeclarationReportFactory, IVectoRunDataFactoryFactory runDataFactoryFactory)
+			: base(dataProvider, writer, declarationReport, vtpReport, validate, xmlInputDataReader,
+				simulatorFactoryFactory, xmlDeclarationReportFactory, runDataFactoryFactory)
+		{
+			CheckInputData(dataProvider);
+		}
+
+		public MockupDeclarationSimulatorFactory(IInputDataProvider dataProvider,
+			IOutputDataWriter writer, bool validate,
+			IXMLInputDataReader xmlInputDataReader,
+			ISimulatorFactoryFactory simulatorFactoryFactory,
+			IXMLDeclarationReportFactory xmlDeclarationReportFactory,
+			IVectoRunDataFactoryFactory runDataFactoryFactory) : base(dataProvider, writer, validate,
+			xmlInputDataReader, simulatorFactoryFactory, xmlDeclarationReportFactory, runDataFactoryFactory)
+		{
+			CheckInputData(dataProvider);
+		}
+
+		#region Overrides of SimulatorFactory
+
+
+		protected override IVectoRun GetExemptedRun(VectoRunData data)
+		{
+
+			if (data.Report != null)
+			{
+				data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data);
+			}
+			return new MockupExemptedRun(new ExemptedRunContainer(data.ExecutionMode) { RunData = data }, modData => {
+				if (data.Report != null)
+				{
+					data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData);
+				}
+			});
+		}
+
+		protected override IVectoRun GetNonExemptedRun(VectoRunData data, int current, VectoRunData d, ref bool warning1Hz)
+		{
+			var addReportResult = PrepareReport(data);
+			return new MockupRun(new VehicleContainer(ExecutionMode.Declaration,
+					new MockupModalDataContainer(new ModalDataContainer(data, ReportWriter, null), addReportResult))
+				{ RunData = data });
+			
+		}
+		protected new static Action<IModalDataContainer> PrepareReport(VectoRunData data)
+		{
+			if (data.Report != null)
+			{
+				data.Report.PrepareResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data);
+			}
+			Action<IModalDataContainer> addReportResult = modData => {
+				if (modData is MockupModalDataContainer && data.Report != null) {
+					data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData);
+				}
+
+				return;
+				//if (data.Report != null)
+				//{
+				//	data.Report.AddResult(data.Loading, data.Mission, data.EngineData?.FuelMode ?? 0, data, modData);
+				//}
+			};
+
+			return addReportResult;
+		}
+
+		#region Overrides of SimulatorFactoryDeclaration
+
+		protected override IFollowUpSimulatorFactoryCreator CreateFollowUpFactoryCreator(IInputDataProvider currentStageInputData,
+			IDeclarationReport currentStageDeclarationReport)
+		{
+			switch (currentStageInputData)
+			{
+				case IMultistagePrimaryAndStageInputDataProvider multistagePrimaryAndStageInputDataProvider:
+					return new MockupInterimAfterPrimaryFactoryCreator(
+						multistagePrimaryAndStageInputDataProvider,
+						ReportWriter,
+						currentStageDeclarationReport,
+						_simFactoryFactory, 
+						((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).MrfFactory,
+						((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).CifFactory, 
+						((IMockupDeclarationReportFactory)_xmlDeclarationReportFactory).VifFactory,
+						_xmlInputDataReader, 
+						Validate);
+				case IMultistageVIFInputData multistageVifInputData:
+					if (multistageVifInputData.VehicleInputData != null)
+					{
+						return new MockupCompletedAfterPrimaryFactoryCreator(
+							multistageVifInputData,
+							ReportWriter,
+							currentStageDeclarationReport,
+							_xmlInputDataReader,
+							_simFactoryFactory, Validate);
+					}
+					break;
+				default:
+					return null;
+			}
+			return null;
+		}
+
+		#endregion
+
+		#endregion
+	}
+}
diff --git a/VectoMockup/VectoMockup/VectoMockup.cs b/VectoMockup/VectoMockup/VectoMockup.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a0d6722085278539be2be0a29632ba681b6af5d8
--- /dev/null
+++ b/VectoMockup/VectoMockup/VectoMockup.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+using System.Linq;
+using Ninject;
+using Ninject.Modules;
+using TUGraz.VectoCore.InputData;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.InputData.Reader;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.OutputData.XML;
+using TUGraz.VectoCore.OutputData.XML.ComponentWriter;
+using TUGraz.VectoCore.OutputData.XML.Engineering;
+using TUGraz.VectoCore.OutputData.XML.GroupWriter;
+
+namespace VectoMockup
+{
+    public class VectoMockup
+	{
+		
+    }
+}
\ No newline at end of file
diff --git a/VectoMockup/VectoMockup/VectoMockup.csproj b/VectoMockup/VectoMockup/VectoMockup.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..63872dc5dadd1cc244f23f091d55d07d58643997
--- /dev/null
+++ b/VectoMockup/VectoMockup/VectoMockup.csproj
@@ -0,0 +1,82 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+    <RootNamespace>TUGraz.VectoMockup</RootNamespace>
+    <AssemblyName>VectoMockup</AssemblyName>
+    <TargetFrameworks>net45;net48;net6.0</TargetFrameworks>
+    <DefineConstants Condition="'$(Configuration)' == 'MockupDebug'">Debug</DefineConstants>
+    <Configurations>Debug;Release;MockupDebug</Configurations>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net45|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net48|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='MockupDebug|net6.0|AnyCPU'">
+    <DebugType>full</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net45|AnyCPU'">
+    <DebugType>embedded</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net48|AnyCPU'">
+    <DebugType>embedded</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'">
+    <DebugType>embedded</DebugType>
+  </PropertyGroup>
+  <ItemGroup>
+    <None Remove="MockupResults\CIF_MockupResults_Conv_Bus.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_Conv_Lorry.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_non-OVC-HEV_Bus.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_non-OVC-HEV_Lorry.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_OVC-HEV_Bus.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_OVC-HEV_Lorry.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_PEV_Bus.xml" />
+    <None Remove="MockupResults\CIF_MockupResults_PEV_Lorry.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_Conv_Bus.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_Conv_Lorry.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_Error.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_non-OVC-HEV_Bus.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_non-OVC-HEV_Lorry.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_OVC-HEV_Bus.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_OVC-HEV_Lorry.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_PEV_Bus.xml" />
+    <None Remove="MockupResults\MRF_MockupResults_PEV_Lorry.xml" />
+    <None Remove="MockupResults\VIF_MockupResults_Conv_Bus.xml" />
+    <None Remove="MockupResults\VIF_MockupResults_non-OVC-HEV_Bus.xml" />
+    <None Remove="MockupResults\VIF_MockupResults_OVC-HEV_Bus.xml" />
+    <None Remove="MockupResults\VIF_MockupResults_PEV_Bus.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_Conv_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_Conv_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_non-OVC-HEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_non-OVC-HEV_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_OVC-HEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_OVC-HEV_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_PEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\CIF_MockupResults_PEV_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_Conv_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_Conv_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_Error.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_non-OVC-HEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_non-OVC-HEV_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_OVC-HEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_OVC-HEV_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_PEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\MRF_MockupResults_PEV_Lorry.xml" />
+    <EmbeddedResource Include="MockupResults\VIF_MockupResults_Conv_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\VIF_MockupResults_non-OVC-HEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\VIF_MockupResults_OVC-HEV_Bus.xml" />
+    <EmbeddedResource Include="MockupResults\VIF_MockupResults_PEV_Bus.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Ninject" Version="3.3.6" />
+    <PackageReference Include="Ninject.Extensions.ContextPreservation" Version="3.3.1" />
+    <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\VectoCore\VectoCore\VectoCore.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0b49c3fd17cf844b16df17a42527b14afda11185
--- /dev/null
+++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs
@@ -0,0 +1,1109 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Xml;
+using System.Xml.Linq;
+using Newtonsoft.Json;
+using Ninject;
+using NUnit.Framework;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Tests.XML.Reports;
+using TUGraz.VectoCore.Utils;
+using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
+
+namespace VectoMockupTest
+{
+
+
+
+	[TestFixture]
+    public class MockUpVectoTest
+	{
+
+		private const string BasePath = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\Distributed\";
+
+		private const string BasePathMockup = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\MockupBusTest\";
+
+		private const string XsdPath = @".. /../../../../VectoCore/VectoCore/Resources/XSD";
+
+		private IKernel _vectoKernel;
+		private ISimulatorFactoryFactory _simFactoryFactory;
+		//private ISimulatorFactory _simulatorFactory;
+		private IXMLInputDataReader _inputDataReader;
+
+		#region Heavy Lorry Testfiles
+		protected const string ConventionalHeavyLorry = BasePath + @"HeavyLorry\Conventional_heavyLorry_AMT.xml";
+		protected const string ConventionalHeavyLorry_DifferentTyres = BasePathMockup + @"HeavyLorry\Conventional_heavyLorry_AMT_DifferentTyres.xml";
+		protected const string ConventionalHeavyLorry_AT_Angledrive = BasePathMockup + @"HeavyLorry\Conventional_heavyLorry_AT_Angledrive.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";
+
+		protected const string HEV_IHPC_HeavyLorry = BasePathMockup + @"HeavyLorry\HEV_heavyLorry_IHPC.xml";
+		protected const string HEV_Px_HeavyLorry_ADC = BasePathMockup + @"HeavyLorry\HEV_heavyLorry_Px_ADC.xml";
+		protected const string HEV_S3_HeavyLorry_ADC = BasePathMockup + @"HeavyLorry\HEV-S_heavyLorry_S3_ADC_GenSetADC.xml";
+		protected const string HEV_Px_HeavyLorry_SuperCap = BasePathMockup + @"HeavyLorry\HEV_heavyLorry_Px_SuperCap.xml";
+
+		#endregion
+
+		#region Medium Lorry Testfiles
+
+		protected const string Conventional_mediumLorry_AMT = BasePath + @"MediumLorry/Conventional_mediumLorry_AMT.xml";
+		protected const string HEV_S_mediumLorry_AMT_S2 = BasePath + @"MediumLorry/HEV-S_mediumLorry_AMT_S2.xml";
+		protected const string HEV_S_mediumLorry_IEPC_S = BasePath + @"MediumLorry/HEV-S_mediumLorry_IEPC-S.xml";
+		protected const string HEV_S_mediumLorry_S3 = BasePath + @"MediumLorry/HEV-S_mediumLorry_S3.xml";
+		protected const string HEV_S_mediumLorry_S4 = BasePath + @"MediumLorry/HEV-S_mediumLorry_S4.xml";
+		protected const string HEV_mediumLorry_AMT_Px = BasePath + @"MediumLorry/HEV_mediumLorry_AMT_Px.xml";
+		protected const string IEPC_mediumLorry = BasePath + @"MediumLorry/IEPC_mediumLorry.xml";
+		protected const string PEV_mediumLorry_AMT_E2 = BasePath + @"MediumLorry/PEV_mediumLorry_AMT_E2.xml";
+		protected const string PEV_mediumLorry_AMT_E2_EM_Std = BasePath + @"MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml";
+		protected const string PEV_mediumLorry_APT_N_E2 = BasePath + @"MediumLorry/PEV_mediumLorry_APT-N_E2.xml";
+		protected const string PEV_mediumLorry_E3 = BasePath + @"MediumLorry/PEV_mediumLorry_E3.xml";
+		protected const string PEV_mediumLorry_E4 = BasePath + @"MediumLorry/PEV_mediumLorry_E4.xml";
+
+		protected const string HEV_mediumLorry_IHPC = BasePathMockup + @"MediumLorry/HEV_mediumLorry_IHPC.xml";
+		protected const string HEV_mediumLorry_Px_SuperCap = BasePathMockup + @"MediumLorry/HEV_mediumLorry_Px_SuperCap.xml";
+		protected const string PEV_mediumLorry_AMT_E2_BatStd = BasePathMockup + @"MediumLorry/PEV_mediumLorry_AMT_E2_BatteryStd.xml";
+		//protected const string HEV_mediumLorry_Px_ADC = BasePathMockup + @"MediumLorry/HEV_heavyLorry_IHPC.xml";
+		//protected const string HEV_mediumLorry_S3_ADC_GenSetADC = BasePathMockup + @"MediumLorry/HEV_heavyLorry_IHPC.xml";
+		#endregion
+
+		#region PrimaryBus
+
+		protected const string Conventional_PrimaryBus = BasePath + @"PrimaryBus\Conventional_primaryBus_AMT.xml";
+		protected const string Conventional_PrimaryBus_AT_Angledrive = BasePathMockup + @"PrimaryBus\Conventional_primaryBus_AT_Angledrive.xml";
+		protected const string Conventional_PrimaryBus_Tyres = BasePath + @"PrimaryBus\Conventional_primaryBus_AMT_DifferentTyres.xml";
+		protected const string HEV_Px_PrimaryBus = BasePath + @"PrimaryBus\HEV_primaryBus_AMT_Px.xml";
+		protected const string HEV_IHPC_PrimaryBus = BasePathMockup + @"PrimaryBus\HEV_primaryBus_AMT_IHPC.xml";
+		protected const string HEV_Px_PrimaryBus_SuperCap = BasePathMockup + @"PrimaryBus\HEV_primaryBus_AMT_Px_SuperCap.xml";
+		protected const string HEV_S2_PrimaryBus = BasePath + @"PrimaryBus\HEV-S_primaryBus_AMT_S2.xml";
+		protected const string HEV_S2_PrimaryBus_GenSetADC = BasePathMockup + @"PrimaryBus\HEV-S_primaryBus_AMT_S2_GenSetADC.xml";
+		protected const string HEV_S2_PrimaryBus_ADC = BasePathMockup + @"PrimaryBus\HEV-S_primaryBus_AMT_S2_ADC.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";
+		protected const string PEV_IEPC_std_PrimaryBus = BasePathMockup + @"PrimaryBus\IEPC_primaryBus_StdValues.xml";
+
+		protected const string PEV_E2_PrimaryBus_StdEM = BasePathMockup + @"PrimaryBus\PEV_primaryBus_AMT_E2_EMStd.xml";
+		protected const string PEV_E2_PrimaryBus_StdBat = BasePathMockup + @"PrimaryBus\PEV_primaryBus_AMT_E2_BatteryStd.xml";
+		protected const string Conventional_PrimaryBus_DF = BasePathMockup + @"PrimaryBus\Conventional_primaryBus_AMT_DF.xml";
+
+		#endregion
+
+		#region Complete(d) Bus Input
+
+		protected const string Conventional_CompletedBusInput = BasePath + @"CompletedBus\Conventional_completedBus_2.xml";
+		protected const string Conventional_CompletedBusInput_TypeApproval = BasePath + @"CompletedBus\Conventional_completedBus_2_TypeApprovalNumber.xml";
+		protected const string Conventional_CompletedBusInput_AirdragV10 = BasePathMockup + @"CompletedBus\Conventional_completedBus_AirdragV10.xml";
+		protected const string Conventional_CompletedBusInput_AirdragV20 = BasePathMockup + @"CompletedBus\Conventional_completedBus_AirdragV20.xml";
+        protected const string HEV_CompletedBusInput = BasePath + @"CompletedBus\HEV_completedBus_2.xml";
+		protected const string PEV_CompletedBusInput = BasePath + @"CompletedBus\PEV_completedBus_2.xml";
+		protected const string PEV_IEPC_CompletedBusInput = BasePath + @"CompletedBus\IEPC_completedBus_2.xml";
+
+
+		#endregion
+
+		#region Interim Bus Input
+
+		protected const string Conventional_InterimBusInput = BasePathMockup + @"CompletedBus\Conventional_InterimBus_Min.xml";
+		protected const string Conventional_InterimBusInput_AirdragV10 = BasePathMockup + @"CompletedBus\Conventional_interimBus_AirdragV10.xml";
+		protected const string Conventional_InterimBusInput_AirdragV20 = BasePathMockup + @"CompletedBus\Conventional_interimBus_AirdragV20.xml";
+		protected const string HEV_InterimBusInput = BasePathMockup + @"CompletedBus\HEV_InterimBus_Min.xml";
+		protected const string PEV_InterimBusInput = BasePathMockup + @"CompletedBus\PEV_InterimBus_Min.xml";
+		protected const string PEV_IEPC_InterimBusInput = BasePathMockup + @"CompletedBus\IEPC_InterimBus_Min.xml";
+
+
+		#endregion
+
+		#region interim bus
+
+		protected const string Conventional_InterimBus =
+			@"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml";
+
+		protected const string Conventional_StageInput =
+			@"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\vecto_vehicle-stage_input_full-sample.xml";
+#endregion
+
+#region completed bus
+
+		protected const string Conventional_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml";
+#endregion
+
+#region special cases multistage
+
+		private const string TestDataDir = "TestData\\";
+
+		private const string CompleteDiesel = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional.vecto";
+		private const string CompleteExempted = TestDataDir + "Integration\\Multistage\\newVifExempted.vecto";
+		private const string CompleteExemptedWithoutTPMLM = TestDataDir + "Integration\\Multistage\\newVifExempted-noTPMLM.vecto";
+		private string CompletedWithoutADAS = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional-noADAS.vecto";
+
+
+
+
+		private const string InterimExempted = TestDataDir + "Integration\\Multistage\\newVifExemptedIncomplete.vecto";
+		private const string InterimDiesel = TestDataDir + "Integration\\Multistage\\newVifInterimDiesel.vecto";
+
+
+#endregion
+
+#region GroupTest
+
+		private const string GroupTestDir = @"TestData\XML\XMLReaderDeclaration\GroupTest\";
+		
+
+
+#endregion
+
+
+
+		[OneTimeSetUp]
+		public void OneTimeSetup()
+		{
+			_vectoKernel = new StandardKernel(
+				new VectoNinjectModule()
+				);
+
+			_simFactoryFactory = _vectoKernel.Get<ISimulatorFactoryFactory>();
+			Assert.NotNull(_simFactoryFactory);
+			_inputDataReader = _vectoKernel.Get<IXMLInputDataReader>();
+			Assert.NotNull(_inputDataReader);
+		}
+
+		[SetUp]
+		public void Setup()
+		{
+			//SimulatorFactory.MockUpRun = true;
+
+		}
+
+		private void Clearfiles(FileOutputWriter fileWriter)
+		{
+			IList<string> filesToBeCleared = new List<string>() {
+				fileWriter.XMLPrimaryVehicleReportName,
+				fileWriter.XMLFullReportName,
+				fileWriter.XMLCustomerReportName
+			};
+			foreach (var fileName in filesToBeCleared) {
+				if (File.Exists(fileName)) {
+					File.Delete(fileName);
+				}
+			}
+		}
+
+		private string[] CopyInputFile(params string[] fileNames)
+		{
+			var subDirectory = Path.Combine( "MockupReports", TestContext.CurrentContext.Test.Name, "Input");
+			Directory.CreateDirectory(Path.GetFullPath(subDirectory));
+			var retVal = new List<string>();
+			foreach (var file in fileNames) {
+				var output = Path.Combine(subDirectory, Path.GetFileName(file));
+				File.Copy(file, output, true);
+				retVal.Add(output);
+			}
+
+			return retVal.ToArray();
+		}
+
+
+		public FileOutputWriter GetOutputFileWriter(string subDirectory, string originalFilePath)
+		{
+			subDirectory = Path.Combine("MockupReports",subDirectory);
+			Directory.CreateDirectory(Path.GetFullPath(subDirectory));
+			var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), Path.GetFileName(originalFilePath));
+			return new FileOutputWriter(path);
+		}
+
+
+
+
+
+		[TestCase(ConventionalHeavyLorry, TestName = "ConventionalHeavyLorry")]
+		[TestCase(ConventionalHeavyLorry_DifferentTyres, TestName = "ConventionalHeavyLorry_DifferentTyres")]
+		[TestCase(ConventionalHeavyLorry_AT_Angledrive, TestName = "ConventionalHeavyLorry_AT_Angledrive")]
+		//[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_S4_HeavyLorry, TestName = "HEV_S4_HeavyLorry")]
+		[TestCase(HEV_Px_HeavyLorry, TestName = "HEV_Px_HeavyLorry")]
+		[TestCase(PEV_E2_HeavyLorry, TestName = "PEV_E2_HeavyLorry")]
+		//[TestCase(PEV_E2_HeavyLorry, false, TestName = "PEV_E2_HeavyLorryNoMockup")]
+		[TestCase(PEV_E3_HeavyLorry, TestName = "PEV_E3_HeavyLorry")]
+		[TestCase(PEV_E4_HeavyLorry, TestName = "PEV_E4_HeavyLorry")]
+		[TestCase(PEV_IEPC_HeavyLorry, TestName = "PEV_IEPC_HeavyLorry")]
+		[TestCase(HEV_IEPC_S_HeavyLorry, TestName = "HEV_IEPC_S_HeavyLorry")]
+        [TestCase(HEV_IHPC_HeavyLorry, TestName = "HEV_IHPC_HeavyLorry")]
+		[TestCase(HEV_Px_HeavyLorry_ADC, TestName = "HEV_Px_HeavyLorry_ADC")]
+		[TestCase(HEV_S3_HeavyLorry_ADC, TestName = "HEV_S3_HeavyLorry_ADC")]
+		[TestCase(HEV_Px_HeavyLorry_SuperCap, TestName = "HEV_Px_HeavyLorry_SuperCap")]
+
+		//[NonParallelizable]
+		[TestCase(Conventional_mediumLorry_AMT, TestName = "Conventional_Medium_Lorry")]
+		[TestCase(HEV_S_mediumLorry_AMT_S2, TestName = "HEV_S2_Medium_Lorry")]
+		[TestCase(HEV_S_mediumLorry_IEPC_S, TestName = "HEV_IEPC_Medium_Lorry")]
+		[TestCase(HEV_S_mediumLorry_S3, TestName = "HEV_S3_Medium_Lorry")]
+		[TestCase(HEV_S_mediumLorry_S4, TestName = "HEV_S4_Medium_Lorry")]
+		[TestCase(HEV_mediumLorry_AMT_Px, TestName = "HEV_Px_Medium_Lorry")]
+		[TestCase(IEPC_mediumLorry, TestName = "PEV_IEPC_Medium_Lorry")]
+		[TestCase(PEV_mediumLorry_AMT_E2, TestName = "PEV_E2_Medium_Lorry")]
+		[TestCase(PEV_mediumLorry_AMT_E2_EM_Std, TestName = "PEV_E2_std_Medium_Lorry")]
+		[TestCase(PEV_mediumLorry_APT_N_E2, TestName = "PEV_E2_Medium_Lorry_2")]
+		[TestCase(PEV_mediumLorry_E3, TestName = "PEV_E3_Medium_Lorry")]
+		[TestCase(PEV_mediumLorry_E4, TestName = "PEV_E4_Medium_Lorry")]
+		[TestCase(HEV_mediumLorry_IHPC, TestName = "HEV_IHPC_MediumLorry")]
+		[TestCase(HEV_mediumLorry_Px_SuperCap, TestName = "HEV_Px_Medium_Lorry_SuperCap")]
+		[TestCase(PEV_mediumLorry_AMT_E2_BatStd, TestName = "PEV_E2_Medium_Lorry_BatteryStd")]
+		public void LorryMockupTest(string fileName, bool mockup = true)
+		{
+			CopyInputFile(fileName);
+			var inputProvider = _inputDataReader.Create(fileName);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(null);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+			Clearfiles(fileWriter);
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+			
+			CheckFileExists(fileWriter);
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+		}
+
+
+
+		[TestCase(Conventional_PrimaryBus, TestName = "ConventionalPrimaryBus")]
+		[TestCase(Conventional_PrimaryBus_AT_Angledrive, TestName = "ConventionalPrimaryBus_AT_Angledrive")]
+		[TestCase(Conventional_PrimaryBus_Tyres, TestName = "ConventionalPrimaryBus Tyres")]
+        [TestCase(HEV_IEPC_S_PrimaryBus, TestName="HEV_IEPC_S_PrimaryBus")]
+        [TestCase(HEV_Px_PrimaryBus, TestName="HEV_Px_PrimaryBus")]
+		[TestCase(HEV_IHPC_PrimaryBus, TestName = "HEV_IHPC_PrimaryBus")]
+		[TestCase(HEV_Px_PrimaryBus_SuperCap, TestName = "HEV_Px_PrimaryBus_SuperCap")]
+        [TestCase(HEV_S2_PrimaryBus, TestName="HEV_S2_PrimaryBus")]
+		[TestCase(HEV_S2_PrimaryBus_GenSetADC, TestName = "HEV_S2_PrimaryBus_GenSetADC")]
+		[TestCase(HEV_S2_PrimaryBus_ADC, TestName = "HEV_S2_PrimaryBus_ADC")]
+		[TestCase(HEV_S3_PrimaryBus, TestName = "HEV_S3_PrimaryBus")]
+		[TestCase(HEV_S4_PrimaryBus, TestName = "HEV_S4_PrimaryBus")]
+        [TestCase(PEV_E2_PrimaryBus, TestName="PEV_E2_PrimaryBus")]
+		[TestCase(PEV_E3_PrimaryBus, TestName = "PEV_E3_PrimaryBus")]
+		[TestCase(PEV_E4_PrimaryBus, TestName = "PEV_E4_PrimaryBus")]
+        [TestCase(PEV_IEPC_PrimaryBus, TestName="PEV_IEPC_PrimaryBus")]
+		[TestCase(PEV_IEPC_std_PrimaryBus, TestName = "PEV_IEPC-std_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus_StdEM, TestName = "PEV_E2_PrimaryBus_EM-Std")]
+		[TestCase(PEV_E2_PrimaryBus_StdBat, TestName = "PEV_E2_PrimaryBus_Battery-Std")]
+		[TestCase(Conventional_PrimaryBus_DF, TestName = "ConventionalPrimaryBus_DualFuel")]
+		public void PrimaryBusMockupTest(string fileName, bool mockup = true)
+		{
+			CopyInputFile(fileName);
+			var inputProvider = _inputDataReader.Create(fileName);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(null);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+
+			Clearfiles(fileWriter); //remove files from previous test runs
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+			CheckFileExists(fileWriter, CifShouldExist:false, PrimaryReportShouldExist:true);
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), XmlDocumentType.MultistepOutputData), "VIF invalid" );
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+		}
+
+		
+		//[TestCase(Conventional_InterimBus, Conventional_StageInput, TestName = "ConventionalInterimBus")]
+		//public void InterimBusMockupTest(string vifInput, string stageInputFile)
+		//{
+		//	CopyInputFile(vifInput);
+		//	//SimulatorFactory.MockUpRun = mockup;
+		//	var multistageBusInput = _inputDataReader.Create(vifInput) as IMultistepBusInputDataProvider;
+		//	Assert.NotNull(multistageBusInput);
+
+		//	var stageInput = _inputDataReader.CreateDeclaration(stageInputFile);
+		//	var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, vifInput);
+		//	var sumWriter = new SummaryDataContainer(null);
+		//	var jobContainer = new JobContainer(sumWriter);
+
+		//	var inputData = new XMLDeclarationVIFInputData(multistageBusInput, stageInput.JobInputData.Vehicle);
+
+		//	var _simulatorFactory =
+		//		_simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, fileWriter, null, null, true);
+		//	Clearfiles(fileWriter);
+		//	jobContainer.AddRuns(_simulatorFactory);
+		//	jobContainer.Execute(false);
+		//	jobContainer.WaitFinished();
+		//	CheckFileExists(fileWriter, checkMrf:false, checkCif: false, checkVif: true);
+
+
+		//}
+
+
+		//[TestCase(Conventional_CompletedBus, TestName = "ConventionalCompletedBus")]
+		//public void CompletedBusMockupTest(string fileName)
+		//{
+		//	CopyInputFile(fileName);
+		//	//SimulatorFactory.MockUpRun = mockup;
+		//	XMLDeclarationVIFInputData input = null!;
+		//	var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+		//	using (var reader = XmlReader.Create(fileName))
+		//	{
+		//		input = new XMLDeclarationVIFInputData(_inputDataReader.Create(fileName) as IMultistepBusInputDataProvider, null);
+		//		fileWriter = new FileOutputVIFWriter(fileName, input.MultistageJobInputData.JobInputData.ManufacturingStages.Count);
+		//	}
+		//	var sumWriter = new SummaryDataContainer(null);
+		//	var jobContainer = new JobContainer(sumWriter);
+
+		//	var _simulatorFactory =
+		//		_simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true);
+		//	Clearfiles(fileWriter);
+		//	jobContainer.AddRuns(_simulatorFactory);
+		//	jobContainer.Execute(false);
+		//	jobContainer.WaitFinished();
+		//	CheckFileExists(fileWriter, checkCif: true, checkVif: false);
+		//}
+
+		//[TestCase(CompleteDiesel, TestName="CompleteDiesel")]
+  //      [TestCase(CompleteExempted, TestName = "CompleteExempted Bus")]
+  //      [TestCase(CompleteExemptedWithoutTPMLM, TestName = "CompleteExempted No TPMLM")]
+		//public void PrimaryAndCompletedTest(string fileName)
+		//{
+
+		//	var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+		//	var sumWriter = new SummaryDataContainer(null);
+		//	var jobContainer = new JobContainer(sumWriter);
+		//	var input = JSONInputDataFactory.ReadJsonJob(fileName);
+		//	var _simulatorFactory =
+		//		_simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true);
+		//	Clearfiles(fileWriter);
+		//	jobContainer.AddRuns(_simulatorFactory);
+		//	jobContainer.Execute(false);
+		//	jobContainer.WaitFinished();
+		//	CheckFileExists(fileWriter, checkCif: true, checkVif: true, checkMrf: true, checkPrimaryMrf: true);
+		//}
+
+
+		//[TestCase(InterimDiesel, TestName = "PrimaryAndInterim")]
+		//public void PrimaryAndInterim(string fileName)
+		//{
+
+		//	var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+		//	var sumWriter = new SummaryDataContainer(null);
+		//	var jobContainer = new JobContainer(sumWriter);
+		//	var input = JSONInputDataFactory.ReadJsonJob(fileName);
+		//	var _simulatorFactory =
+		//		_simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true);
+		//	Clearfiles(fileWriter);
+		//	jobContainer.AddRuns(_simulatorFactory);
+		//	jobContainer.Execute(false);
+		//	jobContainer.WaitFinished();
+		//	CheckFileExists(fileWriter, checkCif: false, checkVif: true, checkMrf:false, checkPrimaryMrf:true);
+
+		//}
+
+		[TestCase(Conventional_PrimaryBus_Tyres, Conventional_InterimBusInput, "Conventional", TestName = "Interim_Conventional_Bus_DifferentTyres")]
+		[TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_InterimBusInput, "Conventional", TestName = "Interim_Conventional_Bus_AT_Angledrive")]
+		[TestCase(Conventional_PrimaryBus, Conventional_InterimBusInput_AirdragV10, "Conventional", TestName = "InterimConventionalBusAirdrag_v1_0")]
+		[TestCase(Conventional_PrimaryBus, Conventional_InterimBusInput_AirdragV20, "Conventional", TestName = "InterimConventionalBusAirdrag_v2_0")]
+		[TestCase(Conventional_PrimaryBus_DF, Conventional_InterimBusInput, "Conventional", TestName = "Interim_ConventionalPrimaryBus_DualFuel")]
+		[TestCase(HEV_IEPC_S_PrimaryBus, HEV_InterimBusInput, "IEPC-S", "HEV", TestName = "Interim HEV_IEPC_S_Bus")]
+		[TestCase(HEV_Px_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "Interim HEV_Px_Bus")]
+		[TestCase(HEV_IHPC_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "Interim HEV_IHPC_Bus")]
+		[TestCase(HEV_S2_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "Interim HEV_S2_Bus")]
+		[TestCase(HEV_S3_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "Interim HEV_S3_Bus")]
+		[TestCase(HEV_S4_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "Interim HEV_S4_Bus")]
+		[TestCase(PEV_E2_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E2_Bus")]
+		[TestCase(PEV_E3_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E3_Bus")]
+		[TestCase(PEV_E4_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E4_Bus")]
+		[TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "Interim PEV_IEPC_Bus")]
+		[TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "Interim PEV_IEPC-std_Bus")]
+		[TestCase(PEV_E2_PrimaryBus_StdEM, PEV_InterimBusInput, "Ex", "PEV", TestName = "Interim PEV_E2_Bus_EM-Std")]
+		public void InterimTest(string primaryBusInput, string interimBusInput, params string[] expectedType)
+		{
+			var interimCopy = CopyInputFile(interimBusInput)[0];
+			// VIF + interim input =>  VIF
+			// (approach: first simulate primary on its own to have an up-to-date VIF
+			// (no need to maintain this in the testfiles)
+
+			// setting up testcase 
+			// run primary simulation
+			var inputProvider = _inputDataReader.Create(primaryBusInput);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput);
+			var sumWriter = new SummaryDataContainer(null);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+
+			Clearfiles(fileWriter); //remove files from previous test runs
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+
+			CheckFileExists(fileWriter, CifShouldExist: false, PrimaryReportShouldExist: true, MrfShouldExist: true);
+			File.Delete(fileWriter.XMLFullReportName);
+			var primaryVif = CopyInputFile(fileWriter.XMLPrimaryVehicleReportName)[0];
+			// done preparing testcase...
+
+			// this is the actual test: run completed simulation
+
+			var interimJob = GenerateJsonJobCompletedBus(primaryVif, interimCopy, TestContext.CurrentContext.Test.Name);
+			var interimInputData = JSONInputDataFactory.ReadJsonJob(interimJob);
+			var interimFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, interimBusInput);
+			
+			var interimSumWriter = new SummaryDataContainer(null);
+			var interimJobContainer = new JobContainer(interimSumWriter);
+
+			var completedSimulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, interimInputData, interimFileWriter, null, null, true);
+
+			Clearfiles(interimFileWriter); //remove files from previous test runs
+			interimJobContainer.AddRuns(completedSimulatorFactory);
+			interimJobContainer.Execute(false);
+			interimJobContainer.WaitFinished();
+
+			// assertions
+			File.Delete(fileWriter.XMLPrimaryVehicleReportName);
+
+			CheckFileExists(interimFileWriter, VifShouldExist: true, MrfShouldExist: false, CifShouldExist: false);
+
+			CheckElementTypeNameContains(interimFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType);
+		}
+
+		[TestCase(Conventional_PrimaryBus_Tyres, Conventional_InterimBusInput, "Conventional", TestName = "PrimaryAndInterim Conventional Bus Different Tyres")]
+		[TestCase(Conventional_PrimaryBus_DF, Conventional_InterimBusInput, "Conventional", TestName = "PrimaryAndInterim ConventionalPrimaryBus_DualFuel")]
+		[TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_InterimBusInput, "Conventional", TestName = "PrimaryAndInterim ConventionalPrimaryBus_AT_Angledrive")]
+		[TestCase(HEV_IEPC_S_PrimaryBus, HEV_InterimBusInput, "IEPC-S", "HEV", TestName = "PrimaryAndInterim HEV_IEPC_S_PrimaryBus")]
+		[TestCase(HEV_Px_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "PrimaryAndInterim HEV_Px_PrimaryBus")]
+		[TestCase(HEV_IHPC_PrimaryBus, HEV_InterimBusInput, "Px", "HEV", TestName = "PrimaryAndInterim HEV_IHPC_PrimaryBus")]
+		[TestCase(HEV_S2_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "PrimaryAndInterim HEV_S2_PrimaryBus")]
+		[TestCase(HEV_S3_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "PrimaryAndInterim HEV_S3_PrimaryBus")]
+		[TestCase(HEV_S4_PrimaryBus, HEV_InterimBusInput, "Sx", "HEV", TestName = "PrimaryAndInterim HEV_S4_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E2_PrimaryBus")]
+		[TestCase(PEV_E3_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E3_PrimaryBus")]
+		[TestCase(PEV_E4_PrimaryBus, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E4_PrimaryBus")]
+		[TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "PrimaryAndInterim PEV_IEPC_PrimaryBus")]
+		[TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_InterimBusInput, "IEPC", TestName = "PrimaryAndInterim PEV_IEPC-std_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus_StdEM, PEV_InterimBusInput, "Ex", "PEV", TestName = "PrimaryAndInterim PEV_E2_PrimaryBus_EM-Std")]
+		public void PrimaryWithInterimTest(string primaryBusInput, string interimInput, params string[] expectedType)
+		{
+			var copied = CopyInputFile(primaryBusInput, interimInput);
+			// complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete
+			// (approach: first simulate primary on its own to have an up-to-date VIF
+			// (no need to maintain this in the testfiles)
+
+
+			var job = GenerateJsonJobCompleteBus(copied[0], copied[1], TestContext.CurrentContext.Test.Name);
+			var input = JSONInputDataFactory.ReadJsonJob(job);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, interimInput);
+			var sumWriter = new SummaryDataContainer(null);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var completedSimulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true);
+
+			Clearfiles(fileWriter); //remove files from previous test runs
+			jobContainer.AddRuns(completedSimulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+
+			// assertions
+
+			CheckFileExists(fileWriter, PrimaryMrfShouldExist: true, VifShouldExist: true, CifShouldExist: false, MrfShouldExist: false);
+
+			CheckElementTypeNameContains(fileWriter.XMLMultistageReportFileName, "Vehicle", expectedType);
+		}
+
+		
+
+		[TestCase(Conventional_PrimaryBus_Tyres, Conventional_CompletedBusInput, "Conventional", TestName = "Complete Conventional Bus Different Tyres")]
+		[TestCase(Conventional_PrimaryBus_DF, Conventional_CompletedBusInput, "Conventional", TestName = "Complete ConventionalPrimaryBus_DualFuel")]
+		[TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_CompletedBusInput, "Conventional", TestName = "Complete ConventionalPrimaryBus_AT_Angledrive")]
+		[TestCase(Conventional_PrimaryBus, Conventional_CompletedBusInput_TypeApproval, "Conventional", TestName = "Complete Conventional Bus Type Approval")]
+        [TestCase(HEV_IEPC_S_PrimaryBus, HEV_CompletedBusInput, "IEPC-S", "HEV", TestName = "Complete HEV_IEPC_S_PrimaryBus")]
+		[TestCase(HEV_Px_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Complete HEV_Px_PrimaryBus")]
+		[TestCase(HEV_IHPC_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Complete HEV_IHPC_PrimaryBus")]
+		[TestCase(HEV_S2_PrimaryBus, HEV_CompletedBusInput, "S2", "HEV", TestName = "Complete HEV_S2_PrimaryBus")]
+		[TestCase(HEV_S3_PrimaryBus, HEV_CompletedBusInput, "S3", "HEV", TestName = "Complete HEV_S3_PrimaryBus")]
+		[TestCase(HEV_S4_PrimaryBus, HEV_CompletedBusInput, "S4", "HEV", TestName = "Complete HEV_S4_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus, PEV_CompletedBusInput, "E2", "PEV", TestName = "Complete PEV_E2_PrimaryBus")]
+		[TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, "E3", "PEV", TestName = "Complete PEV_E3_PrimaryBus")]
+		[TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, "E4", "PEV", TestName = "Complete PEV_E4_PrimaryBus")]
+		[TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Complete PEV_IEPC_PrimaryBus")]
+		[TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Complete PEV_IEPC-std_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus_StdEM, PEV_CompletedBusInput, "E2", "PEV", TestName = "Complete PEV_E2_PrimaryBus_EM-Std")]
+		public void CompleteTest(string primaryBusInput, string completeBusInput, params string[] expectedType)
+		{
+			var copied = CopyInputFile(primaryBusInput, completeBusInput);
+			// complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete
+			// (approach: first simulate primary on its own to have an up-to-date VIF
+			// (no need to maintain this in the testfiles)
+
+			
+			var completeJob = GenerateJsonJobCompleteBus(copied[0], copied[1], TestContext.CurrentContext.Test.Name);
+			var completeBusinput = JSONInputDataFactory.ReadJsonJob(completeJob);
+			var completeFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput);
+			var completeSumWriter = new SummaryDataContainer(null);
+			var completeJobContainer = new JobContainer(completeSumWriter);
+
+			var completedSimulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, completeBusinput, completeFileWriter, null, null, true);
+
+			Clearfiles(completeFileWriter); //remove files from previous test runs
+			completeJobContainer.AddRuns(completedSimulatorFactory);
+			completeJobContainer.Execute(false);
+			completeJobContainer.WaitFinished();
+
+			// assertions
+
+			CheckFileExists(completeFileWriter, PrimaryMrfShouldExist: true, VifShouldExist: true, CifShouldExist: true, MrfShouldExist: true);
+
+			CheckElementTypeNameContains(completeFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType);
+
+			//var xmlComparer = new XMLElementComparer();
+			//xmlComparer.AddDocument(primaryBusInput, XmlDocumentType.DeclarationJobData);
+			//xmlComparer.AddDocument(completeFileWriter.XMLFullReportName, XmlDocumentType.ManufacturerReport);
+			//Assert.IsTrue(xmlComparer.AreEqual(primaryBusInput, "/tns:VectoInputDeclaration/v2.0:Vehicle/ZeroEmissionVehicle", 
+			//	completeFileWriter.XMLFullReportName, "/mrf:VectoOutput/mrf:Data/Vehicle/ZeroEmissionHDV"));
+
+
+		}
+
+
+
+		[TestCase(Conventional_PrimaryBus_Tyres, Conventional_CompletedBusInput, "Conventional", TestName = "Completed Conventional Bus Different Tyres")]
+		[TestCase(Conventional_PrimaryBus_DF, Conventional_CompletedBusInput, "Conventional", TestName = "Completed ConventionalPrimaryBus_DualFuel")]
+		[TestCase(Conventional_PrimaryBus_AT_Angledrive, Conventional_CompletedBusInput, "Conventional", TestName = "Completed Conventional Bus_AT_Angledrive")]
+		[TestCase(HEV_IEPC_S_PrimaryBus, HEV_CompletedBusInput, "IEPC-S", "HEV", TestName = "Completed HEV_IEPC_S_PrimaryBus")]
+		[TestCase(HEV_Px_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Completed HEV_Px_PrimaryBus")]
+		[TestCase(HEV_IHPC_PrimaryBus, HEV_CompletedBusInput, "Px", "HEV", TestName = "Completed HEV_IHPC_PrimaryBus")]
+		[TestCase(HEV_S2_PrimaryBus, HEV_CompletedBusInput, "Sx", "HEV", TestName = "Completed HEV_S2_PrimaryBus")]
+		[TestCase(HEV_S3_PrimaryBus, HEV_CompletedBusInput, "Sx", "HEV", TestName = "Completed HEV_S3_PrimaryBus")]
+		[TestCase(HEV_S4_PrimaryBus, HEV_CompletedBusInput, "Sx", "HEV", TestName = "Completed HEV_S4_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E2_PrimaryBus")]
+		[TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E3_PrimaryBus")]
+		[TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E4_PrimaryBus")]
+		[TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Completed PEV_IEPC_PrimaryBus")]
+		[TestCase(PEV_IEPC_std_PrimaryBus, PEV_IEPC_CompletedBusInput, "IEPC", TestName = "Completed PEV_IEPC-std_PrimaryBus")]
+		[TestCase(PEV_E2_PrimaryBus_StdEM, PEV_CompletedBusInput, "Ex", "PEV", TestName = "Completed PEV_E2_PrimaryBus_EM-Std")]
+		public void CompletedTest(string primaryBusInput, string completeBusInput, params string[] expectedType)
+		{
+			var completeCopy = CopyInputFile(completeBusInput)[0];
+			CopyInputFile(primaryBusInput);
+			// completed: VIF + complete input (full) =>  VIF , MRF Completed, CIF Completed
+			// (approach: first simulate primary on its own to have an up-to-date VIF
+			// (no need to maintain this in the testfiles)
+
+			// setting up testcase 
+			// run primary simulation
+			var inputProvider = _inputDataReader.Create(primaryBusInput);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput);
+			var sumWriter = new SummaryDataContainer(null);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+
+			Clearfiles(fileWriter); //remove files from previous test runs
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+
+			CheckFileExists(fileWriter, CifShouldExist: false, PrimaryReportShouldExist: true, MrfShouldExist: true);
+			//File.Delete(fileWriter.XMLFullReportName);
+			var primaryVif = CopyInputFile(fileWriter.XMLPrimaryVehicleReportName)[0];
+			// done preparing testcase...
+
+			// this is the actual test: run completed simulation
+
+			var completedJob = GenerateJsonJobCompletedBus(primaryVif, completeCopy, TestContext.CurrentContext.Test.Name);
+			var completedInputData = JSONInputDataFactory.ReadJsonJob(completedJob);
+			var completedFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput);
+			var completedSumWriter = new SummaryDataContainer(null);
+			var completedJobContainer = new JobContainer(completedSumWriter);
+
+			var completedSimulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, completedInputData, completedFileWriter, null, null, true);
+
+			Clearfiles(completedFileWriter); //remove files from previous test runs
+			completedJobContainer.AddRuns(completedSimulatorFactory);
+			completedJobContainer.Execute(false);
+			completedJobContainer.WaitFinished();
+
+			// assertions
+			//File.Delete(fileWriter.XMLPrimaryVehicleReportName);
+
+			CheckFileExists(completedFileWriter, CifShouldExist: true, MrfShouldExist: true, VifShouldExist:true);
+
+			CheckElementTypeNameContains(completedFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType);
+		}
+
+
+		private static void CheckElementTypeNameContains(string fileName, string elementName, params string[] expectedType)
+		{
+			var xmlDoc = new XmlDocument();
+			xmlDoc.Load(XmlReader.Create(fileName));
+			var validator = new XMLValidator(xmlDoc);
+			validator.ValidateXML(XmlDocumentType.MultistepOutputData);
+
+			var vehicleNodes = xmlDoc.SelectNodes($"//*[local-name()='{elementName}']");
+			foreach (XmlNode vehicleNode in vehicleNodes) {
+				var typeName = vehicleNode?.SchemaInfo?.SchemaType?.Name ?? "";
+				var contains = expectedType.Select(x => typeName.Contains(x, StringComparison.InvariantCultureIgnoreCase));
+				Assert.IsTrue(contains.Any(x => x), $"{typeName} -- {expectedType.Join()}");
+			}
+		}
+
+		private string GenerateJsonJobCompletedBus(string vif, string completeBusInput, string subDirectory)
+		{
+			subDirectory = Path.Combine("MockupReports", subDirectory, "Input");
+
+			var header = new Dictionary<string, object>() {
+				{ "FileVersion", 7 }
+			};
+			var body = new Dictionary<string, object>() {
+				{ "PrimaryVehicleResults", Path.GetRelativePath(subDirectory, Path.GetFullPath(vif)) },
+				{ "CompletedVehicle", Path.GetRelativePath(subDirectory, Path.GetFullPath(completeBusInput)) },
+				{ "RunSimulation", true}
+			};
+			var json = new Dictionary<string, object>() {
+				{"Header", header},
+				{"Body", body}
+			};
+
+			Directory.CreateDirectory(Path.GetFullPath(subDirectory));
+			var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), "completedJob.vecto");
+			var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented);
+			File.WriteAllText(path, str);
+			return path;
+		}
+		private string GenerateJsonJobCompleteBus(string primaryBusInput, string completeBusInput, string subDirectory)
+		{
+			subDirectory = Path.Combine("MockupReports", subDirectory, "Input");
+
+			var header = new Dictionary<string, object>() {
+				{ "FileVersion", 10 }
+			};
+			var body = new Dictionary<string, object>() {
+				{ "PrimaryVehicle", Path.GetRelativePath(subDirectory, Path.GetFullPath(primaryBusInput)) },
+				{ "InterimStep", Path.GetRelativePath(subDirectory, Path.GetFullPath(completeBusInput)) },
+				{ "RunSimulation", true}
+			};
+			var json = new Dictionary<string, object>() {
+				{"Header", header},
+				{"Body", body}
+			};
+
+			Directory.CreateDirectory(Path.GetFullPath(subDirectory));
+			var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), "completeJob.vecto");
+			var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented);
+			File.WriteAllText(path, str);
+			return path;
+		}
+
+		private static void CheckFileExists(FileOutputWriter fileWriter, 
+			bool MrfShouldExist = true,
+			bool CifShouldExist = true, 
+			bool VifShouldExist = false, 
+			bool PrimaryMrfShouldExist = false,
+			bool PrimaryReportShouldExist = false)
+		{
+			var fail = false;
+			if (CifShouldExist) {
+				if (File.Exists(fileWriter.XMLCustomerReportName)) {
+					MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLCustomerReportName),
+						XmlDocumentType.CustomerReport);
+				} else {
+					TestContext.WriteLine(fileWriter.XMLCustomerReportName + " Missing\n");
+					fail = true;
+				}
+			} else {
+				var fileName = fileWriter.XMLCustomerReportName;
+				if (File.Exists(fileName)) {
+					fail = true;
+					TestContext.WriteLine($"{fileName} should not exist");
+				}
+			}
+
+			if (MrfShouldExist) {
+				if (File.Exists(fileWriter.XMLFullReportName)) {
+					MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLFullReportName),
+						XmlDocumentType.ManufacturerReport);
+				} else {
+					TestContext.WriteLine(fileWriter.XMLFullReportName + " Missing\n");
+					fail = true;
+				}
+			} else {
+				var fileName = fileWriter.XMLFullReportName;
+				if (File.Exists(fileName))
+				{
+					fail = true;
+					TestContext.WriteLine($"{fileName} should not exist");
+				}
+            }
+
+			var primaryMrfPath = fileWriter.XMLFullReportName.Replace("RSLT_MANUFACTURER", "RSLT_MANUFACTURER_PRIMARY");
+			if (PrimaryMrfShouldExist) {
+				if (File.Exists(primaryMrfPath)) {
+					MRF_CIF_WriterTestBase.Validate(XDocument.Load(primaryMrfPath), XmlDocumentType.ManufacturerReport);
+				} else {
+					TestContext.WriteLine(primaryMrfPath + " Missing\n");
+					fail = true;
+				}
+			} else {
+				var fileName = primaryMrfPath;
+				if (File.Exists(fileName))
+				{
+					fail = true;
+					TestContext.WriteLine($"{fileName} should not exist");
+				}
+            }
+
+
+			if (PrimaryReportShouldExist) {
+				if (File.Exists(fileWriter.XMLPrimaryVehicleReportName)) {
+					MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName),
+						XmlDocumentType.MultistepOutputData);
+				} else {
+					TestContext.WriteLine(fileWriter.XMLPrimaryVehicleReportName + " Missing\n");
+					fail = true;
+				}
+			} else {
+				var fileName = fileWriter.XMLPrimaryVehicleReportName;
+				if (File.Exists(fileName))
+				{
+					fail = true;
+					TestContext.WriteLine($"{fileName} should not exist");
+				}
+            }
+
+			if (VifShouldExist) {
+				if (File.Exists(fileWriter.XMLMultistageReportFileName)) {
+					MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLMultistageReportFileName),
+						XmlDocumentType.MultistepOutputData);
+				} else {
+					TestContext.WriteLine(fileWriter.XMLMultistageReportFileName + " Missing\n");
+					fail = true;
+				}
+			} else {
+				var fileName = fileWriter.XMLMultistageReportFileName;
+				if (File.Exists(fileName))
+				{
+					fail = true;
+					TestContext.WriteLine($"{fileName} should not exist");
+				}
+            }
+
+			if (fail) {
+				Assert.Fail();
+			}
+			
+		}
+		
+		[TestCase(@"TestData\XML\XMLReaderDeclaration\GroupTest\Rigid Truck_4x2_vehicle-class-1_EURO6_2018.xml", TestName="GroupClass1")]
+		[TestCase(@"TestData\XML\XMLReaderDeclaration\GroupTest\Rigid Truck_6x2_vehicle-class-9_EURO6_2018.xml",TestName="GroupClass9")]
+		[TestCase(@"TestData\XML\XMLReaderDeclaration\GroupTest\Tractor_4x2_vehicle-class-5_EURO6_2018.xml", TestName="GroupClass5")]
+		[TestCase(@"TestData/XML/XMLReaderDeclaration/GroupTest/Rigid Truck_8x4_vehicle-class-16_EURO6_2018.xml", TestName="GroupClass16")]
+		public void GroupTestFail(string fileName, bool mockup = true)
+		{
+			
+
+			IInputDataProvider inputProvider = null;
+			Assert.Throws(typeof(VectoException), () => _inputDataReader.Create(fileName));
+			if (inputProvider == null) {
+				Assert.Pass("Test cancelled! Inputprovider == null, this is expected on unsupported Schema versions");
+			}
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+			Clearfiles(fileWriter);
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+			
+			CheckFileExists(fileWriter);
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+		}
+
+		[Ignore("1.0 Schema ignored")]
+		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/Tractor_4x2_vehicle-class-5_5_t_0.xml", TestName="Schema10Test1")]
+		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/vecto_vehicle-new_parameters-sample.xml",TestName="Schema10_new_parameters", Ignore = "Invalid combination for ecoroll")]
+		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion1.0/vecto_vehicle-sample_LNG.xml", TestName="Schema10_vehicle_sample_lng")]
+		public void Schema1_0_Test(string fileName, bool mockup = true)
+		{
+			
+			IInputDataProvider inputProvider = null!;
+			Assert.Throws(typeof(VectoException), () => _inputDataReader.Create(fileName));
+			if (inputProvider == null)
+			{
+				Assert.Pass("Test cancelled! Inputprovider == null, this is expected on unsupported Schema versions");
+			}
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+			Clearfiles(fileWriter);
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+			
+			CheckFileExists(fileWriter);
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+		}
+
+		[Ignore("Schema 2_0 not supported in MockupVecto")]
+		[TestCase(@"TestData/XML/XMLReaderDeclaration/SchemaVersion2.0/Tractor_4x2_vehicle-class-5_5_t_0.xml", TestName="Schema20Test1")]
+		public void Schema2_0_Test(string fileName, bool mockup = true)
+		{
+			
+			IInputDataProvider inputProvider = null!;
+			Assert.Throws(typeof(VectoException), () => _inputDataReader.Create(fileName));
+			// ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
+			if (inputProvider == null)
+			{
+				Assert.Pass("Test cancelled! Inputprovider == null, this is expected on unsupported Schema versions");
+			}
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+			Clearfiles(fileWriter);
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+			
+			CheckFileExists(fileWriter);
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+		}
+
+		[Ignore("Json not supported in Mockup vecto")]
+		[TestCase("TestData/Generic Vehicles/Declaration Mode/40t Long Haul Truck/40t_Long_Haul_Truck.vecto", TestName="JSON_40TLonghaul")]
+		[TestCase("TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto", TestName="JSON_RigidTruckClass9")]
+        [NonParallelizable]
+		public void JSONTest(string fileName, bool mockup = true)
+		{
+
+			var inputProvider = JSONInputDataFactory.ReadJsonJob(fileName);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+
+			ISimulatorFactory _simulatorFactory = null!;
+			Assert.Throws(typeof(VectoException), () => {
+				_simulatorFactory =
+					_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+			});
+			// ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract
+			if (_simulatorFactory == null) {
+				Assert.Pass("Test cancelled! SimulatorFactory could not be created, this is expected on JSON jobs");
+			}
+			Clearfiles(fileWriter);
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+
+			CheckFileExists(fileWriter);
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLFullReportName), XmlDocumentType.ManufacturerReport), "MRF invalid");
+			Assert.IsTrue(MRF_CIF_WriterTestBase.ValidateAndPrint(XDocument.Load(fileWriter.XMLCustomerReportName), XmlDocumentType.CustomerReport), "CIF invalid");
+		}
+
+		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, 
+			true,
+			true,
+			false, 
+			false, 
+			TestName="ExemptedHeavyLorry")]
+		[TestCase(BasePathExempted + "exempted_mediumLorry.xml",
+			false, 
+			true,
+			true,
+			false, 
+			false, 
+			TestName="ExemptedMediumLorry")]
+		[TestCase(BasePathExempted + "exempted_primaryBus.xml", 
+			false, 
+			false,
+			true,
+			false, 
+			true, 
+			TestName="ExemptedPrimaryBus")]
+		public void ExemptedTest(string fileName, bool checkVif, bool checkCif, bool checkMrf, bool checkPrimaryMrf,
+			bool checkPrimaryReport)
+		{
+			CopyInputFile(fileName);
+            var inputProvider = _inputDataReader.Create(fileName);
+			var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var _simulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+			Clearfiles(fileWriter);
+			jobContainer.AddRuns(_simulatorFactory);
+			jobContainer.Execute(false);
+			jobContainer.WaitFinished();
+
+			CheckFileExists(fileWriter, 
+				VifShouldExist:checkVif, 
+				CifShouldExist:checkCif, 
+				MrfShouldExist:checkMrf, 
+				PrimaryMrfShouldExist:checkPrimaryMrf, 
+				PrimaryReportShouldExist:checkPrimaryReport);
+			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");
+		}
+
+		[TestCase(BasePathExempted + "exempted_primaryBus.xml", 
+			BasePathExempted + "exempted_completedBus_input_full.xml", 
+			"Exempted",
+			TestName="ExemptedCompleteBus")]
+		public void ExemptedCompleteBusTest(string primaryInput, string completeInput, params string[] expectedType)
+		{
+			var copied = CopyInputFile(primaryInput, completeInput);
+			var completeCopy = copied[1];
+
+
+			
+			// complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete
+			// (approach: first simulate primary on its own to have an up-to-date VIF
+			// (no need to maintain this in the testfiles)
+
+
+			var completeJob = GenerateJsonJobCompleteBus(primaryInput, completeCopy, TestContext.CurrentContext.Test.Name);
+			var completeBusinput = JSONInputDataFactory.ReadJsonJob(completeJob);
+			var completeFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeInput);
+			var completeSumWriter = new SummaryDataContainer(null);
+			var completeJobContainer = new JobContainer(completeSumWriter);
+
+			var completedSimulatorFactory =
+				_simFactoryFactory.Factory(ExecutionMode.Declaration, completeBusinput, completeFileWriter, null, null, true);
+
+			Clearfiles(completeFileWriter); //remove files from previous test runs
+			completeJobContainer.AddRuns(completedSimulatorFactory);
+			completeJobContainer.Execute(false);
+			completeJobContainer.WaitFinished();
+
+			// assertions
+
+			CheckFileExists(completeFileWriter, PrimaryMrfShouldExist: true, VifShouldExist: true, CifShouldExist: true, MrfShouldExist: true);
+
+			//CheckElementTypeNameContains(completeFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType);
+
+		}
+
+
+		[TestCase(BasePathExempted + "exempted_primaryBus.xml",
+			BasePathExempted + "exempted_completedBus_input_full.xml",
+			"Exempted",
+			TestName = "ExemptedCompletedBus")]
+        public void ExemptedCompletedTest(string primaryBusInput, string completeBusInput, params string[] expectedType)
+        {
+            var copied = CopyInputFile(primaryBusInput, completeBusInput);
+			var completeCopy = copied[1];
+			// completed: VIF + complete input (full) =>  VIF , MRF Completed, CIF Completed
+            // (approach: first simulate primary on its own to have an up-to-date VIF
+            // (no need to maintain this in the testfiles)
+
+            // setting up testcase 
+            // run primary simulation
+            var inputProvider = _inputDataReader.Create(primaryBusInput);
+            var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput);
+            var sumWriter = new SummaryDataContainer(null);
+            var jobContainer = new JobContainer(sumWriter);
+
+            var _simulatorFactory =
+                _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true);
+
+            Clearfiles(fileWriter); //remove files from previous test runs
+            jobContainer.AddRuns(_simulatorFactory);
+            jobContainer.Execute(false);
+            jobContainer.WaitFinished();
+
+            CheckFileExists(fileWriter, CifShouldExist: false, PrimaryReportShouldExist: true, MrfShouldExist: true);
+            //File.Delete(fileWriter.XMLFullReportName);
+            var primaryVif = CopyInputFile(fileWriter.XMLPrimaryVehicleReportName)[0];
+            // done preparing testcase...
+
+            // this is the actual test: run completed simulation
+
+            var completedJob = GenerateJsonJobCompletedBus(primaryVif, completeCopy, TestContext.CurrentContext.Test.Name);
+            var completedInputData = JSONInputDataFactory.ReadJsonJob(completedJob);
+            var completedFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput);
+            var completedSumWriter = new SummaryDataContainer(null);
+            var completedJobContainer = new JobContainer(completedSumWriter);
+
+            var completedSimulatorFactory =
+                _simFactoryFactory.Factory(ExecutionMode.Declaration, completedInputData, completedFileWriter, null, null, true);
+
+            Clearfiles(completedFileWriter); //remove files from previous test runs
+            completedJobContainer.AddRuns(completedSimulatorFactory);
+            completedJobContainer.Execute(false);
+            completedJobContainer.WaitFinished();
+
+            // assertions
+            //File.Delete(fileWriter.XMLPrimaryVehicleReportName);
+
+            CheckFileExists(completedFileWriter, CifShouldExist: true, MrfShouldExist: true, VifShouldExist: true);
+
+            CheckElementTypeNameContains(completedFileWriter.XMLMultistageReportFileName, "Vehicle", expectedType);
+        }
+
+
+
+    }
+}
diff --git a/VectoMockup/VectoMockupTest/VectoMockupTest.csproj b/VectoMockup/VectoMockupTest/VectoMockupTest.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..63a43fb3a2f8a5c2632eb177dd12a2addf312aee
--- /dev/null
+++ b/VectoMockup/VectoMockupTest/VectoMockupTest.csproj
@@ -0,0 +1,61 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+
+  <PropertyGroup>
+    <TargetFrameworks>net6.0</TargetFrameworks>
+	<Nullable>enable</Nullable>
+
+    <IsPackable>false</IsPackable>
+
+    <Configurations>Debug;Release;MockupDebug</Configurations>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <DefineConstants>$(DefineConstants)TRACE;MOCKUP</DefineConstants>
+    <DebugType>embedded</DebugType>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MockupDebug|AnyCPU'">
+    <DefineConstants>$(DefineConstants)TRACE;MOCKUP</DefineConstants>
+    <DebugType>embedded</DebugType>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
+    <DefineConstants>$(DefineConstants)TRACE;MOCKUP</DefineConstants>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Remove="TestData\**" />
+    <EmbeddedResource Remove="TestData\**" />
+    <None Remove="TestData\**" />
+  </ItemGroup>
+
+	<ItemGroup>
+		<Content Include="..\..\VectoCore\VectoCoreTest\TestData\**\*.*">
+
+			<Link>TestData\%(RecursiveDir)%(FileName).%(Extension)</Link>
+
+			<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+
+		</Content>
+	</ItemGroup>
+
+	<ItemGroup>
+	  <Content Remove="..\..\VectoCore\VectoCoreTest\TestData\Components\**" />
+	</ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
+    <PackageReference Include="NUnit" Version="3.13.3" />
+    <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
+    <PackageReference Include="NUnit.Analyzers" Version="3.3.0" />
+    <PackageReference Include="coverlet.collector" Version="3.1.2" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\..\VectoCore\VectoCoreTest\VectoCoreTest.csproj" />
+    <ProjectReference Include="..\..\VectoCore\VectoCore\VectoCore.csproj" />
+    <ProjectReference Include="..\VectoMockup\VectoMockup.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/XMLDeclarationReport.cs b/XMLDeclarationReport.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d555ecb0741fbfa8bd94ffcd3f3930cdd1949874
--- /dev/null
+++ b/XMLDeclarationReport.cs
@@ -0,0 +1,8 @@
+using System;
+
+public class Class1
+{
+	public Class1()
+	{
+	}
+}