From 65f62515c66de58a8d798d3bde66a53f2f5f08a4 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 31 Oct 2019 14:30:54 +0100
Subject: [PATCH]  combine pneumatic air demand with and without retarder into
 single field, rename properties, rename class and interface

---
 Overview_BusAuxConfig.txt                     |  93 +++++++++
 .../TestFiles/AdvAuxTest.aaux                 |   4 +-
 .../TestFiles/Integration/AdvAuxTest.aaux     |   4 +-
 .../AuxiliaryEnvironmentComparisonTests.vb    |  70 +++----
 .../AveragePneumaticLoadDemandTests.vb        |  46 ++---
 .../UnitTests/M9Tests.vb                      |   4 +-
 .../VectoAuxiliariesTests/UnitTests/Utils.vb  | 187 ++++++++++--------
 .../BusAuxiliaries/IAuxiliaryConfig.cs        |   2 +-
 .../IPneumaticUserInputsConfig.cs             |   3 +-
 .../IPneumaticsAuxilliariesConfig.cs          |  20 --
 .../IPneumaticsConsumersDemand.cs             |  20 ++
 VectoCommon/VectoCommon/VectoCommon.csproj    |   2 +-
 .../VectoCore/Configuration/Constants.cs      |  23 +--
 .../FileIO/JSON/BusAuxiliaryInputData.cs      |  28 +--
 .../DeclarationDataAdapter.cs                 |  73 ++++---
 .../Models/BusAuxiliaries/AuxiliaryConfig.cs  |  76 ++++---
 .../Impl/HVAC/SSMCalculate.cs                 |  92 ++-------
 .../DownstreamModules/Impl/M09Impl.cs         |   4 +-
 .../Impl/Pneumatics/M03Impl.cs                |  20 +-
 .../Pneumatics/PneumaticUserInputsConfig.cs   |   2 +-
 ...Config.cs => PneumaticsConsumersDemand.cs} |  21 +-
 .../Models/Declaration/DeclarationData.cs     |  21 +-
 .../OutputData/FileIO/BusAuxWriter.cs         |  22 +--
 .../Buses/DefaultActuationsMap.APAC           |   4 +-
 VectoCore/VectoCore/VectoCore.csproj          |   2 +-
 25 files changed, 455 insertions(+), 388 deletions(-)
 create mode 100644 Overview_BusAuxConfig.txt
 delete mode 100644 VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs
 create mode 100644 VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs
 rename VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/{PneumaticsAuxilliariesConfig.cs => PneumaticsConsumersDemand.cs} (57%)

diff --git a/Overview_BusAuxConfig.txt b/Overview_BusAuxConfig.txt
new file mode 100644
index 0000000000..09e18fa38a
--- /dev/null
+++ b/Overview_BusAuxConfig.txt
@@ -0,0 +1,93 @@
+AuxiliaryConfig
+  +--- ElectricUserInputConfig
+  |      +--- PowerNetVoltage   => const
+  |      +--- AlternatorMap  (IAlternatorMap)  -> to be replaced by fixed efficiency (function of technology, size (=0.7))
+  |      +--- AlternatorGearEfficiency => const
+  |      +--- ElectricalConsumerList (IElectricalConsumerList)  => fix, which consumers are applied from segment table, or input (bool), doors: 2
+  |      +--- DoorActuationTime => const 
+  |      +--- ResultCardIdle (IResultCard)  => input (?)
+  |      |        +--- Results (IReadonlyList<SmartResult>)   ==> Not needed in Interface? XX
+  |      |        +--- GetSmartCurrentResult
+  |      +--- ResultCardTraction
+  |      |        +--- Results (IReadonlyList<SmartResult>)   ==> Not needed in Interface?  XX
+  |      |        +--- GetSmartCurrentResult
+  |      +--- ResultCardOverrun
+  |      |        +--- Results (IReadonlyList<SmartResult>)   ==> Not needed in Interface?  XX
+  |      |        +--- GetSmartCurrentResult
+  |      +--- SmartElectrical  => input
+  |      +--- StoredEnergyEfficiency => const
+  +--- PneumaticAuxiliariesConfig  => const
+  |      +--- OverrunUtilisationForComressionFraction
+  |      +--- BrakingWithRetarderNIperKg
+  |      +--- BrakingNoRetarderNIperKg
+  |      +--- PerDoorOpeningNI
+  |      +--- PerStopBrakeActuationNIperKG
+  |      +--- AirControlledSuspensionNIperMinute
+  |      +--- AdBlueNIperMinute
+  |      +--- NonSmartRegenFractionTotalAirDemand
+  |      +--- SmartRegenFractionTotalAirDemand
+  |      +--- DeadVolumeLiters
+  |      +--- DeadVolBlowOutsPerLitresperHour
+  +--- PneumaticUserInputsconfig
+  |      +--- CompressorMap (ICompressorMap) => input (size of air supply) defines compressor map to be used (available in test project!)
+  |      +--- CompressorGearEfficiency => const
+  |      +--- CompressorGearRatio => input
+  |      X    ActuationsMap (Dictionary<ActuationsKey, int>)  (XXX)
+  |      +--- SmartAirCompression => input (?)
+  |      +--- SmartRegeneration => input (?)
+  |      +--- RetartderBrake  => input vehicle data
+  |      +--- KneelingHeight  => calculate: entrance height - 270mm, primary vehicle fix 80mm
+  |      +--- AirSuspensionControlTechnology => input
+  |      +--- AdBlueDosingTechnology => yes -> pneumatic, no electric
+  |      +--- DoorsTechnology => input
+  +--- HVACUserInputsConfig
+  |      +--- HVACConstants
+  |               +--- FuelProperties
+  +--- SSMInputs
+  |      +--- SSMDisabled => false
+  |      +--- BusParameters => vehicle data
+  |      |        +--- BusModel
+  |      |        +--- NumberOfPassengers
+  |      |        +--- BusFloorType
+  |      |        +--- BusLength
+  |      |        +--- BusWidth
+  |      |        +--- BusHeight
+  |      |        +--- ... further derived parameters
+  |      +--- Technologies (List<TechBenefitLine) => input
+  |      +--- BoundaryConditions => const
+  |      |        +--- GFactor
+  |      |        +--- SolarClouding
+  |      |        +--- HeatPerPassengerIntoCabin
+  |      |        +--- UValue
+  |      |        +--- HeatingBoundaryTemp
+  |      |        +--- CoolingBoundaryTemp
+  |      |        +--- HighVentilation
+  |      |        +--- LowVentilation
+  |      |        +---  ... further constant values
+  |      +--- EnvironmentalConditions
+  |      |        +--- DefaultConditions (IEnvironmentalContitionsMapEntry)  --> not relevant
+  |      |        |        +--- Temperature
+  |      |        |        +--- Solar
+  |      |        |        +--- Weighting ( = 1)
+  |      |        +--- EnvironmentalConditionsMap (IEnvironmentalConditionsMap) ==> const
+  |      |        |        +--- GetEnvironmentalConditions (IReadonlyList<IEnvironmentalContitionsMapEntry>)
+  |      |        +--- BatchMode => true
+  |      +--- ACSystem
+  |      |        +--- CompressorType  -> input parameter
+  |      |        +--- CompressorTypeDerived -> calculated
+  |      |        +--- CompressorCapacity -> calculated (excel)
+  |      |        +--- COP -> generic
+  |      +--- Ventilation
+  |      |        +--- VentilationDuringHeating => const
+  |      |        +--- VentilationWhenBothHeatingAndACInactive => const
+  |      |        +--- VentilationDuringAC => const
+  |      |        +--- VentilationFlowSettingsWhenHeatingAndACInactive => const
+  |      |        +--- VentilationDuringHeating => const
+  |      |        +--- VentilationDuringCooling => const
+  |      +--- AuxHeater
+  |               +--- FuelFiredHeaterKw => derived fom input parameter
+  |               +--- FuelEnergyToHeatToCoolant => const
+  |               +--- CoolantHeatTransferredToAirCondition => const
+  +--- ActuationsMap (??)  => update
+  +--- VehicleData
+  +--- FuelMap
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux b/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux
index cea26c5ac4..c9f0851aac 100644
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux
+++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux
@@ -281,7 +281,6 @@
       "Doors": "Pneumatic",
       "KneelingHeightMillimeters": 80.0,
       "ActuationsMap": "testPneumaticActuationsMap.APAC",
-      "RetarderBrake": true,
       "SmartAirCompression": true,
       "SmartRegeneration": true
     },
@@ -290,8 +289,7 @@
         "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Pneumatics.PneumaticsAuxilliariesConfig, BusAuxiliaries",
       "AdBlueNIperMinute": 21.25,
       "AirControlledSuspensionNIperMinute": 15.0,
-      "BrakingNoRetarderNIperKG": 0.00081,
-      "BrakingWithRetarderNIperKG": 0.0006,
+      "BrakingNIperKG": 0.00081,
       "BreakingPerKneelingNIperKGinMM": 6.6E-05,
       "DeadVolBlowOutsPerLitresperHour": 24.0,
       "DeadVolumeLitres": 30.0,
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux
index 3d07b0736a..5dc8b18d75 100644
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux
+++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux
@@ -276,7 +276,6 @@
       "Doors": "Pneumatic",
       "KneelingHeightMillimeters": 80.0,
       "ActuationsMap": "testPneumaticActuationsMap.APAC",
-      "RetarderBrake": true,
       "SmartAirCompression": true,
       "SmartRegeneration": true
     },
@@ -285,8 +284,7 @@
         "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Pneumatics.PneumaticsAuxilliariesConfig, BusAuxiliaries",
       "AdBlueNIperMinute": 21.25,
       "AirControlledSuspensionNIperMinute": 15.0,
-      "BrakingNoRetarderNIperKG": 0.00081,
-      "BrakingWithRetarderNIperKG": 0.0006,
+      "BrakingNIperKG": 0.0006,
       "BreakingPerKneelingNIperKGinMM": 6.6E-05,
       "DeadVolBlowOutsPerLitresperHour": 24.0,
       "DeadVolumeLitres": 30.0,
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb
index 9c07134a80..1650b0cfd3 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb
@@ -490,7 +490,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-			CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).AdBlueNIperMinute += 1.SI(Of NormLiterPerSecond)
+			CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).AdBlueInjection += 1.SI(Of NormLiterPerSecond)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -506,7 +506,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).AirControlledSuspensionNIperMinute += 1.SI(of NormLiterPerSecond)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).AirControlledSuspension += 1.SI(of NormLiterPerSecond)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -522,7 +522,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BrakingNoRetarderNIperKG += 1.SI(of NormLiterPerKilogram)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).Braking += 1.SI(of NormLiterPerKilogram)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -530,21 +530,21 @@ Namespace UnitTests
 			Assert.AreEqual(False, compareResult)
 		End Sub
 
