diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml
index 86413c8e460d418c0114b8f90b1527aeb5d04b61..f617c5c3545e266d7e7cbfae03eb933abcb5199a 100644
--- a/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml	
+++ b/Generic Vehicles/Declaration Mode/CompletedBus 31b2/vecto_vehicle-completed_heavyBus_31b.xml	
@@ -1,12 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8"
-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" 
-xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" 
-xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" 
-xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8"
-xmlns:di="http://www.w3.org/2000/09/xmldsig#" 
-xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd">
+<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoDeclarationJob.xsd">
 	<v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType">
 		<Manufacturer>Some Manufacturer</Manufacturer>
 		<ManufacturerAddress>Infinite Loop 1</ManufacturerAddress>
@@ -19,8 +12,10 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.e
 		<AirdragModifiedMultistage>true</AirdragModifiedMultistage>
 		<NgTankSystem>Compressed</NgTankSystem>
 		<ClassBus>II</ClassBus>
-			<NumberPassengersLowerDeck>86</NumberPassengersLowerDeck>
-			<NumberPassengersUpperDeck>0</NumberPassengersUpperDeck>
+		<NumberPassengerSeatsLowerDeck>86</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck>
 		<BodyworkCode>CE</BodyworkCode>
 		<LowEntry>true</LowEntry>
 		<HeightIntegratedBody>3000</HeightIntegratedBody>
@@ -31,7 +26,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.e
 		<VehicleDeclarationType>final</VehicleDeclarationType>
 		<Components xsi:type="CompletedVehicleComponentsDeclarationType">
 			<AirDrag>
-				<Data id="CabinX23h" xsi:type="AirDragDataDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions: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>
diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml b/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml
index cb2b6bd5d72d1aa39a5e6b1db6a9f387d4318a7d..e44502a740c47d7f4ebb9b93a76b15b10af2553d 100644
--- a/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml	
+++ b/Generic Vehicles/Declaration Mode/CompletedBus 34f/vecto_vehicle-completed_heavyBus_34f.xml	
@@ -12,8 +12,10 @@
 		<AirdragModifiedMultistage>false</AirdragModifiedMultistage>
 		<NgTankSystem>Compressed</NgTankSystem>
 		<ClassBus>II+III</ClassBus>
-		<NumberPassengersLowerDeck>16</NumberPassengersLowerDeck>
-		<NumberPassengersUpperDeck>56</NumberPassengersUpperDeck>
+		<NumberPassengerSeatsLowerDeck>16</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>56</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck>
 		<BodyworkCode>CB</BodyworkCode>
 		<LowEntry>true</LowEntry>
 		<HeightIntegratedBody>4000</HeightIntegratedBody>
diff --git a/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml b/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml
index 6920f5f350b211bf245c35bc261df45bdb27c666..709891bb30d6f94dc57e1000b3fc890ea2aee8df 100644
--- a/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml	
+++ b/Generic Vehicles/Declaration Mode/CompletedBus 39a/vecto_vehicle-completed_heavyBus_39a.xml	
@@ -12,8 +12,10 @@
 		<AirdragModifiedMultistage>true</AirdragModifiedMultistage>
 		<NgTankSystem>Compressed</NgTankSystem>
 		<ClassBus>II</ClassBus>
-		<NumberPassengersLowerDeck>181</NumberPassengersLowerDeck>
-		<NumberPassengersUpperDeck>0</NumberPassengersUpperDeck>
+		<NumberPassengerSeatsLowerDeck>181</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck>
 		<BodyworkCode>CG</BodyworkCode>
 		<LowEntry>false</LowEntry>
 		<HeightIntegratedBody>3000</HeightIntegratedBody>
diff --git a/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml b/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml
index 86413c8e460d418c0114b8f90b1527aeb5d04b61..d26a3385b1a827b1770571a08f536d807320b21b 100644
--- a/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml	
+++ b/Generic Vehicles/Declaration Mode/SingleBus_31b/vecto_vehicle-completed_heavyBus_31b.xml	
@@ -19,8 +19,10 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob https://citnet.tech.e
 		<AirdragModifiedMultistage>true</AirdragModifiedMultistage>
 		<NgTankSystem>Compressed</NgTankSystem>
 		<ClassBus>II</ClassBus>
-			<NumberPassengersLowerDeck>86</NumberPassengersLowerDeck>
-			<NumberPassengersUpperDeck>0</NumberPassengersUpperDeck>
+			<NumberPassengerSeatsLowerDeck>86</NumberPassengerSeatsLowerDeck>
+			<NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck>
+			<NumberPassengerSeatsUpperDeck>0</NumberPassengerSeatsUpperDeck>
+			<NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck>
 		<BodyworkCode>CE</BodyworkCode>
 		<LowEntry>true</LowEntry>
 		<HeightIntegratedBody>3000</HeightIntegratedBody>
