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/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);