-		<Test()>
-		<Category("PneumaticAuxiliariesConfig")>
-		Public Sub PneumaticsAuxuiliaryConfig_BrakingWithRetarderNIperKG_Enequal()
+		'<Test()>
+		'<Category("PneumaticAuxiliariesConfig")>
+		'Public Sub PneumaticsAuxuiliaryConfig_BrakingWithRetarderNIperKG_Enequal()
 
-			'Arrange
-			Dim auxFresh = GetDefaultAuxiliaryConfig()
-			Dim auxNow = GetDefaultAuxiliaryConfig()
-			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BrakingWithRetarderNIperKG += 1.SI(Of NormLiterPerKilogram)
+		'	'Arrange
+		'	Dim auxFresh = GetDefaultAuxiliaryConfig()
+		'	Dim auxNow = GetDefaultAuxiliaryConfig()
+		'	Dim compareResult As Boolean
+		'    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BrakingWithRetarderNIperKG += 1.SI(Of NormLiterPerKilogram)
 
-			'Act
-			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
+		'	'Act
+		'	compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
 
-			Assert.AreEqual(False, compareResult)
-		End Sub
+		'	Assert.AreEqual(False, compareResult)
+		'End Sub
 
 		<Test()>
 		<Category("PneumaticAuxiliariesConfig")>
@@ -554,7 +554,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BreakingPerKneelingNIperKGinMM += 1.SI(Of NormLiterPerKilogramMeter)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).BreakingWithKneeling += 1.SI(Of NormLiterPerKilogramMeter)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -570,7 +570,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).DeadVolBlowOutsPerLitresperHour += 1.SI(Of PerSecond)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).DeadVolBlowOuts += 1.SI(Of PerSecond)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -586,7 +586,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).DeadVolumeLitres += 1.SI(of NormLiter)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).DeadVolume += 1.SI(of NormLiter)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -602,7 +602,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).NonSmartRegenFractionTotalAirDemand += 1
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).NonSmartRegenFractionTotalAirDemand += 1
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -618,7 +618,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).OverrunUtilisationForCompressionFraction += 1
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).OverrunUtilisationForCompressionFraction += 1
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -634,7 +634,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).PerDoorOpeningNI += 1.SI(Of NormLiter)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).DoorOpening += 1.SI(Of NormLiter)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -650,7 +650,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).PerStopBrakeActuationNIperKG += 1.SI(of NormLiterPerKilogram)
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).StopBrakeActuation += 1.SI(of NormLiterPerKilogram)
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -666,7 +666,7 @@ Namespace UnitTests
 			Dim auxFresh = GetDefaultAuxiliaryConfig()
 			Dim auxNow = GetDefaultAuxiliaryConfig()
 			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).SmartRegenFractionTotalAirDemand += 1
+		    CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).SmartRegenFractionTotalAirDemand += 1
 
 			'Act
 			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
@@ -812,20 +812,20 @@ Namespace UnitTests
 			Assert.AreEqual(False, compareResult)
 		End Sub
 
-		<Test()>
-		<Category("PneumaticUserInputsConfig")>
-		Public Sub PneumaticUserInputsConfig_RetarderBrake_Enequal()
+		'<Test()>
+		'<Category("PneumaticUserInputsConfig")>
+		'Public Sub PneumaticUserInputsConfig_RetarderBrake_Enequal()
 
-			'Arrange
-			Dim auxFresh = GetDefaultAuxiliaryConfig()
-			Dim auxNow = GetDefaultAuxiliaryConfig()
-			Dim compareResult As Boolean
-		    CType (auxNow.PneumaticUserInputsConfig, PneumaticUserInputsConfig).RetarderBrake = Not auxNow.PneumaticUserInputsConfig.RetarderBrake
+		'	'Arrange
+		'	Dim auxFresh = GetDefaultAuxiliaryConfig()
+		'	Dim auxNow = GetDefaultAuxiliaryConfig()
+		'	Dim compareResult As Boolean
+		'    CType (auxNow.PneumaticUserInputsConfig, PneumaticUserInputsConfig).RetarderBrake = Not auxNow.PneumaticUserInputsConfig.RetarderBrake
 
-			'Act
-			compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
-			Assert.AreEqual(False, compareResult)
-		End Sub
+		'	'Act
+		'	compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow)
+		'	Assert.AreEqual(False, compareResult)
+		'End Sub
 
 		<Test()>
 		<Category("PneumaticUserInputsConfig")>
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
index dcd80c932a..7cf71eb32d 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
@@ -2,20 +2,23 @@
 Imports System.IO
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.BusAuxiliaries
+Imports TUGraz.VectoCommon.Models
 Imports TUGraz.VectoCommon.Utils
 Imports TUGraz.VectoCore.InputData.Reader.ComponentData
+Imports TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 Imports TUGraz.VectoCore.Models.BusAuxiliaries
 Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics
 Imports TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces
 Imports TUGraz.VectoCore.Models.Declaration
+Imports TUGraz.VectoCore.Models.Simulation.Data
 Imports TUGraz.VectoCore.Models.SimulationComponent.Data
 
 Namespace UnitTests
     <TestFixture>
     Public Class M3_AveragePneumaticLoadDemandTests
         Private _pneumaticUserInputsConfig As IPneumaticUserInputsConfig
-        Private _pneumaticAuxillariesConfig As IPneumaticsAuxilliariesConfig
+        Private _pneumaticAuxillariesConfig As IPneumaticsConsumersDemand
         Private _actuationsMap As IActuationsMap
         Private _pneumaticsCompressorFlowRateMap As ICompressorMap
         Private _vehicleMassKG As Single = 16500
@@ -47,7 +50,7 @@ Namespace UnitTests
             _defaultInputConfig.CompressorGearRatio = 1.3
             _defaultInputConfig.CompressorGearEfficiency = 0.8
             _defaultInputConfig.SmartRegeneration = True
-            _defaultInputConfig.RetarderBrake = True
+            '_defaultInputConfig.RetarderBrake = True
             _defaultInputConfig.KneelingHeightMillimeters = 80.SI(Unit.SI.Milli.Meter).Cast (of Meter)
             _defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Electrically ' "Electrically"
             _defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatic ' "Pneumatic"
@@ -68,8 +71,7 @@ Namespace UnitTests
             psUserInputsConfig.Doors = ConsumerTechnology.Pneumatic  '"Pneumatic"
             psUserInputsConfig.AdBlueDosing = ConsumerTechnology.Pneumatic  ' "Pneumatic"
 
-
-            Dim psAuxConfig = DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
                                         
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
@@ -91,8 +93,7 @@ Namespace UnitTests
 
             initialise()
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
 
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
@@ -118,8 +119,7 @@ Namespace UnitTests
 
             initialise()
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
 
 
@@ -149,8 +149,7 @@ Namespace UnitTests
 
             _defaultInputConfig.CompressorGearEfficiency = 0.8
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
 
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
@@ -174,8 +173,7 @@ Namespace UnitTests
 
             initialise()
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
 
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
@@ -206,8 +204,7 @@ Namespace UnitTests
 
             _defaultInputConfig.SmartRegeneration = False
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
 
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
@@ -234,10 +231,9 @@ Namespace UnitTests
 
             initialise()
 
-            _defaultInputConfig.RetarderBrake = False
-
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            '_defaultInputConfig.RetarderBrake = False
+           
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.None)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                        
@@ -266,8 +262,7 @@ Namespace UnitTests
 
             _defaultInputConfig.KneelingHeightMillimeters = 100.SI(Unit.si.Milli.Meter).Cast (Of Meter)
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                        
@@ -293,8 +288,7 @@ Namespace UnitTests
 
             _defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Mechanically
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
@@ -322,8 +316,7 @@ Namespace UnitTests
 
             _defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatic
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
@@ -352,8 +345,7 @@ Namespace UnitTests
 
             _defaultInputConfig.Doors = ConsumerTechnology.Electrically
 
-            Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-                                    PneumaticsAuxilliariesConfig)
+            Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
 
@@ -373,7 +365,7 @@ Namespace UnitTests
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
         End Sub
 