diff --git a/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml b/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml
index cb2b6bd5d72d1aa39a5e6b1db6a9f387d4318a7d..e44502a740c47d7f4ebb9b93a76b15b10af2553d 100644
--- a/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml	
+++ b/Generic Vehicles/Declaration Mode/SingleBus_34f/vecto_vehicle-completed_heavyBus_34f.xml	
@@ -12,8 +12,10 @@
 		<AirdragModifiedMultistage>false</AirdragModifiedMultistage>
 		<NgTankSystem>Compressed</NgTankSystem>
 		<ClassBus>II+III</ClassBus>
-		<NumberPassengersLowerDeck>16</NumberPassengersLowerDeck>
-		<NumberPassengersUpperDeck>56</NumberPassengersUpperDeck>
+		<NumberPassengerSeatsLowerDeck>16</NumberPassengerSeatsLowerDeck>
+		<NumberPassengersStandingLowerDeck>0</NumberPassengersStandingLowerDeck>
+		<NumberPassengerSeatsUpperDeck>56</NumberPassengerSeatsUpperDeck>
+		<NumberPassengersStandingUpperDeck>0</NumberPassengersStandingUpperDeck>
 		<BodyworkCode>CB</BodyworkCode>
 		<LowEntry>true</LowEntry>
 		<HeightIntegratedBody>4000</HeightIntegratedBody>
diff --git a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
index 35a31ccf3383a8df574e312cd846a63c280233f9..11c5729b957f4bf77ccb849ce480e173255c48cb 100644
--- a/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
+++ b/VectoCommon/VectoCommon/Hashing/VectoComponents.cs
@@ -127,6 +127,7 @@ namespace TUGraz.VectoCommon.Hashing
 				case VectoComponents.VectoCustomerInformation:
 				case VectoComponents.VectoOutput:
 				case VectoComponents.VectoPrimaryVehicleInformation:
+				case VectoComponents.VectoManufacturingStage:
 					return true;
 				default:
 					return false;