-        Private Function GetAuxConfig(psAuxConfig As PneumaticsAuxilliariesConfig) As IAuxiliaryConfig
+        Private Function GetAuxConfig(psAuxConfig As IPneumaticsConsumersDemand) As IAuxiliaryConfig
 
             Return New AuxiliaryConfig() with {
                 .PneumaticAuxillariesConfig = psAuxConfig,
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
index 93a8c2974d..e36c600bb6 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
@@ -39,7 +39,7 @@ Namespace UnitTests
 			Dim m8Mock As New Mock(Of IM8)
 			Dim fMapMock As New MockFuel50PC()
 			Dim sgnlsMock As New Mock(Of ISignals)
-			Dim psac As New Mock(Of IPneumaticsAuxilliariesConfig)
+			Dim psac As New Mock(Of IPneumaticsConsumersDemand)
 
 			m6Mock.Setup(Function(x) x.AvgPowerDemandAtCrankFromElectricsIncHVAC).Returns(IP1.SI(Of Watt))
 			m1Mock.Setup(Function(x) x.AveragePowerDemandAtCrankFromHVACMechanicals).Returns(IP2.SI(Of Watt))
@@ -91,7 +91,7 @@ Namespace UnitTests
 			Dim m8Mock As New Mock(Of IM8)
 			Dim fMapMock As New Mock(Of IFuelConsumptionMap)
 			Dim sgnlsMock As New Mock(Of ISignals)
-			Dim psac As New Mock(Of IPneumaticsAuxilliariesConfig)
+			Dim psac As New Mock(Of IPneumaticsConsumersDemand)
 
 			fMapMock.Setup(Function(x) x.GetFuelConsumption(1.SI(Of NewtonMeter), 1.RPMtoRad())).Returns(
 				(-1 / 1000).SI(Of KilogramPerSecond)())
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
index b2967098a8..bf0aa1bbb2 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
@@ -12,66 +12,65 @@ Imports TUGraz.VectoCore.Models.Declaration
 Imports TUGraz.VectoCore.Models.SimulationComponent.Data
 
 Public Class Utils
-    
     public shared function GetElectricConsumers As IElectricalConsumerList
-            Dim _powernetVoltage = 26.3.SI (Of Volt)
-            Dim list As List(Of IElectricalConsumer) = New List(Of IElectricalConsumer)()
-            list.add(New ElectricalConsumer(False, "Doors", "Doors per vehicle", 3.0.SI (Of Ampere), 0.096339,
-                                            _powernetVoltage, 3, ""))
-            list.add(New ElectricalConsumer(True, "Veh Electronics &Engine", "Controllers,Valves etc",
-                                            25.0.SI (Of Ampere), 1.0, _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio City", 2.0.SI (Of Ampere), 0.8,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio Intercity", 5.0.SI (Of Ampere),
-                                            0.8, _powernetVoltage, 0, ""))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio/Audio Tourism",
-                                            9.0.SI (Of Ampere), 0.8,
-                                            _powernetVoltage, 0, ""))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Fridge", 4.0.SI (Of Ampere), 0.5,
-                                            _powernetVoltage, 0, ""))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Kitchen Standard",
-                                            67.0.SI (Of Ampere), 0.05, _powernetVoltage, 0, ""))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment",
-                                            "Interior lights City/ Intercity + Doorlights [Should be 1/m]",
-                                            1.0.SI (Of Ampere), 0.7,
-                                            _powernetVoltage, 12, "1 Per metre length of bus"))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment",
-                                            "LED Interior lights ceiling city/Intercity + door [Should be 1/m]",
-                                            0.6.SI (Of Ampere), 0.7,
-                                            _powernetVoltage, 0, "1 Per metre length of bus"))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights Tourism + reading [1/m]",
-                                            1.1.SI (Of Ampere), 0.7, _powernetVoltage, 0, "1 Per metre length of bus"))
-            list.add(New ElectricalConsumer(False, "Vehicle basic equipment",
-                                            "LED Interior lights ceiling Tourism + LED reading [Should be 1/m]",
-                                            0.66.SI (Of Ampere), 0.7,
-                                            _powernetVoltage, 0, "1 Per metre length of bus"))
-            list.add(New ElectricalConsumer(False, "Customer Specific Equipment", "External Displays Font/Side/Rear",
-                                            2.65017667844523.SI (Of Ampere), 1.0, _powernetVoltage, 4, ""))
-            list.add(New ElectricalConsumer(False, "Customer Specific Equipment",
-                                            "Internal display per unit ( front side rear)",
-                                            1.06007067137809.SI (Of Ampere), 1.0, _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Customer Specific Equipment",
-                                            "CityBus Ref EBSF Table4 Devices ITS No Displays", 9.3.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Lights", "Exterior Lights BULB", 7.4.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Lights", "Day running lights LED bonus", - 0.723.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Lights", "Antifog rear lights LED bonus", - 0.17.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Lights", "Position lights LED bonus", - 1.2.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Lights", "Direction lights LED bonus", - 0.3.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
-            list.add(New ElectricalConsumer(False, "Lights", "Brake Lights LED bonus", - 1.2.SI (Of Ampere), 1.0,
-                                            _powernetVoltage, 1, ""))
+        Dim _powernetVoltage = 26.3.SI (Of Volt)
+        Dim list As List(Of IElectricalConsumer) = New List(Of IElectricalConsumer)()
+        list.add(New ElectricalConsumer(False, "Doors", "Doors per vehicle", 3.0.SI (Of Ampere), 0.096339,
+                                        _powernetVoltage, 3, ""))
+        list.add(New ElectricalConsumer(True, "Veh Electronics &Engine", "Controllers,Valves etc",
+                                        25.0.SI (Of Ampere), 1.0, _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio City", 2.0.SI (Of Ampere), 0.8,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio Intercity", 5.0.SI (Of Ampere),
+                                        0.8, _powernetVoltage, 0, ""))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio/Audio Tourism",
+                                        9.0.SI (Of Ampere), 0.8,
+                                        _powernetVoltage, 0, ""))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Fridge", 4.0.SI (Of Ampere), 0.5,
+                                        _powernetVoltage, 0, ""))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Kitchen Standard",
+                                        67.0.SI (Of Ampere), 0.05, _powernetVoltage, 0, ""))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment",
+                                        "Interior lights City/ Intercity + Doorlights [Should be 1/m]",
+                                        1.0.SI (Of Ampere), 0.7,
+                                        _powernetVoltage, 12, "1 Per metre length of bus"))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment",
+                                        "LED Interior lights ceiling city/Intercity + door [Should be 1/m]",
+                                        0.6.SI (Of Ampere), 0.7,
+                                        _powernetVoltage, 0, "1 Per metre length of bus"))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights Tourism + reading [1/m]",
+                                        1.1.SI (Of Ampere), 0.7, _powernetVoltage, 0, "1 Per metre length of bus"))
+        list.add(New ElectricalConsumer(False, "Vehicle basic equipment",
+                                        "LED Interior lights ceiling Tourism + LED reading [Should be 1/m]",
+                                        0.66.SI (Of Ampere), 0.7,
+                                        _powernetVoltage, 0, "1 Per metre length of bus"))
+        list.add(New ElectricalConsumer(False, "Customer Specific Equipment", "External Displays Font/Side/Rear",
+                                        2.65017667844523.SI (Of Ampere), 1.0, _powernetVoltage, 4, ""))
+        list.add(New ElectricalConsumer(False, "Customer Specific Equipment",
+                                        "Internal display per unit ( front side rear)",
+                                        1.06007067137809.SI (Of Ampere), 1.0, _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Customer Specific Equipment",
+                                        "CityBus Ref EBSF Table4 Devices ITS No Displays", 9.3.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Lights", "Exterior Lights BULB", 7.4.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Lights", "Day running lights LED bonus", - 0.723.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Lights", "Antifog rear lights LED bonus", - 0.17.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Lights", "Position lights LED bonus", - 1.2.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Lights", "Direction lights LED bonus", - 0.3.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
+        list.add(New ElectricalConsumer(False, "Lights", "Brake Lights LED bonus", - 1.2.SI (Of Ampere), 1.0,
+                                        _powernetVoltage, 1, ""))
 
-            Return New ElectricalConsumerList(list)
-        End function
+        Return New ElectricalConsumerList(list)
+    End function
 
     Public Shared Function GetDefaultVehicleData(optional vehicleWeight As Kilogram = Nothing) as VehicleData
-        Return  New VehicleData With {
-            .CurbWeight = If(vehicleWeight, 0.si(of Kilogram)),
+        Return New VehicleData With {
+            .CurbWeight = If(vehicleWeight, 0.si (of Kilogram)),
             .Length = 10.655.SI (Of Meter)(),
             .Width = 2.55.SI (Of Meter)(),
             .Height = 2.275.SI (of Meter)(),
@@ -81,16 +80,44 @@ Public Class Utils
             }
     End Function
 
-    public Shared Function GetAuxTestConfig() as IAuxiliaryConfig
-        
+    public shared Function CreatePneumaticAuxConfig(retarder As boolean) As IPneumaticsConsumersDemand
+
+        return new PneumaticsConsumersDemand() with {
+            .AdBlueInjection = Constants.BusAuxiliaries.PneumaticConsumersDemands.AdBlueInjection,
+            .AirControlledSuspension =
+                Constants.BusAuxiliaries.PneumaticConsumersDemands.AirControlledSuspension,
+            .Braking = If (retarder, Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingNoRetarder,
+                     Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingWithRetarder),
+            .BreakingWithKneeling =
+                Constants.BusAuxiliaries.PneumaticConsumersDemands.BreakingAndKneeling,
+            .DeadVolBlowOuts =
+                Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolBlowOuts,
+            .DeadVolume = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolume,
+            .NonSmartRegenFractionTotalAirDemand =
+                Constants.BusAuxiliaries.PneumaticConsumersDemands.NonSmartRegenFractionTotalAirDemand,
+            .SmartRegenFractionTotalAirDemand =
+                Constants.BusAuxiliaries.PneumaticConsumersDemands.SmartRegenFractionTotalAirDemand,
+            .OverrunUtilisationForCompressionFraction =
+                Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction,
+            .DoorOpening = Constants.BusAuxiliaries.PneumaticConsumersDemands.DoorOpening,
+            .StopBrakeActuation = Constants.BusAuxiliaries.PneumaticConsumersDemands.StopBrakeActuation
+            }
+    End function
+
+    public Shared Function GetAuxTestConfig(Optional retarder As boolean = true) as IAuxiliaryConfig
+
         Dim signals = New Signals()
         signals.EngineSpeed = 2000.RPMtoRad()
 
         dim vehicleData = GetDefaultVehicleData()
-        Dim heatingFuel As FuelData.Entry = New FuelData.Entry(FuelType.DieselCI, Nothing, Nothing,1, 11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast(Of JoulePerKilogramm), 11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast(Of JoulePerKilogramm))
+        Dim heatingFuel As FuelData.Entry = New FuelData.Entry(FuelType.DieselCI, Nothing, Nothing, 1,
+                                                               11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast _
+                                                                  (Of JoulePerKilogramm),
+                                                               11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast _
+                                                                  (Of JoulePerKilogramm))
 
         Dim retval = New AuxiliaryConfig() With {
-            .ElectricalUserInputsConfig = New ElectricsUserInputsConfig() With {
+                .ElectricalUserInputsConfig = New ElectricsUserInputsConfig() With {
                 .ElectricalConsumers = GetElectricConsumers(),
                 .ResultCardIdle = New ResultCard(New List(Of SmartResult)()),
                 .ResultCardTraction = New ResultCard(New List(Of SmartResult)()),
@@ -99,40 +126,42 @@ Public Class Utils
                 .DoorActuationTimeSecond = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond,
                 .PowerNetVoltage = Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
                 },
-            .PneumaticAuxillariesConfig = DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig,
-            .PneumaticUserInputsConfig = New PneumaticUserInputsConfig() With {
+                .PneumaticAuxillariesConfig = CreatePneumaticAuxConfig(retarder),
+                .PneumaticUserInputsConfig = New PneumaticUserInputsConfig() With {
                 .CompressorGearRatio = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearRatio,
                 .CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency,
                 .AdBlueDosing = ConsumerTechnology.Pneumatic,
                 .AirSuspensionControl = ConsumerTechnology.Mechanically,
                 .Doors = ConsumerTechnology.Pneumatic,
-                .KneelingHeightMillimeters = 70.SI(Unit.SI.Milli.Meter).Cast(Of Meter), 
-                .RetarderBrake = True,
+                .KneelingHeightMillimeters = 70.SI(Unit.SI.Milli.Meter).Cast (Of Meter), 
                 .SmartAirCompression = False,
                 .SmartRegeneration = False  
                 },
-            .SSMInputs = New SSMInputs(vehicleData, Nothing, heatingFuel) With {
+                .SSMInputs = New SSMInputs(vehicleData, Nothing, heatingFuel) With {
                 .Technologies = DeclarationData.BusAuxiliaries.SSMTechnologyList,
-                .DefaultConditions = New EnvironmentalConditionMapEntry(25.0.DegCelsiusToKelvin(), 400.SI(Of WattPerSquareMeter), 1.0),
+                .DefaultConditions =
+                New EnvironmentalConditionMapEntry(25.0.DegCelsiusToKelvin(), 400.SI (Of WattPerSquareMeter), 1.0),
                 .EnvironmentalConditionsMap = DeclarationData.BusAuxiliaries.DefaultEnvironmentalConditions,
                 .HeatingBoundaryTemperature = 18.0.DegCelsiusToKelvin(),
                 .CoolingBoundaryTemperature = 23.0.DegCelsiusToKelvin(),
-                .HighVentilation = 20.SI(Unit.SI.Per.Hour).Cast(Of PerSecond),
-                .LowVentilation = 7.SI(Unit.SI.Per.Hour).Cast(Of PerSecond),
-                .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast(Of JoulePerCubicMeter),
+                .HighVentilation = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
+                .LowVentilation = 7.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
+                .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast (Of JoulePerCubicMeter),
                 .CompressorType = ACCompressorType.TwoStage, 
-                .CompressorCapacity = 18.si(Unit.SI.kilo.watt).Cast(of Watt),
+                .CompressorCapacity = 18.si(Unit.SI.kilo.watt).Cast (of Watt),
                 .AuxHeaterEfficiency =  0.84,
-                .FuelFiredHeaterPower = 30.SI(Unit.SI.kilo.watt).Cast(Of Watt),
+                .FuelFiredHeaterPower = 30.SI(Unit.SI.kilo.watt).Cast (Of Watt),
                 .FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant,
-                .CoolantHeatTransferredToAirCabinHeater =  Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater,
-                .MaxPossibleBenefitFromTechnologyList =  Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList
-            },
-            .VehicleData = vehicleData,
-            .Signals = signals,
-            .ActuationsMap = ActuationsMapReader.Read("TestFiles/testPneumaticActuationsMap_GOODMAP.apac"),
-            .Cycle = "TESTCYCLE"
-            }
+                .CoolantHeatTransferredToAirCabinHeater =
+                Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater,
+                .MaxPossibleBenefitFromTechnologyList =
+                Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList
+                },
+                .VehicleData = vehicleData,
+                .Signals = signals,
+                .ActuationsMap = ActuationsMapReader.Read("TestFiles/testPneumaticActuationsMap_GOODMAP.apac"),
+                .Cycle = "TESTCYCLE"
+                }
         Return retVal
     End Function
 End Class
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs
index c7e9627280..d887d5af8d 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs
@@ -18,7 +18,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
 
 		// Pneumatics
 		IPneumaticUserInputsConfig PneumaticUserInputsConfig { get;  }
-		IPneumaticsAuxilliariesConfig PneumaticAuxillariesConfig { get;  }
+		IPneumaticsConsumersDemand PneumaticAuxillariesConfig { get;  }
 
 		ISSMInputs SSMInputs { get; }
 
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs
index a017978abc..62c73bf2f1 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs
@@ -9,10 +9,9 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
 		ICompressorMap CompressorMap { get;  }
 		double CompressorGearEfficiency { get;  }
 		double CompressorGearRatio { get;  }
-		//Dictionary<ActuationsKey, int> ActuationsMap { get;  }
 		bool SmartAirCompression { get;  }
 		bool SmartRegeneration { get;  }
-		bool RetarderBrake { get;  }
+		//bool RetarderBrake { get;  }
 		Meter KneelingHeightMillimeters { get;  }
 		ConsumerTechnology AirSuspensionControl { get;  } // mechanical or electrical
 		ConsumerTechnology AdBlueDosing { get;  } // pnmeumatic or electric
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs
deleted file mode 100644
index 868d93643a..0000000000
--- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using TUGraz.VectoCommon.Utils;
-
-namespace TUGraz.VectoCommon.BusAuxiliaries {
-	public interface IPneumaticsAuxilliariesConfig
-	{
-		double OverrunUtilisationForCompressionFraction { get;  }
-		NormLiterPerKilogram BrakingWithRetarderNIperKG { get;  }
-		NormLiterPerKilogram BrakingNoRetarderNIperKG { get;  }
-		NormLiterPerKilogramMeter BreakingPerKneelingNIperKGinMM { get;  }
-		NormLiter PerDoorOpeningNI { get;  }
-		NormLiterPerKilogram PerStopBrakeActuationNIperKG { get;  }
-		NormLiterPerSecond AirControlledSuspensionNIperMinute { get;  }
-		NormLiterPerSecond AdBlueNIperMinute { get;  }
-		double NonSmartRegenFractionTotalAirDemand { get;  }
-		double SmartRegenFractionTotalAirDemand { get;  }
-		NormLiter DeadVolumeLitres { get;  }
-		// Nl / Nl / h => 1/h
-		PerSecond DeadVolBlowOutsPerLitresperHour { get;  }
-	}
-}
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs
new file mode 100644
index 0000000000..5c7ad100c8
--- /dev/null
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs
@@ -0,0 +1,20 @@
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCommon.BusAuxiliaries {
+	public interface IPneumaticsConsumersDemand
+	{
+		double OverrunUtilisationForCompressionFraction { get;  }
+		//NormLiterPerKilogram BrakingWithRetarderNIperKG { get;  }
+		NormLiterPerKilogram Braking { get;  }
+		NormLiterPerKilogramMeter BreakingWithKneeling { get;  }
+		NormLiter DoorOpening { get;  }
+		NormLiterPerKilogram StopBrakeActuation { get;  }
+		NormLiterPerSecond AirControlledSuspension { get;  }
+		NormLiterPerSecond AdBlueInjection { get;  }
+		double NonSmartRegenFractionTotalAirDemand { get;  }
+		double SmartRegenFractionTotalAirDemand { get;  }
+		NormLiter DeadVolume { get;  }
+		// Nl / Nl / h => 1/h
+		PerSecond DeadVolBlowOuts { get;  }
+	}
+}
diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj
index a45bad7a10..707db66816 100644
--- a/VectoCommon/VectoCommon/VectoCommon.csproj
+++ b/VectoCommon/VectoCommon/VectoCommon.csproj
@@ -67,7 +67,7 @@
     <Compile Include="BusAuxiliaries\IHVACConstants.cs" />
     <Compile Include="BusAuxiliaries\IHVACUserInputsConfig.cs" />
     <Compile Include="BusAuxiliaries\IActuationsMap.cs" />
-    <Compile Include="BusAuxiliaries\IPneumaticsAuxilliariesConfig.cs" />
+    <Compile Include="BusAuxiliaries\IPneumaticsConsumersDemand.cs" />
     <Compile Include="BusAuxiliaries\IPneumaticUserInputsConfig.cs" />
     <Compile Include="BusAuxiliaries\IResultCard.cs" />
     <Compile Include="BusAuxiliaries\ISignals.cs" />
diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs
index 221c32b5de..1640f234b0 100644
--- a/VectoCore/VectoCore/Configuration/Constants.cs
+++ b/VectoCore/VectoCore/Configuration/Constants.cs
@@ -138,33 +138,34 @@ namespace TUGraz.VectoCore.Configuration
 				public static readonly Second DoorActuationTimeSecond = 4.SI<Second>();
 			}
 
-			public static class PneumaticAuxDemands
+			public static class PneumaticConsumersDemands
 			{
-				public static readonly NormLiterPerSecond AdBlueNIperMinute =
+				public static readonly NormLiterPerSecond AdBlueInjection =
 					21.25.SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>();
 
-				public static readonly NormLiterPerSecond AirControlledSuspensionNIperMinute =
+				public static readonly NormLiterPerSecond AirControlledSuspension =
 					15.SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>();
 
-				public static readonly NormLiterPerKilogram BrakingNoRetarderNIperKG =
+				public static readonly NormLiterPerKilogram BrakingNoRetarder =
 					0.00081.SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
 
-				public static readonly NormLiterPerKilogram BrakingWithRetarderNIperKG =
+				public static readonly NormLiterPerKilogram BrakingWithRetarder =
 					0.0006.SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
 
-				public static readonly NormLiterPerKilogramMeter BreakingPerKneelingNIperKGinMM =
+				public static readonly NormLiterPerKilogramMeter BreakingAndKneeling =
 					0.000066.SI(Unit.SI.Liter.Per.Kilo.Gramm.Milli.Meter).Cast<NormLiterPerKilogramMeter>();
 
-				public static readonly PerSecond DeadVolBlowOutsPerLitresperHour = 24.SI(Unit.SI.Per.Hour).Cast<PerSecond>();
-				public static readonly NormLiter DeadVolumeLitres = 30.SI<NormLiter>();
+				// Nl (blowout) / Nl (DeadVolume) / h -> 1/s
+				public static readonly PerSecond DeadVolBlowOuts = 24.SI(Unit.SI.Per.Hour).Cast<PerSecond>();
+				public static readonly NormLiter DeadVolume = 30.SI<NormLiter>();
 				public static readonly double NonSmartRegenFractionTotalAirDemand = 0.26;
+				public static readonly double SmartRegenFractionTotalAirDemand = 0.12;
 				public static readonly double OverrunUtilisationForCompressionFraction = 0.97;
-				public static readonly NormLiter PerDoorOpeningNI = 12.7.SI<NormLiter>();
+				public static readonly NormLiter DoorOpening = 12.7.SI<NormLiter>();
 
-				public static readonly NormLiterPerKilogram PerStopBrakeActuationNIperKG =
+				public static readonly NormLiterPerKilogram StopBrakeActuation =
 					0.00064.SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
 
-				public static readonly double SmartRegenFractionTotalAirDemand = 0.12;
 			}
 
 			public static class PneumaticUserConfig
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
index 16a878d433..ee4ee701b5 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
@@ -108,27 +108,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			return electricalUserInputsConfig;
 		}
 
-		private static IPneumaticsAuxilliariesConfig LoadPneumaticsAuxConfig(JObject paData, string baseDir)
+		private static IPneumaticsConsumersDemand LoadPneumaticsAuxConfig(JObject paData, string baseDir)
 		{
-			var pneumaticAuxillariesConfig = new PneumaticsAuxilliariesConfig();
-			pneumaticAuxillariesConfig.AdBlueNIperMinute =
+			var pneumaticAuxillariesConfig = new PneumaticsConsumersDemand();
+			pneumaticAuxillariesConfig.AdBlueInjection =
 				paData.GetEx<double>("AdBlueNIperMinute").SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>();
-			pneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute =
+			pneumaticAuxillariesConfig.AirControlledSuspension =
 				paData.GetEx<double>("AirControlledSuspensionNIperMinute").SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>();
-			pneumaticAuxillariesConfig.BrakingNoRetarderNIperKG = paData
-				.GetEx<double>("BrakingNoRetarderNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
-			pneumaticAuxillariesConfig.BrakingWithRetarderNIperKG = paData
-				.GetEx<double>("BrakingWithRetarderNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
-			pneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM = paData
+			pneumaticAuxillariesConfig.Braking = paData
+				.GetEx<double>("BrakingNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
+			//pneumaticAuxillariesConfig.BrakingWithRetarderNIperKG = paData
+				//.GetEx<double>("BrakingWithRetarderNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
+			pneumaticAuxillariesConfig.BreakingWithKneeling = paData
 				.GetEx<double>("BreakingPerKneelingNIperKGinMM").SI(Unit.SI.Liter.Per.Kilo.Gramm.Milli.Meter)
 				.Cast<NormLiterPerKilogramMeter>();
-			pneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour =
+			pneumaticAuxillariesConfig.DeadVolBlowOuts =
 				paData.GetEx<double>("DeadVolBlowOutsPerLitresperHour").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
-			pneumaticAuxillariesConfig.DeadVolumeLitres = paData.GetEx<double>("DeadVolumeLitres").SI<NormLiter>();
+			pneumaticAuxillariesConfig.DeadVolume = paData.GetEx<double>("DeadVolumeLitres").SI<NormLiter>();
 			pneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand =
 				paData.GetEx<double>("NonSmartRegenFractionTotalAirDemand");
-			pneumaticAuxillariesConfig.PerDoorOpeningNI = paData.GetEx<double>("PerDoorOpeningNI").SI<NormLiter>();
-			pneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG = paData
+			pneumaticAuxillariesConfig.DoorOpening = paData.GetEx<double>("PerDoorOpeningNI").SI<NormLiter>();
+			pneumaticAuxillariesConfig.StopBrakeActuation = paData
 				.GetEx<double>("PerStopBrakeActuationNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>();
 			pneumaticAuxillariesConfig.SmartRegenFractionTotalAirDemand =
 				paData.GetEx<double>("SmartRegenFractionTotalAirDemand");
@@ -153,7 +153,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			pneumaticUserInputsConfig.Doors = puData.GetEx<string>("Doors").ParseEnum<ConsumerTechnology>();
 			pneumaticUserInputsConfig.KneelingHeightMillimeters =
 				puData.GetEx<double>("KneelingHeightMillimeters").SI(Unit.SI.Milli.Meter).Cast<Meter>();
-			pneumaticUserInputsConfig.RetarderBrake = puData.GetEx<bool>("RetarderBrake");
+			//pneumaticUserInputsConfig.RetarderBrake = puData.GetEx<bool>("RetarderBrake");
 			pneumaticUserInputsConfig.SmartAirCompression = puData.GetEx<bool>("SmartAirCompression");
 			pneumaticUserInputsConfig.SmartRegeneration = puData.GetEx<bool>("SmartRegeneration");
 			return pneumaticUserInputsConfig;
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index 9469d38e77..06754a3ee9 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -70,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				MinSpeed = DeclarationData.Driver.OverSpeed.MinSpeed,
 				OverSpeed = DeclarationData.Driver.OverSpeed.AllowedOverSpeed,
 			};
-			
+
 			var retVal = new DriverData {
 				LookAheadCoasting = lookAheadData,
 				OverSpeed = overspeedData,
@@ -80,8 +81,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 					UtilityFactor = DeclarationData.Driver.EngineStopStart.UtilityFactor,
 				},
 				EcoRoll = new DriverData.EcoRollData() {
-					UnderspeedThreshold =  DeclarationData.Driver.EcoRoll.UnderspeedThreshold,
-					MinSpeed =  DeclarationData.Driver.EcoRoll.MinSpeed,
+					UnderspeedThreshold = DeclarationData.Driver.EcoRoll.UnderspeedThreshold,
+					MinSpeed = DeclarationData.Driver.EcoRoll.MinSpeed,
 					ActivationPhaseDuration = DeclarationData.Driver.EcoRoll.ActivationDelay,
 					AccelerationLowerLimit = DeclarationData.Driver.EcoRoll.AccelerationLowerLimit,
 					AccelerationUpperLimit = DeclarationData.Driver.EcoRoll.AccelerationUpperLimit,
@@ -124,11 +125,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 
 			retVal.VocationalVehicle = data.VocationalVehicle;
 			retVal.ADAS = CreateADAS(data.ADAS);
+
 			// eco-roll is not allowed for MT transmissions!
 			if (retVal.ADAS.EcoRoll != EcoRollType.None && data.Components.GearboxInputData.Type == GearboxType.MT) {
 				retVal.ADAS.EcoRoll = EcoRollType.None;
 			}
-			if (retVal.ADAS.EcoRoll == EcoRollType.WithEngineStop && data.Components.GearboxInputData.Type.AutomaticTransmission()) {
+			if (retVal.ADAS.EcoRoll == EcoRollType.WithEngineStop &&
+				data.Components.GearboxInputData.Type.AutomaticTransmission()) {
 				retVal.ADAS.EcoRoll = EcoRollType.WithoutEngineStop;
 			}
 
@@ -174,7 +177,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			return retVal;
 		}
 
-		
 
 		private VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data)
 		{
@@ -191,7 +193,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 		}
 
 
-		internal CombustionEngineData CreateEngineData(IVehicleDeclarationInputData vehicle, IEngineModeDeclarationInputData mode, Mission mission)
+		internal CombustionEngineData CreateEngineData(
+			IVehicleDeclarationInputData vehicle, IEngineModeDeclarationInputData mode, Mission mission)
 		{
 			var engine = vehicle.Components.EngineInputData;
 			var gearbox = vehicle.Components.GearboxInputData;
@@ -203,22 +206,21 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			var retVal = SetCommonCombustionEngineData(engine, vehicle.TankSystem);
 			retVal.IdleSpeed = VectoMath.Max(mode.IdleSpeed, vehicle.EngineIdleSpeed);
 
-			
-
 			retVal.Fuels = new List<CombustionEngineFuelData>();
 			foreach (var fuel in mode.Fuels) {
-				retVal.Fuels.Add(new CombustionEngineFuelData() {
-					WHTCUrban = fuel.WHTCUrban,
-					WHTCRural = fuel.WHTCRural,
-					WHTCMotorway = fuel.WHTCMotorway,
-					ColdHotCorrectionFactor = fuel.ColdHotBalancingFactor,
-					CorrectionFactorRegPer = fuel.CorrectionFactorRegPer,
-					FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, vehicle.TankSystem),
-					ConsumptionMap = FuelConsumptionMapReader.Create(fuel.FuelConsumptionMap),
-					FuelConsumptionCorrectionFactor = DeclarationData.WHTCCorrection.Lookup(
-					mission.MissionType.GetNonEMSMissionType(), fuel.WHTCRural, fuel.WHTCUrban,
-					fuel.WHTCMotorway) * fuel.ColdHotBalancingFactor * fuel.CorrectionFactorRegPer,
-			});
+				retVal.Fuels.Add(
+					new CombustionEngineFuelData() {
+						WHTCUrban = fuel.WHTCUrban,
+						WHTCRural = fuel.WHTCRural,
+						WHTCMotorway = fuel.WHTCMotorway,
+						ColdHotCorrectionFactor = fuel.ColdHotBalancingFactor,
+						CorrectionFactorRegPer = fuel.CorrectionFactorRegPer,
+						FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, vehicle.TankSystem),
+						ConsumptionMap = FuelConsumptionMapReader.Create(fuel.FuelConsumptionMap),
+						FuelConsumptionCorrectionFactor = DeclarationData.WHTCCorrection.Lookup(
+															mission.MissionType.GetNonEMSMissionType(), fuel.WHTCRural, fuel.WHTCUrban,
+															fuel.WHTCMotorway) * fuel.ColdHotBalancingFactor * fuel.CorrectionFactorRegPer,
+					});
 			}
 
 			retVal.Inertia = DeclarationData.Engine.EngineInertia(retVal.Displacement, gearbox.Type);
@@ -240,8 +242,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			var whr = CreateWHRData(mode.WasteHeatRecoveryData);
 			if (whr != null) {
 				whr.WHRCorrectionFactor = DeclarationData.WHTCCorrection.Lookup(
-														mission.MissionType.GetNonEMSMissionType(), whr.CFRural, whr.CFUrban,
-														whr.CFMotorway) * whr.CFColdHot * whr.CFRegPer;
+											mission.MissionType.GetNonEMSMissionType(), whr.CFRural, whr.CFUrban,
+											whr.CFMotorway) * whr.CFColdHot * whr.CFRegPer;
 			}
 			retVal.WHRData = whr;
 
@@ -620,6 +622,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				HighVentilation = Constants.BusAuxiliaries.SteadyStateModel.HighVentilation,
 				LowVentilation = Constants.BusAuxiliaries.SteadyStateModel.LowVentilation,
 				SpecificVentilationPower = Constants.BusAuxiliaries.SteadyStateModel.SpecificVentilationPower,
+
 				// TODO! MQ 2019-19-29 Compressor Type and CompressorCapacity from input data?
 				CompressorType = ACCompressorType.TwoStage, // "2-stage",
 				CompressorCapacity = 18.SI(Unit.SI.Kilo.Watt).Cast<Watt>(),
@@ -629,14 +632,34 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant,
 				CoolantHeatTransferredToAirCabinHeater = Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater,
 				GFactor = Constants.BusAuxiliaries.SteadyStateModel.GFactor,
-				VentilationOnDuringHeating =  true,
+				VentilationOnDuringHeating = true,
 				VentilationWhenBothHeatingAndACInactive = true,
 				VentilationDuringAC = true,
 				VentilationDuringHeating = VentilationLevel.High,
 				VentilationDuringCooling = VentilationLevel.High,
 				VentilationFlowSettingWhenHeatingAndACInactive = VentilationLevel.High,
-				MaxPossibleBenefitFromTechnologyList = Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList,
-		};
+				MaxPossibleBenefitFromTechnologyList =
+					Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList,
+			};
+		}
+
+		public IPneumaticsConsumersDemand CreatePneumaticAuxConfig(RetarderType retarderType)
+		{
+			return new PneumaticsConsumersDemand() {
+				AdBlueInjection = Constants.BusAuxiliaries.PneumaticConsumersDemands.AdBlueInjection,
+				AirControlledSuspension = Constants.BusAuxiliaries.PneumaticConsumersDemands.AirControlledSuspension,
+				Braking = retarderType == RetarderType.None ?
+					Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingNoRetarder : 
+					Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingWithRetarder,
+				BreakingWithKneeling = Constants.BusAuxiliaries.PneumaticConsumersDemands.BreakingAndKneeling,
+				DeadVolBlowOuts = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolBlowOuts,
+				DeadVolume = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolume,
+				NonSmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.NonSmartRegenFractionTotalAirDemand,
+				SmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.SmartRegenFractionTotalAirDemand,
+				OverrunUtilisationForCompressionFraction = Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction,
+				DoorOpening = Constants.BusAuxiliaries.PneumaticConsumersDemands.DoorOpening,
+				StopBrakeActuation = Constants.BusAuxiliaries.PneumaticConsumersDemands.StopBrakeActuation,
+			};
 		}
 	}
 }
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs
index 0366d4a8e7..696df4a5cf 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs
@@ -24,7 +24,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 		// Pneumatics
 		public IPneumaticUserInputsConfig PneumaticUserInputsConfig { get; internal set; }
 