diff --git a/VectoCommon/VectoCommon/Models/AlternatorType.cs b/VectoCommon/VectoCommon/Models/AlternatorType.cs
index e216758a7c6404b3c61f14782d3b85ed30062987..5419938e1c226828a48b93de5891a0eb01f1797c 100644
--- a/VectoCommon/VectoCommon/Models/AlternatorType.cs
+++ b/VectoCommon/VectoCommon/Models/AlternatorType.cs
@@ -11,6 +11,22 @@ namespace TUGraz.VectoCommon.Models
 
 	public static class AlternatorTypeHelper
 	{
+
+		public static string ToXMLFormat(this AlternatorType type)
+		{
+			switch (type)
+			{
+				case AlternatorType.Conventional:
+					return "conventional";
+				case AlternatorType.Smart:
+					return "smart";
+				case AlternatorType.None:
+					return "no alternator";
+				default:
+					throw new ArgumentOutOfRangeException(nameof(type), type, null);
+			};
+		}
+
 		public static string GetLabel(this AlternatorType type)
 		{
 			switch (type) {
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
index 796ce51d7b2c044255c565f821aabdb8d746f1d8..6e87b019a0c0d857210ce2529f06ebdf0727fcb5 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs
@@ -1023,6 +1023,96 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Battery.
+        /// </summary>
+        public static string BusAux_ElectricSystem_Battery {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_Battery", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to BatteryTechnology.
+        /// </summary>
+        public static string BusAux_ElectricSystem_BatteryTechnology {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_BatteryTechnology", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Capacitor.
+        /// </summary>
+        public static string BusAux_ElectricSystem_Capacitor {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_Capacitor", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to CapacitorTechnology.
+        /// </summary>
+        public static string BusAux_ElectricSystem_CapacitorTechnology {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_CapacitorTechnology", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to NominalVoltage.
+        /// </summary>
+        public static string BusAux_ElectricSystem_NominalVoltage {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_NominalVoltage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to RatedCapacitance.
+        /// </summary>
+        public static string BusAux_ElectricSystem_RatedCapacitance {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_RatedCapacitance", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to RatedCapacity.
+        /// </summary>
+        public static string BusAux_ElectricSystem_RatedCapacity {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_RatedCapacity", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to RatedCurrent.
+        /// </summary>
+        public static string BusAux_ElectricSystem_RatedCurrent {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_RatedCurrent", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to RatedVoltage.
+        /// </summary>
+        public static string BusAux_ElectricSystem_RatedRatedVoltage {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_RatedRatedVoltage", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to RatedVoltage.
+        /// </summary>
+        public static string BusAux_ElectricSystem_RatedVoltage {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_RatedVoltage", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to ResultCards.
         /// </summary>
@@ -1032,6 +1122,15 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to SmartAlternator.
+        /// </summary>
+        public static string BusAux_ElectricSystem_SmartAlternator {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_SmartAlternator", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to SmartElectrics.
         /// </summary>
@@ -1041,6 +1140,24 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to SupplyFromHEVPossible.
+        /// </summary>
+        public static string BusAux_ElectricSystem_SupplyFromHEVPossible {
+            get {
+                return ResourceManager.GetString("BusAux_ElectricSystem_SupplyFromHEVPossible", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Fan.
+        /// </summary>
+        public static string BusAux_Fan {
+            get {
+                return ResourceManager.GetString("BusAux_Fan", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to HVAC.
         /// </summary>
@@ -1176,6 +1293,24 @@ namespace TUGraz.VectoCommon.Resources {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to SteeringPump.
+        /// </summary>
+        public static string BusAux_SteeringPump {
+            get {
+                return ResourceManager.GetString("BusAux_SteeringPump", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Technology.
+        /// </summary>
+        public static string BusAux_Technology {
+            get {
+                return ResourceManager.GetString("BusAux_Technology", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to AirDrag.
         /// </summary>
diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx
index d795c59690f28677a4c01c748b1cd935fce7bb08..a5029ad819dc4661e6973774b7039c6fa2dfefa7 100644
--- a/VectoCommon/VectoCommon/Resources/XMLNames.resx
+++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx
@@ -1527,4 +1527,49 @@
   <data name="Bus_NumberPassengersStandingUpperDeck" xml:space="preserve">
     <value>NumberPassengersStandingUpperDeck</value>
   </data>
+  <data name="BusAux_ElectricSystem_Battery" xml:space="preserve">
+    <value>Battery</value>
+  </data>
+  <data name="BusAux_ElectricSystem_BatteryTechnology" xml:space="preserve">
+    <value>BatteryTechnology</value>
+  </data>
+  <data name="BusAux_ElectricSystem_Capacitor" xml:space="preserve">
+    <value>Capacitor</value>
+  </data>
+  <data name="BusAux_ElectricSystem_CapacitorTechnology" xml:space="preserve">
+    <value>CapacitorTechnology</value>
+  </data>
+  <data name="BusAux_ElectricSystem_NominalVoltage" xml:space="preserve">
+    <value>NominalVoltage</value>
+  </data>
+  <data name="BusAux_ElectricSystem_RatedCapacitance" xml:space="preserve">
+    <value>RatedCapacitance</value>
+  </data>
+  <data name="BusAux_ElectricSystem_RatedCapacity" xml:space="preserve">
+    <value>RatedCapacity</value>
+  </data>
+  <data name="BusAux_ElectricSystem_RatedCurrent" xml:space="preserve">
+    <value>RatedCurrent</value>
+  </data>
+  <data name="BusAux_ElectricSystem_RatedRatedVoltage" xml:space="preserve">
+    <value>RatedVoltage</value>
+  </data>
+  <data name="BusAux_ElectricSystem_RatedVoltage" xml:space="preserve">
+    <value>RatedVoltage</value>
+  </data>
+  <data name="BusAux_ElectricSystem_SmartAlternator" xml:space="preserve">
+    <value>SmartAlternator</value>
+  </data>
+  <data name="BusAux_ElectricSystem_SupplyFromHEVPossible" xml:space="preserve">
+    <value>SupplyFromHEVPossible</value>
+  </data>
+  <data name="BusAux_Fan" xml:space="preserve">
+    <value>Fan</value>
+  </data>
+  <data name="BusAux_SteeringPump" xml:space="preserve">
+    <value>SteeringPump</value>
+  </data>
+  <data name="BusAux_Technology" xml:space="preserve">
+    <value>Technology</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashing/VectoHash.cs b/VectoCommon/VectoHashing/VectoHash.cs
index 2a6a8d221870ebd03cc53589f0cf7b94d01e18a9..f4d9e03b24aeb0ffa36f6b7147ff51b851c1a5ff 100644
--- a/VectoCommon/VectoHashing/VectoHash.cs
+++ b/VectoCommon/VectoHashing/VectoHash.cs
@@ -305,6 +305,9 @@ namespace TUGraz.VectoHashing
 			if (Document.DocumentElement.LocalName.Equals("VectoOutputPrimaryVehicle")) {
 				return VectoComponents.VectoPrimaryVehicleInformation;
 			}
+			if (Document.DocumentElement.LocalName.Equals(XMLNames.ManufacturingStage)) {
+				return VectoComponents.VectoManufacturingStage;
+			}
 			throw new Exception("unknown document structure! neither input data nor output data format");
 		}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
index 6628bac04ff604b73748ffef679fb8c911374ea2..5533fb1269f96d708e0f2dc60886dc4be5fc19cf 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
@@ -25,9 +25,23 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			IVehicleDeclarationInputData completedVehicle, Segment segment, Mission mission, 
 			KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
 		{
+			if (completedVehicle.NumberPassengerSeatsLowerDeck == null) {
+				throw new VectoException("NumberOfPassengerSeatsLowerDeck input parameter is required");
+			}
+			if (completedVehicle.NumberPassengerSeatsUpperDeck == null) {
+				throw new VectoException("NumberOfPassengerSeatsUpperDeck input parameter is required");
+			}
+			if (completedVehicle.NumberPassengersStandingLowerDeck == null) {
+				throw new VectoException("NumberOfPassengersStandingLowerDeck input parameter is required");
+			}
+			if (completedVehicle.NumberPassengersStandingUpperDeck == null) {
+				throw new VectoException("NumberOfPassengersStandingUpperDeck input parameter is required");
+			}
 			var passengers = GetNumberOfPassengers(
 				mission, completedVehicle.Length, completedVehicle.Width,
-				(int)completedVehicle.NumberPassengerSeatsLowerDeck + (int)completedVehicle.NumberPassengerSeatsUpperDeck, loading.Key);
+				completedVehicle.NumberPassengerSeatsLowerDeck.Value + completedVehicle.NumberPassengerSeatsUpperDeck.Value, 
+				completedVehicle.NumberPassengersStandingLowerDeck.Value + completedVehicle.NumberPassengersStandingUpperDeck.Value, 
+				loading.Key);
 
 			var vehicleData = base.CreateVehicleData(primaryVehicle, segment, mission, loading, false);
 			vehicleData.InputData = completedVehicle;
@@ -187,53 +201,58 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration;
 			var busAux = completedVehicle.Components.BusAuxiliaries.HVACAux;
 
-			if (hvacConfiguration.RequiresDriverAC() && (!busAux.HeatPumpTypeDriverCompartment.HasValue || busAux.HeatPumpTypeDriverCompartment == HeatPumpType.none)) {
-				throw new VectoException("HVAC System Configuration {0} requires DriverAC Technology", hvacConfiguration);
-			}
-			//ToDo FK HeatPumpMode error check
-			//if (hvacConfiguration.RequiresPassengerAC() && (!busAux.HeatPumpTypePassengerCompartment.HasValue || busAux.HeatPumpTypePassengerCompartment == HeatPumpType.none)) {
-			//	throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration);
-			//}
-
-			if (mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfiguration) &&
+			
+            if (mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfiguration) &&
 				(busAux.SeparateAirDistributionDucts == null || !busAux.SeparateAirDistributionDucts.Value)) {
 				throw new VectoException("Input parameter 'separate air distribution ducts' has to be set to 'true' for vehicle group '{0}' and HVAC configuration '{1}'",
 					mission.BusParameter.BusGroup.GetClassNumber(), hvacConfiguration.GetName());
 			}
 
 			if (completedVehicle.NumberPassengerSeatsLowerDeck == null) {
-				throw new VectoException("NumberOfPassengersLowerDeck input parameter is required");
+				throw new VectoException("NumberOfPassengerSeatsLowerDeck input parameter is required");
 			}
 			if (completedVehicle.NumberPassengerSeatsUpperDeck == null) {
-				throw new VectoException("NumberOfPassengersUpperDeck input parameter is required");
+				throw new VectoException("NumberOfPassengerSeatsUpperDeck input parameter is required");
+			}
+			if (completedVehicle.NumberPassengersStandingLowerDeck == null) {
+				throw new VectoException("NumberOfPassengersStandingLowerDeck input parameter is required");
+			}
+			if (completedVehicle.NumberPassengersStandingUpperDeck == null) {
+				throw new VectoException("NumberOfPassengersStandingUpperDeck input parameter is required");
 			}
 			if (busAux.HeatPumpTypeDriverCompartment == null) {
 				throw new VectoException("HeatPumpTypeDriverCompartment input parameter is required");
 			}
-			if (busAux.HeatPumpPassengerCompartments == null) {
+			if (busAux.HeatPumpPassengerCompartments == null || busAux.HeatPumpPassengerCompartments.Count == 0) {
 				throw new VectoException("HeatPumpPassengerCompartments input parameter is required");
 			}
 			if (busAux.HeatPumpModeDriverCompartment == null || (busAux.HeatPumpTypeDriverCompartment != HeatPumpType.none && busAux.HeatPumpModeDriverCompartment.Value == HeatPumpMode.N_A)) {
 				throw new VectoException("HeatPumpTypeDriverCompartment input parameter is required");
 			}
 
-			//ToDo FK HeatPumpMode error check
-			//if (busAux.HeatPumpModePassengerCompartments == null || (busAux.HeatPumpTypePassengerCompartment != HeatPumpType.none && busAux.HeatPumpModePassengerCompartment.Value == HeatPumpMode.N_A)) {
-			//	throw new VectoException("HeatPumpModePassengerCompartment input parameter is required");
-			//}
+			if (hvacConfiguration.RequiresDriverAC() && busAux.HeatPumpTypeDriverCompartment == HeatPumpType.none) {
+				throw new VectoException("HVAC System Configuration {0} requires DriverAC Technology", hvacConfiguration);
+			}
+			
+			if (hvacConfiguration.RequiresPassengerAC() && busAux.HeatPumpPassengerCompartments.All(x => x.Item1 == HeatPumpType.none)) {
+				throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration);
+			}
+
+			if (busAux.HeatPumpPassengerCompartments.Any(x => x.Item1 != HeatPumpType.none && x.Item2 == HeatPumpMode.N_A)) {
+                throw new VectoException("HeatPumpModePassengerCompartment input parameter is required");
+            }
 
-			var heatPumpTypeDriverCompartment =
+            var heatPumpTypeDriverCompartment =
 				busAux.HeatPumpModeDriverCompartment == HeatPumpMode.heating
 					? HeatPumpType.none
 					: busAux.HeatPumpTypeDriverCompartment.Value;
 
-			//ToDo FK HeatPumpMode for calculation COP
-			//var heatPumpTypePassengerCompartment =
-			//	busAux.HeatPumpModePassengerCompartment == HeatPumpMode.heating
-			//		? HeatPumpType.none
-			//		: busAux.HeatPumpTypePassengerCompartment.Value;
+            var heatPumpTypePassengerCompartment = (
+                busAux.HeatPumpPassengerCompartments.All(x => x.Item2 == HeatPumpMode.heating)
+                    ? new[] {HeatPumpType.none}.ToList()
+                    : busAux.HeatPumpPassengerCompartments.Select(x => x.Item1).ToList()).FirstOrDefault();
 
-			var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2
+            var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2
 				? 2 * Constants.BusParameters.DriverCompartmentLength // OK
 				: DeclarationData.BusAuxiliaries.CalculateInternalLength(
 					completedVehicle.Length, completedVehicle.VehicleCode,
@@ -264,23 +283,25 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			ssmInputs.UValue = DeclarationData.BusAuxiliaries.UValue(completedVehicle.VehicleCode.GetFloorType());
 			ssmInputs.NumberOfPassengers = GetNumberOfPassengers(
 				mission, internalLength, correctedBusWidth,
-				completedVehicle.NumberPassengerSeatsLowerDeck.Value + completedVehicle.NumberPassengerSeatsUpperDeck.Value, loadingType) + 1; // add driver for 'heat input'
+				completedVehicle.NumberPassengerSeatsLowerDeck.Value + completedVehicle.NumberPassengerSeatsUpperDeck.Value,
+				completedVehicle.NumberPassengersStandingLowerDeck.Value + completedVehicle.NumberPassengersStandingUpperDeck.Value,
+				loadingType) + 1; // add driver for 'heat input'
 			ssmInputs.VentilationRate = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, false);
 			ssmInputs.VentilationRateHeating = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, true);
 
 			ssmInputs.HVACMaxCoolingPower = coolingPower.Item1 + coolingPower.Item2;
 
-			//ToDo FK COP calculation
-			//ssmInputs.HVACCompressorType = heatPumpTypePassengerCompartment; // use passenger compartment
-			//ssmInputs.HVACTechnology = string.Format(
-			//	"{0} ({1})", busAux.SystemConfiguration.GetName(),
-			//	string.Join(", ", new[] { heatPumpTypePassengerCompartment.GetName(), heatPumpTypeDriverCompartment.GetName() }));
-			//;
-			//ssmInputs.COP = DeclarationData.BusAuxiliaries.CalculateCOP(
-			//	coolingPower.Item1, heatPumpTypeDriverCompartment, coolingPower.Item2, heatPumpTypePassengerCompartment,
-			//	floorType);
-
-			return ssmInputs;
+            //ToDo FK COP calculation
+            ssmInputs.HVACCompressorType = heatPumpTypePassengerCompartment; // use passenger compartment
+            ssmInputs.HVACTechnology = string.Format(
+                "{0} ({1})", busAux.SystemConfiguration.GetName(),
+                string.Join(", ", new[] { heatPumpTypePassengerCompartment.GetName(), heatPumpTypeDriverCompartment.GetName() }));
+            ;
+            ssmInputs.COP = DeclarationData.BusAuxiliaries.CalculateCOP(
+                coolingPower.Item1, heatPumpTypeDriverCompartment, coolingPower.Item2, heatPumpTypePassengerCompartment /* average */,
+                floorType);
+
+            return ssmInputs;
 		}
 
 		
@@ -381,7 +402,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 		#endregion
 
 
-		protected double GetNumberOfPassengers(Mission mission, Meter length, Meter width, double registeredPassengers, LoadingType loading)
+		protected double GetNumberOfPassengers(Mission mission, Meter length, Meter width, double registeredPassengers,
+			double registeredPassengersStanding, LoadingType loading)
 		{
 			var busFloorArea = DeclarationData.BusAuxiliaries.CalculateBusFloorSurfaceArea(length, width);
 			var passengerCountRef = busFloorArea * (loading == LoadingType.LowLoading
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs
index f56be26ea50bb31236162ebf5baf9a99661d3c4a..ce6de4a3804e55b595105358b2d5707265b7cc17 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.Linq;
 using System.Security.Cryptography;
 using System.Text;
@@ -15,6 +16,7 @@ using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Utils;
+using TUGraz.VectoHashing;
 
 
 namespace TUGraz.VectoCore.OutputData.XML
@@ -161,20 +163,37 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 		#region Generate new manfuacturing Stage
 
+		private XElement GetSignatureElement(XElement stage)
+		{
+			var stream = new MemoryStream();
+			var writer = new StreamWriter(stream);
+			writer.Write(stage);
+			writer.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
+
+			return new XElement(tns + XMLNames.DI_Signature,
+						 VectoHash.Load(stream).ComputeXmlHash
+							(VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod));
+		}
+
+
 		private XElement GenerateInputManufacturingStage()
 		{
 			var multistageId = $"{VectoComponents.VectoManufacturingStage.HashIdPrefix()}{GetGUID()}";
 			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
 
-			return new XElement(tns + XMLNames.ManufacturingStage,
-					new XAttribute("stageCount", GetStageNumber()),
-					new XElement(tns + XMLNames.Report_DataWrap,
-						new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStageDataType"),
-						new XAttribute(XMLNames.Component_ID_Attr, multistageId),
-						GetHashPreviousStageElement(),
-						GetVehicleElement(vehicleId),
-						GetApplicationInformation()),
-					GetInputdataSignature(multistageId));
+			var stage = new XElement(tns + XMLNames.ManufacturingStage,
+				new XAttribute("stageCount", GetStageNumber()),
+				new XElement(tns + XMLNames.Report_DataWrap,
+					new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStageDataType"),
+					new XAttribute(XMLNames.Component_ID_Attr, multistageId),
+					GetHashPreviousStageElement(),
+					GetVehicleElement(vehicleId),
+					GetApplicationInformation()));
+
+			var sigXElement = GetSignatureElement(stage);
+			stage.LastNode.Parent.Add(sigXElement);
+			return stage;
 		}
 		
 		private int GetStageNumber()
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs
index 77f77735f53a1fbf3eb75554e26b47e31799d6d1..1f3a72425991957da71fba810e05e09fb421965b 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs
@@ -1,15 +1,17 @@
 using System;
 using System.Collections.Generic;
-using System.Data;
+using System.IO;
 using System.Linq;
-using System.Security.Cryptography;
-using System.Text;
 using System.Xml;
 using System.Xml.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Hashing;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Impl;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
@@ -17,6 +19,7 @@ using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
 using TUGraz.VectoCore.Utils;
+using TUGraz.VectoHashing;
 
 namespace TUGraz.VectoCore.OutputData.XML
 {
@@ -52,11 +55,6 @@ namespace TUGraz.VectoCore.OutputData.XML
 		public void GenerateReport(XElement resultSignature)
 		{
 			var retVal = new XDocument();
-			var results = new XElement(Results);
-			results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error"));
-
-			var vehicleId = $"{VectoComponents.Vehicle.HashIdPrefix()}{GetGUID()}";
-
 			retVal.Add(
 				new XElement(XMLNames.VectoOutputMultistage,
 					new XAttribute("xmlns", tns),
@@ -68,29 +66,46 @@ namespace TUGraz.VectoCore.OutputData.XML
 					new XAttribute(XNamespace.Xmlns + "v2.6", v26),
 					new XAttribute(XNamespace.Xmlns + "v2.8", v28),
 					new XAttribute(xsi + "schemaLocation", $"{tns.NamespaceName} "+ @"V:\VectoCore\VectoCore\Resources\XSD/VectoOutputMultistage.0.1.xsd"),
-
-					new XElement(XMLNames.Bus_PrimaryVehicle,
-						new XElement(tns + XMLNames.Report_DataWrap,
-							new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
-							new XAttribute(xsi + "type", "PrimaryVehicleDataType"),
-							 VehiclePart,
-							InputDataIntegrity,
-							new XElement(tns + "ManufacturerRecordSignature", resultSignature),
-							results,
-							GetApplicationInfo()),
-						GetInputdataSignature(vehicleId))
-					)
+					
+					GeneratePrimaryVehicle(resultSignature))
 				);
 
-				//var stream = new MemoryStream();
-				//var writer = new StreamWriter(stream);
-				//writer.Write(retVal);
-				//writer.Flush();
-				//stream.Seek(0, SeekOrigin.Begin);
+			Report = retVal;
+		}
+		
+		private XElement GeneratePrimaryVehicle(XElement resultSignature)
+		{
+			var results = new XElement(Results);
+			results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, _allSuccess ? "success" : "error"));
+			var vehicleId = $"{VectoComponents.Vehicle.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"),
+					VehiclePart,
+					InputDataIntegrity,
+					new XElement(tns + "ManufacturerRecordSignature", resultSignature),
+					results,
+					GetApplicationInfo())
+			);
+
+			var sigXElement = GetSignatureElement(primaryVehicle);
+			primaryVehicle.LastNode.Parent.Add(sigXElement);
+			return primaryVehicle;
+		}
+
+		private XElement GetSignatureElement(XElement stage)
+		{
+			var stream = new MemoryStream();
+			var writer = new StreamWriter(stream);
+			writer.Write(stage);
+			writer.Flush();
+			stream.Seek(0, SeekOrigin.Begin);
 
-				//var h = VectoHash.Load(stream);
-				//Report = h.AddHash();
-				Report = retVal;
+			return new XElement(tns + XMLNames.DI_Signature,
+				VectoHash.Load(stream).ComputeXmlHash
+					(VectoHash.DefaultCanonicalizationMethod, VectoHash.DefaultDigestMethod));
 		}
 
 		private XElement GetApplicationInfo()
@@ -236,31 +251,126 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 		private XElement GetAuxiliariesDescription(VectoRunData modelData)
 		{
-			var busAuxiliaries = modelData.BusAuxiliaries;
-			var busAuxXML = busAuxiliaries.InputData.XMLSource;
-
-			var dataElement = new XElement(tns+ XMLNames.ComponentDataWrapper,
-				new XAttribute(xsi + "type", "AuxiliaryDataPIFType"),
-				new XAttribute("xmlns", tns.NamespaceName),
+			var aux = modelData.BusAuxiliaries.InputData;
+			var supplyHevPossible = XmlConvert.ToBoolean(
+				aux.XMLSource.SelectSingleNode(
+					$".//*[local-name()='{XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible}']")?.InnerText);
 
-				XElement.Parse(busAuxXML.InnerXml).Elements());
-			dataElement = RemoveNamespace(dataElement);			
 
-			
 			return new XElement(tns + XMLNames.Component_Auxiliaries,
-				 dataElement );
+				new XElement(tns + XMLNames.ComponentDataWrapper,
+					new XAttribute(xsi + "type", "AuxiliaryDataPIFType"),
+					new XAttribute("xmlns", tns.NamespaceName),
+					new XElement(tns + XMLNames.BusAux_Fan, new XElement(tns + XMLNames.BusAux_Technology,  aux.FanTechnology)),
+					GetSteeringPumpElement(aux.SteeringPumpTechnology),
+					GetElectricSystem(aux.ElectricSupply, supplyHevPossible),
+					GetPneumaticSystem(aux.PneumaticSupply, aux.PneumaticConsumers),
+					GetHvac(aux.HVACAux))
+				);
 		}
 
 
-		private XElement RemoveNamespace(XElement elements)
+		private XElement GetSteeringPumpElement(IList<string> steeringPumps)
 		{
-			foreach (XElement e in elements.DescendantsAndSelf())
+			var technologies = new List<XElement>();
+
+			for (int i = 0; i < steeringPumps.Count; i++)
 			{
-				if (e.Name.Namespace != XNamespace.None)
-					e.Name = e.Name.LocalName;
+				var technology = new XElement(tns + XMLNames.BusAux_Technology,
+					new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, i + 1), steeringPumps[i]);
+				technologies.Add(technology);
 			}
 
-			return elements;
+			return new XElement(tns + XMLNames.BusAux_SteeringPump,
+				technologies
+			);
+		}
+
+		private XElement GetElectricSystem(IElectricSupplyDeclarationData electricSupply, bool supplyHevPossible)
+		{
+			var alternatorTech = new XElement(tns + 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(tns + XMLNames.BusAux_ElectricSystem_SmartAlternator,
+									new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedCurrent, alternator.RatedCurrent.Value()),
+									new XElement(tns + 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) {
+						var battery = electricStorage as BusAuxBatteryInputData;
+						auxBattery.Add(new XElement(tns + XMLNames.BusAux_ElectricSystem_Battery,
+							new XElement(tns + XMLNames.BusAux_ElectricSystem_BatteryTechnology, battery.Technology),
+							new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedCapacity, battery.Capacity.AsAmpHour),
+							new XElement(tns + XMLNames.BusAux_ElectricSystem_NominalVoltage, battery.Voltage.Value())));
+					}
+					else if (electricStorage is BusAuxCapacitorInputData) {
+						var capacitor = electricStorage as BusAuxCapacitorInputData;
+						auxCapacitor.Add(new XElement(tns + XMLNames.BusAux_ElectricSystem_Capacitor,
+							new XElement(tns + XMLNames.BusAux_ElectricSystem_CapacitorTechnology, capacitor.Technology),
+							new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedCapacitance, capacitor.Capacity.Value()),
+							new XElement(tns + XMLNames.BusAux_ElectricSystem_RatedVoltage, capacitor.Voltage.Value())));
+					}
+				}
+
+				auxBattery = auxBattery.Any() ? auxBattery : null;
+				auxCapacitor = auxCapacitor.Any() ? auxCapacitor : null;
+			}
+			
+			return new XElement(tns + XMLNames.BusAux_ElectricSystem,
+						alternatorTech,
+						smartAlternators,
+						auxBattery,
+						auxCapacitor,
+						new XElement(tns + XMLNames.BusAux_ElectricSystem_SupplyFromHEVPossible, supplyHevPossible)
+			);
+		}
+
+
+		private XElement GetPneumaticSystem(IPneumaticSupplyDeclarationData supply, IPneumaticConsumersDeclarationData consumer)
+		{
+			return new XElement(tns + XMLNames.BusAux_PneumaticSystem,
+					new XElement(tns + XMLNames.Bus_SizeOfAirSupply, supply.CompressorSize),
+					new XElement(tns + XMLNames.CompressorDrive, supply.CompressorDrive.GetLabel()),
+					new XElement(tns + XMLNames.Vehicle_Clutch, supply.Clutch),
+					new XElement(tns + XMLNames.Bus_CompressorRatio, supply.Ratio.ToMinSignificantDigits(3)),
+					new XElement(tns + XMLNames.Bus_SmartCompressionSystem, supply.SmartAirCompression),
+					new XElement(tns + XMLNames.Bus_SmartRegenerationSystem, supply.SmartRegeneration),
+					new XElement(tns + XMLNames.Bus_AirsuspensionControl, GetXMLAirsuspensionControl(consumer.AirsuspensionControl)),
+					new XElement(tns + XMLNames.BusAux_PneumaticSystem_SCRReagentDosing, consumer.AdBlueDosing == ConsumerTechnology.Pneumatically)
+				);
+		}
+
+		private string GetXMLAirsuspensionControl(ConsumerTechnology airsuspensionControl)
+		{
+			switch (airsuspensionControl) {
+				case ConsumerTechnology.Electrically:
+					return "electronically";
+				case ConsumerTechnology.Mechanically:
+					return "mechanically";
+				default:
+					throw new VectoException("Unknown AirsuspensionControl!");
+			}
+		}
+
+
+		private XElement GetHvac(IHVACBusAuxiliariesDeclarationData hvac)
+		{
+			return new XElement(new XElement(tns + XMLNames.BusAux_HVAC,
+				new XElement(tns + XMLNames.Bus_AdjustableCoolantThermostat, hvac.AdjustableCoolantThermostat),
+				new XElement(tns + XMLNames.Bus_EngineWasteGasHeatExchanger, hvac.EngineWasteGasHeatExchanger)));
 		}
 
 
@@ -331,7 +441,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 							)),
 						new XElement(
 							tns + "Fuels",
-							mode.Fuels.Select(x => new XElement(tns + "FuelType", x.FuelType.ToXMLFormat())))
+							mode.Fuels.Select(x => new XElement(tns + XMLNames.Engine_FuelType, x.FuelType.ToXMLFormat())))
 					)
 				);
 			}
@@ -484,37 +594,11 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 			return retVal.Cast<object>().ToArray();
 		}
-
-
-		private XElement GetInputdataSignature(string multistageId)
-		{
-			return new XElement(tns + XMLNames.DI_Signature,
-				new XElement(di + XMLNames.DI_Signature_Reference,
-					new XAttribute(XMLNames.DI_Signature_Reference_URI_Attr, $"#{multistageId}"),
-					new XElement(di + XMLNames.DI_Signature_Reference_Transforms,
-						new XElement(di + XMLNames.DI_Signature_Reference_Transforms_Transform,
-							new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "urn:vecto:xml:2017:canonicalization")),
-						new XElement(di + XMLNames.DI_Signature_Reference_Transforms_Transform,
-							new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "http://www.w3.org/2001/10/xml-exc-c14n#"))
-					),
-					new XElement(di + XMLNames.DI_Signature_Reference_DigestMethod,
-						new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "http://www.w3.org/2001/04/xmlenc#sha256")),
-					new XElement(di + XMLNames.DI_Signature_Reference_DigestValue, GetDigestValue(multistageId)))
-			);
-		}
-
+		
 		private string GetGUID()
 		{
 			return Guid.NewGuid().ToString("n").Substring(0, 20);
 		}
-
-		private string GetDigestValue(string multistageId)
-		{
-			var alg = SHA256.Create();
-			alg.ComputeHash(Encoding.UTF8.GetBytes(multistageId));
-			return Convert.ToBase64String(alg.Hash);
-		}
-
 	}
 
 }
diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
index ec837b65c65e031d025390bdbb22639938e6ed4e..305c2a461dbb4837cff635618cc1f2ac3c462323 100644
--- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
@@ -691,7 +691,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 
 			Assert.AreEqual(1, aux.SteeringPumpTechnology.Count);
 			Assert.AreEqual("Variable displacement elec. controlled", aux.SteeringPumpTechnology[0]);
-			
+
+			//ToDo SupplyFromHEVPossible to interface and reader?
 			Assert.AreEqual(AlternatorType.Smart, aux.ElectricSupply.AlternatorTechnology);
 
 			Assert.AreEqual(1, aux.ElectricSupply.Alternators.Count);
@@ -713,7 +714,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			Assert.AreEqual(3.SI<Volt>(), capacitor.Voltage);
 			
 			Assert.AreEqual("Large Supply 2-stage", aux.PneumaticSupply.CompressorSize);//SizeOfAirSupply
-			Assert.AreEqual(CompressorDrive.mechanically, aux.PneumaticSupply.CompressorDrive);
+			Assert.AreEqual(CompressorDrive.electrically, aux.PneumaticSupply.CompressorDrive);
 			Assert.AreEqual("none", aux.PneumaticSupply.Clutch);
 			Assert.AreEqual(1.000, aux.PneumaticSupply.Ratio);
 			Assert.AreEqual(false, aux.PneumaticSupply.SmartAirCompression);