-		public IPneumaticsAuxilliariesConfig PneumaticAuxillariesConfig { get; internal set; }
+		public IPneumaticsConsumersDemand PneumaticAuxillariesConfig { get; internal set; }
 
 		public ISSMInputs SSMInputs { get; internal set; }
 
@@ -113,40 +113,40 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 
 		private bool ComparePneumaticAuxiliariesConfig(IAuxiliaryConfig other)
 		{
-			if (PneumaticAuxillariesConfig.AdBlueNIperMinute != other.PneumaticAuxillariesConfig.AdBlueNIperMinute) {
+			if (PneumaticAuxillariesConfig.AdBlueInjection != other.PneumaticAuxillariesConfig.AdBlueInjection) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute !=
-				other.PneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute) {
+			if (PneumaticAuxillariesConfig.AirControlledSuspension !=
+				other.PneumaticAuxillariesConfig.AirControlledSuspension) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.BrakingNoRetarderNIperKG != other.PneumaticAuxillariesConfig.BrakingNoRetarderNIperKG) {
+			if (PneumaticAuxillariesConfig.Braking != other.PneumaticAuxillariesConfig.Braking) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG !=
-				other.PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG) {
-				return false;
-			}
-			if (PneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM !=
-				other.PneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM) {
+			//if (PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG !=
+			//	other.PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG) {
+			//	return false;
+			//}
+			if (PneumaticAuxillariesConfig.BreakingWithKneeling !=
+				other.PneumaticAuxillariesConfig.BreakingWithKneeling) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour !=
-				other.PneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour) {
+			if (PneumaticAuxillariesConfig.DeadVolBlowOuts !=
+				other.PneumaticAuxillariesConfig.DeadVolBlowOuts) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.DeadVolumeLitres != other.PneumaticAuxillariesConfig.DeadVolumeLitres) {
+			if (PneumaticAuxillariesConfig.DeadVolume != other.PneumaticAuxillariesConfig.DeadVolume) {
 				return false;
 			}
 			if (PneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand !=
 				other.PneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.PerDoorOpeningNI != other.PneumaticAuxillariesConfig.PerDoorOpeningNI) {
+			if (PneumaticAuxillariesConfig.DoorOpening != other.PneumaticAuxillariesConfig.DoorOpening) {
 				return false;
 			}
-			if (PneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG !=
-				other.PneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG) {
+			if (PneumaticAuxillariesConfig.StopBrakeActuation !=
+				other.PneumaticAuxillariesConfig.StopBrakeActuation) {
 				return false;
 			}
 			if (PneumaticAuxillariesConfig.SmartRegenFractionTotalAirDemand !=
@@ -165,26 +165,36 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 		{
 			//if (PneumaticUserInputsConfig.ActuationsMap != other.PneumaticUserInputsConfig.ActuationsMap)
 			//	return false;
-			if (PneumaticUserInputsConfig.AdBlueDosing != other.PneumaticUserInputsConfig.AdBlueDosing)
+			if (PneumaticUserInputsConfig.AdBlueDosing != other.PneumaticUserInputsConfig.AdBlueDosing) {
 				return false;
-			if (PneumaticUserInputsConfig.AirSuspensionControl != other.PneumaticUserInputsConfig.AirSuspensionControl)
-				return false;
-			if (PneumaticUserInputsConfig.CompressorGearEfficiency != other.PneumaticUserInputsConfig.CompressorGearEfficiency)
+			}
+			if (PneumaticUserInputsConfig.AirSuspensionControl != other.PneumaticUserInputsConfig.AirSuspensionControl) {
 				return false;
-			if (PneumaticUserInputsConfig.CompressorGearRatio != other.PneumaticUserInputsConfig.CompressorGearRatio)
+			}
+			if (PneumaticUserInputsConfig.CompressorGearEfficiency != other.PneumaticUserInputsConfig.CompressorGearEfficiency) {
 				return false;
-			if (PneumaticUserInputsConfig.CompressorMap != other.PneumaticUserInputsConfig.CompressorMap)
+			}
+			if (PneumaticUserInputsConfig.CompressorGearRatio != other.PneumaticUserInputsConfig.CompressorGearRatio) {
 				return false;
-			if (PneumaticUserInputsConfig.Doors != other.PneumaticUserInputsConfig.Doors)
+			}
+			if (PneumaticUserInputsConfig.CompressorMap != other.PneumaticUserInputsConfig.CompressorMap) {
 				return false;
-			if (PneumaticUserInputsConfig.KneelingHeightMillimeters != other.PneumaticUserInputsConfig.KneelingHeightMillimeters)
+			}
+			if (PneumaticUserInputsConfig.Doors != other.PneumaticUserInputsConfig.Doors) {
 				return false;
-			if (PneumaticUserInputsConfig.RetarderBrake != other.PneumaticUserInputsConfig.RetarderBrake)
+			}
+			if (PneumaticUserInputsConfig.KneelingHeightMillimeters != other.PneumaticUserInputsConfig.KneelingHeightMillimeters) {
 				return false;
-			if (PneumaticUserInputsConfig.SmartAirCompression != other.PneumaticUserInputsConfig.SmartAirCompression)
+			}
+
+			//if (PneumaticUserInputsConfig.RetarderBrake != other.PneumaticUserInputsConfig.RetarderBrake)
+			//	return false;
+			if (PneumaticUserInputsConfig.SmartAirCompression != other.PneumaticUserInputsConfig.SmartAirCompression) {
 				return false;
-			if (PneumaticUserInputsConfig.SmartRegeneration != other.PneumaticUserInputsConfig.SmartRegeneration)
+			}
+			if (PneumaticUserInputsConfig.SmartRegeneration != other.PneumaticUserInputsConfig.SmartRegeneration) {
 				return false;
+			}
 
 			return true;
 		}
@@ -192,12 +202,16 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 
 		public bool ConfigValuesAreTheSameAs(IAuxiliaryConfig other)
 		{
-			if (!CompareElectricalConfiguration(other))
+			if (!CompareElectricalConfiguration(other)) {
 				return false;
-			if (!ComparePneumaticAuxiliariesConfig(other))
+			}
+			if (!ComparePneumaticAuxiliariesConfig(other)) {
 				return false;
-			if (!ComparePneumaticUserConfig(other))
+			}
+			if (!ComparePneumaticUserConfig(other)) {
 				return false;
+			}
+
 			//if (!CompareHVACConfig(other))
 			//	return false;
 
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs
index c788f3c219..45cefda3c5 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs
@@ -375,8 +375,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 				var gen = ssmTOOL.SSMInputs;
 				var tl = ssmTOOL.TechList;
-				double result;
-
+				
 				// Dim TLR92 As Double =  tl.CValueVariation 'TECH LIST INPUT'!R92
 				// Dim C43 As Double   =  gen.BC_MaxPossibleBenefitFromTechnologyList
 				// Dim C53 As string   =  gen.AC_CompressorType
@@ -387,17 +386,13 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 				//			Math.Max(If(gen.AC_CompressorType.ToLower() = "mechanical", tl.CValueVariation, 0),
 				//					-gen.BC_MaxPossibleBenefitFromTechnologyList))
 
-				result = (gen.ACSystem.CompressorType.IsMechanical()
-							? tl.CValueVariation
-							: 0) > 0
-					? Math.Min(
-						gen.ACSystem.CompressorType.IsMechanical() ? tl.CValueVariation : 0,
-						gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList)
-					: Math.Max(
-						gen.ACSystem.CompressorType.IsMechanical() ? tl.CValueVariation : 0,
-						-gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList);
-
-				return result;
+				if (gen.ACSystem.CompressorType.IsElectrical()) {
+					return 0;
+				}
+
+				return tl.CValueVariation.LimitTo(
+					-gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList,
+					gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList);
 			}
 		}
 
@@ -408,23 +403,18 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 				var gen = ssmTOOL.SSMInputs;
 				var tl = ssmTOOL.TechList;
-				double result;
-
+				
 				// Dim TLR92 As Double =  tl.CValueVariation 'TECH LIST INPUT'!R92
 				// Dim C43 As Double   =  gen.BC_MaxPossibleBenefitFromTechnologyList
 				// Dim C53 As string   =  gen.AC_CompressorType
 
-				result = gen.ACSystem.CompressorType.IsMechanical()
-					? 0
-					: tl.CValueVariation > 0
-						? Math.Min(
-							gen.ACSystem.CompressorType.IsMechanical() ? 0 : tl.CValueVariation,
-							gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList)
-						: Math.Max(
-							gen.ACSystem.CompressorType.IsMechanical() ? 0 : tl.CValueVariation,
-							-gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList);
-
-				return result;
+				if (gen.ACSystem.CompressorType.IsMechanical()) {
+					return 0;
+				}
+
+				return tl.CValueVariation.LimitTo(
+					-gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList,
+					gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList);
 			}
 		}
 
@@ -523,55 +513,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 			sb.AppendLine(Run1.ToString());
 			sb.AppendLine(Run2.ToString());
 
-			//// Staging Calcs
-			//sb.AppendLine("Staging Base Values");
-			//sb.AppendLine("*******************");
-			//sb.AppendLine(
-			//	vbTab + vbTab + vbTab + "Mechanical" + vbTab + "Elec Cool/Heat" + vbTab + "Elec Vent" + vbTab +
-			//	"Fuel Fired Heating");
-
-			//sb.AppendLine(
-			//	string.Format(
-			//		"Heating   {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, BaseHeatingW_Mechanical.Value().ToString("0.00"),
-			//		BaseHeatingW_ElectricalCoolingHeating.Value().ToString("0.00"),
-			//		BaseHeatingW_ElectricalVentilation.Value().ToString("0.00"),
-			//		BaseHeatingW_FuelFiredHeating.Value().ToString("0.00")));
-			//sb.AppendLine(
-			//	string.Format(
-			//		"Cooling   {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, BaseCoolingW_Mechanical.Value().ToString("0.00"),
-			//		BaseCoolingW_ElectricalCoolingHeating.Value().ToString("0.00"),
-			//		BaseCoolingW_ElectricalVentilation.Value().ToString("0.00"),
-			//		BaseCoolingW_FuelFiredHeating.Value().ToString("0.00")));
-			//sb.AppendLine(
-			//	string.Format(
-			//		"Ventilate {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, BaseVentilationW_Mechanical.Value().ToString("0.00"),
-			//		BaseVentilationW_ElectricalCoolingHeating.Value().ToString("0.00"),
-			//		BaseVentilationW_ElectricalVentilation.Value().ToString("0.00"),
-			//		BaseVentilationW_FuelFiredHeating.Value().ToString("0.00")));
-
-			//sb.AppendLine("");
-			//sb.AppendLine("Staging Adjusted Values");
-			//sb.AppendLine("***********************");
-
-			//sb.AppendLine(
-			//	string.Format(
-			//		"Heating   {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, TechListAdjustedHeatingW_Mechanical.ToString("0.00"),
-			//		TechListAdjustedHeatingW_ElectricalCoolingHeating.ToString("0.00"),
-			//		TechListAdjustedHeatingW_ElectricalVentilation.ToString("0.00"),
-			//		TechListAdjustedHeatingW_FuelFiredHeating.ToString("0.00")));
-			//sb.AppendLine(
-			//	string.Format(
-			//		"Cooling   {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, TechListAdjustedCoolingW_Mechanical.ToString("0.00"),
-			//		TechListAdjustedCoolingW_ElectricalCoolingHeating.ToString("0.00"),
-			//		TechListAdjustedCoolingW_ElectricalVentilation.ToString("0.00"),
-			//		TechListAdjustedCoolingW_FuelFiredHeating.ToString("0.00")));
-			//sb.AppendLine(
-			//	string.Format(
-			//		"Ventilate {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, TechListAdjustedVentilationW_Mechanical.ToString("0.00"),
-			//		TechListAdjustedVentilationW_ElectricalCoolingHeating.ToString("0.00"),
-			//		TechListAdjustedVentilationW_ElectricalVentilation.ToString("0.00"),
-			//		TechListAdjustedVentilationW_FuelFiredHeating.ToString("0.00")));
-
+			
 			return sb.ToString();
 		}
 
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs
index f76f762ea4..177c98d589 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs
@@ -29,10 +29,10 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl
 		protected readonly IM6 M6;
 		protected readonly IM8 M8;
 		protected readonly IFuelConsumptionMap FMAP;
-		protected readonly IPneumaticsAuxilliariesConfig PSAC;
+		protected readonly IPneumaticsConsumersDemand PSAC;
 		protected readonly ISignals Signals;
 
-		public M09Impl(IM1_AverageHVACLoadDemand m1, IM4_AirCompressor m4, IM6 m6, IM8 m8, IFuelConsumptionMap fmap, IPneumaticsAuxilliariesConfig psac, ISignals signals)
+		public M09Impl(IM1_AverageHVACLoadDemand m1, IM4_AirCompressor m4, IM6 m6, IM8 m8, IFuelConsumptionMap fmap, IPneumaticsConsumersDemand psac, ISignals signals)
 		{
 			M1 = m1;
 			M4 = m4;
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs
index 99841a3316..2ae3b292be 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs
@@ -8,7 +8,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 	public class M03Impl : AbstractModule, IM3_AveragePneumaticLoadDemand
 	{
 		protected IPneumaticUserInputsConfig _pneumaticUserInputsConfig;
-		protected IPneumaticsAuxilliariesConfig _pneumaticAuxillariesConfig;
+		protected IPneumaticsConsumersDemand _pneumaticAuxillariesConfig;
 		protected IActuationsMap ActuationsMap;
 		protected ICompressorMap _pneumaticsCompressorFlowRateMap;
 		protected Kilogram _vehicleMassKG;
@@ -45,9 +45,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			//'* * Breaks * *
 			double numActuationsPerCycle = ActuationsMap.GetNumActuations(new ActuationsKey("Brakes", _cycleName));
 			//'=IF(K10 = "yes", IF(COUNTBLANK(F33), G33, F33), IF(COUNTBLANK(F34), G34, F34)) * K16
-			var airConsumptionPerActuation = (_pneumaticUserInputsConfig.RetarderBrake
-				? _pneumaticAuxillariesConfig.BrakingWithRetarderNIperKG
-				: _pneumaticAuxillariesConfig.BrakingNoRetarderNIperKG) * _vehicleMassKG;
+			var airConsumptionPerActuation =  _pneumaticAuxillariesConfig.Braking * _vehicleMassKG;
 			var breaks = numActuationsPerCycle * airConsumptionPerActuation ;
 
 			//'* * ParkBrakesBreakplus2Doors * *Park break +2 doors
@@ -56,14 +54,14 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			//'=SUM(IF(K14 = "electric", 0, IF(COUNTBLANK(F36), G36, F36)), PRODUCT(K16 * IF(COUNTBLANK(F37), G37, F37)))
 			airConsumptionPerActuation = _pneumaticUserInputsConfig.Doors == ConsumerTechnology.Electrically
 				? 0.SI<NormLiter>()
-				: _pneumaticAuxillariesConfig.PerDoorOpeningNI;
-			airConsumptionPerActuation += _pneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG * _vehicleMassKG;
+				: _pneumaticAuxillariesConfig.DoorOpening;
+			airConsumptionPerActuation += _pneumaticAuxillariesConfig.StopBrakeActuation * _vehicleMassKG;
 			var parkBrakesplus2Doors = (numActuationsPerCycle * airConsumptionPerActuation);
 
 			//'* * Kneeling * *
 			numActuationsPerCycle = ActuationsMap.GetNumActuations(new ActuationsKey("Kneeling", _cycleName));
 			//'=IF(COUNTBLANK(F35), G35, F35) * K11 * K16
-			airConsumptionPerActuation = _pneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM *
+			airConsumptionPerActuation = _pneumaticAuxillariesConfig.BreakingWithKneeling *
 										_pneumaticUserInputsConfig.KneelingHeightMillimeters * _vehicleMassKG;
 			var kneeling = (numActuationsPerCycle * airConsumptionPerActuation);
 
@@ -71,7 +69,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			//	'=IF(K13 = "electric", 0, G39 * F54) - Supplied Spreadsheet
 			var adBlue = _pneumaticUserInputsConfig.AdBlueDosing == ConsumerTechnology.Electrically
 				? 0.SI<NormLiter>()
-				: _pneumaticAuxillariesConfig.AdBlueNIperMinute * totalCycleTimeSeconds;
+				: _pneumaticAuxillariesConfig.AdBlueInjection * totalCycleTimeSeconds;
 
 			//'* * Regeneration * *
 			//	'=SUM(R6: R9) * IF(K9 = "yes", IF(COUNTBLANK(F41), G41, F41), IF(COUNTBLANK(F40), G40, F40)) - Supplied SpreadSheet
@@ -84,15 +82,15 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			//'* * DeadVolBlowOuts * *
 			//	'=IF(COUNTBLANK(F43), G43, F43) / (F54 / 60) - Supplied SpreadSheet
 			//numActuationsPerCycle =;
-			airConsumptionPerActuation = _pneumaticAuxillariesConfig.DeadVolumeLitres;
-			var deadVolBlowOuts = (airConsumptionPerActuation * _pneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour *
+			airConsumptionPerActuation = _pneumaticAuxillariesConfig.DeadVolume;
+			var deadVolBlowOuts = (airConsumptionPerActuation * _pneumaticAuxillariesConfig.DeadVolBlowOuts *
 								totalCycleTimeSeconds).Cast<NormLiter>();
 
 			//'* * AirSuspension * *
 			//	'=IF(K12 = "electrically", 0, G38 * F54) - Suplied Spreadsheet
 			var airSuspension = _pneumaticUserInputsConfig.AirSuspensionControl == ConsumerTechnology.Electrically
 				? 0.SI<NormLiter>()
-				: _pneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute * totalCycleTimeSeconds;
+				: _pneumaticAuxillariesConfig.AirControlledSuspension * totalCycleTimeSeconds;
 
 			//'* * Total Air Demand**
 			var totalAirDemand = breaks + parkBrakesplus2Doors + kneeling + adBlue + regeneration + deadVolBlowOuts +
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs
index 961db5b3c8..79721f4f80 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 		public ConsumerTechnology Doors { get; set; }
 		public Meter KneelingHeightMillimeters { get; set; }
 
-		public bool RetarderBrake { get; set; }
+		//public bool RetarderBrake { get; set; }
 		public bool SmartAirCompression { get; set; }
 		public bool SmartRegeneration { get; set; }
 	}
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsAuxilliariesConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsConsumersDemand.cs
similarity index 57%
rename from VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsAuxilliariesConfig.cs
rename to VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsConsumersDemand.cs
index b378d19b0e..b9f68b70ab 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsAuxilliariesConfig.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsConsumersDemand.cs
@@ -14,29 +14,28 @@ using TUGraz.VectoCommon.Utils;
 
 namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics
 {
-	public class PneumaticsAuxilliariesConfig : IPneumaticsAuxilliariesConfig
+	public class PneumaticsConsumersDemand : IPneumaticsConsumersDemand
 	{
-		public NormLiterPerSecond AdBlueNIperMinute { get; set; }
+		public NormLiterPerSecond AdBlueInjection { get; set; }
 
-		public NormLiterPerSecond AirControlledSuspensionNIperMinute { get; set; }
+		public NormLiterPerSecond AirControlledSuspension { get; set; }
 
-		public NormLiterPerKilogram BrakingNoRetarderNIperKG { get; set; }
+		public NormLiterPerKilogram Braking { get; set; }
 
-		public NormLiterPerKilogram BrakingWithRetarderNIperKG { get; set; }
+		public NormLiterPerKilogramMeter BreakingWithKneeling { get; set; }
 
-		public NormLiterPerKilogramMeter BreakingPerKneelingNIperKGinMM { get; set; }
+		// Nl/Nl/h => 1/s
+		public PerSecond DeadVolBlowOuts { get; set; }
 
-		public PerSecond DeadVolBlowOutsPerLitresperHour { get; set; }
-
-		public NormLiter DeadVolumeLitres { get; set; }
+		public NormLiter DeadVolume { get; set; }
 
 		public double NonSmartRegenFractionTotalAirDemand { get; set; }
 
 		public double OverrunUtilisationForCompressionFraction { get; set; }
 
-		public NormLiter PerDoorOpeningNI { get; set; }
+		public NormLiter DoorOpening { get; set; }
 
-		public NormLiterPerKilogram PerStopBrakeActuationNIperKG { get; set; }
+		public NormLiterPerKilogram StopBrakeActuation { get; set; }
 
 		public double SmartRegenFractionTotalAirDemand { get; set; }
 
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index ad5d2c4875..10e361fa39 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -176,26 +176,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 				}
 			}
 
-			public static IPneumaticsAuxilliariesConfig DefaultPneumaticAuxConfig
-			{
-				get {
-					return new PneumaticsAuxilliariesConfig() {
-						AdBlueNIperMinute = Constants.BusAuxiliaries.PneumaticAuxDemands.AdBlueNIperMinute,
-						AirControlledSuspensionNIperMinute = Constants.BusAuxiliaries.PneumaticAuxDemands.AirControlledSuspensionNIperMinute,
-						BrakingNoRetarderNIperKG = Constants.BusAuxiliaries.PneumaticAuxDemands.BrakingNoRetarderNIperKG,
-						BrakingWithRetarderNIperKG = Constants.BusAuxiliaries.PneumaticAuxDemands.BrakingWithRetarderNIperKG,
-						BreakingPerKneelingNIperKGinMM = Constants.BusAuxiliaries.PneumaticAuxDemands.BreakingPerKneelingNIperKGinMM,
-						DeadVolBlowOutsPerLitresperHour = Constants.BusAuxiliaries.PneumaticAuxDemands.DeadVolBlowOutsPerLitresperHour,
-						DeadVolumeLitres = Constants.BusAuxiliaries.PneumaticAuxDemands.DeadVolumeLitres,
-						NonSmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticAuxDemands.NonSmartRegenFractionTotalAirDemand,
-						SmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticAuxDemands.SmartRegenFractionTotalAirDemand,
-						OverrunUtilisationForCompressionFraction = Constants.BusAuxiliaries.PneumaticAuxDemands.OverrunUtilisationForCompressionFraction,
-						PerDoorOpeningNI = Constants.BusAuxiliaries.PneumaticAuxDemands.PerDoorOpeningNI,
-						PerStopBrakeActuationNIperKG = Constants.BusAuxiliaries.PneumaticAuxDemands.PerStopBrakeActuationNIperKG,
-					};
-				}
-			}
-
+			
 			//public static IPneumaticUserInputsConfig DefaultPneumaticUserConfig { get; }
 
 			public static IHVACUserInputsConfig DefaultHVACUserConfig { get; }
diff --git a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
index ce3bc606c8..b02ecf909c 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
@@ -144,27 +144,27 @@ namespace TUGraz.VectoCore.OutputData.FileIO
 			puData["CompressorMap"] = pneumaticUserCfg.CompressorMap == null ? "" : JSONFileWriter.GetRelativePath(pneumaticUserCfg.CompressorMap.Source, auxPath);
 			puData["Doors"] = pneumaticUserCfg.Doors;
 			puData["KneelingHeightMillimeters"] = pneumaticUserCfg.KneelingHeightMillimeters.ConvertToMilliMeter().Value;
-			puData["RetarderBrake"] = pneumaticUserCfg.RetarderBrake;
+			//puData["RetarderBrake"] = pneumaticUserCfg.RetarderBrake;
 			puData["SmartAirCompression"] = pneumaticUserCfg.SmartAirCompression;
 			puData["SmartRegeneration"] = pneumaticUserCfg.SmartRegeneration;
 
 			return puData;
 		}
 
-		protected static Dictionary<string, object> SavePneumaticAuxconfig(IPneumaticsAuxilliariesConfig pneumaticAuxCfg)
+		protected static Dictionary<string, object> SavePneumaticAuxconfig(IPneumaticsConsumersDemand pneumaticAuxCfg)
 		{
 			var paData = new Dictionary<string, object>();
 
-			paData["AdBlueNIperMinute"] = pneumaticAuxCfg.AdBlueNIperMinute.ConvertToNlPerMin().Value;
-			paData["AirControlledSuspensionNIperMinute"] = pneumaticAuxCfg.AirControlledSuspensionNIperMinute.ConvertToNlPerMin().Value;
-			paData["BrakingNoRetarderNIperKG"] = pneumaticAuxCfg.BrakingNoRetarderNIperKG.Value();
-			paData["BrakingWithRetarderNIperKG"] = pneumaticAuxCfg.BrakingWithRetarderNIperKG.Value();
-			paData["BreakingPerKneelingNIperKGinMM"] = pneumaticAuxCfg.BreakingPerKneelingNIperKGinMM.Value() / 1000;
-			paData["DeadVolBlowOutsPerLitresperHour"] = pneumaticAuxCfg.DeadVolBlowOutsPerLitresperHour.ConvertToPerHour().Value;
-			paData["DeadVolumeLitres"] = pneumaticAuxCfg.DeadVolumeLitres.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value;
+			paData["AdBlueNIperMinute"] = pneumaticAuxCfg.AdBlueInjection.ConvertToNlPerMin().Value;
+			paData["AirControlledSuspensionNIperMinute"] = pneumaticAuxCfg.AirControlledSuspension.ConvertToNlPerMin().Value;
+			paData["BrakingNIperKG"] = pneumaticAuxCfg.Braking.Value();
+			//paData["BrakingWithRetarderNIperKG"] = pneumaticAuxCfg.BrakingWithRetarderNIperKG.Value();
+			paData["BreakingPerKneelingNIperKGinMM"] = pneumaticAuxCfg.BreakingWithKneeling.Value() / 1000;
+			paData["DeadVolBlowOutsPerLitresperHour"] = pneumaticAuxCfg.DeadVolBlowOuts.ConvertToPerHour().Value;
+			paData["DeadVolumeLitres"] = pneumaticAuxCfg.DeadVolume.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value;
 			paData["NonSmartRegenFractionTotalAirDemand"] = pneumaticAuxCfg.NonSmartRegenFractionTotalAirDemand;
-			paData["PerDoorOpeningNI"] = pneumaticAuxCfg.PerDoorOpeningNI.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value;
-			paData["PerStopBrakeActuationNIperKG"] = pneumaticAuxCfg.PerStopBrakeActuationNIperKG.Value();
+			paData["PerDoorOpeningNI"] = pneumaticAuxCfg.DoorOpening.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value;
+			paData["PerStopBrakeActuationNIperKG"] = pneumaticAuxCfg.StopBrakeActuation.Value();
 			paData["SmartRegenFractionTotalAirDemand"] = pneumaticAuxCfg.SmartRegenFractionTotalAirDemand;
 			paData["OverrunUtilisationForCompressionFraction"] =
 				pneumaticAuxCfg.OverrunUtilisationForCompressionFraction;
diff --git a/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC b/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC
index dd5dd6987a..318d9a9de9 100644
--- a/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC
+++ b/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC
@@ -11,8 +11,8 @@ Park brake + 2 doors,Suburban,25
 Park brake + 2 doors,Interurban,9
 Park brake + 2 doors,Coach,6
 Park brake + 2 doors,UnknownCycleName,0
-Kneeling,Heavy urban,27
-Kneeling,Urban,25
+Kneeling,Heavy urban,68
+Kneeling,Urban,58
 Kneeling,Suburban,6
 Kneeling,Interurban,0
 Kneeling,Coach,0
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index a7f6ac5a32..14af693bdd 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -308,7 +308,7 @@
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\M03Impl.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\M04Impl.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\ActuationsMap.cs" />
-    <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\PneumaticsAuxilliariesConfig.cs" />
+    <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\PneumaticsConsumersDemand.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\PneumaticUserInputsConfig.cs" />
     <Compile Include="Models\BusAuxiliaries\Interfaces\DownstreamModules\Electrics\AltUserInput.cs" />
     <Compile Include="Models\BusAuxiliaries\Interfaces\DownstreamModules\Electrics\IAlternator.cs" />
-- 
GitLab