diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
index 44db80d57ce47641351bb8bf7697efcb27a1e11a..a725be13136fb3d44f778eaa90709f25143304f5 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
@@ -71,8 +71,7 @@ Namespace UnitTests
             psUserInputsConfig.Doors = ConsumerTechnology.Pneumatically  '"Pneumatic"
             psUserInputsConfig.AdBlueDosing = ConsumerTechnology.Pneumatically  ' "Pneumatic"
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
                                         
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
@@ -82,7 +81,7 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxCfg, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxCfg, psCompressorMap, auxCfg.Actuations, _Signals)
 
 
             Assert.IsNotNull(target)
@@ -93,9 +92,7 @@ Namespace UnitTests
 
             initialise()
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
-
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                        
 
@@ -106,7 +103,7 @@ Namespace UnitTests
            
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
             Dim expected As Double = 7947.684
             Dim actual As NormLiter = target.TotalAirDemand
@@ -119,10 +116,7 @@ Namespace UnitTests
 
             initialise()
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
-
-
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap =CompressorMapReader.ReadFile(_compressorMapPath)
                        
 
@@ -133,7 +127,7 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
             Dim expected As Single = 5832.091
             Dim actual As Watt = target.GetAveragePowerDemandAtCrankFromPneumatics()
@@ -149,9 +143,7 @@ Namespace UnitTests
 
             _defaultInputConfig.CompressorGearEfficiency = 0.8
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
-
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
 
@@ -161,7 +153,7 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
             Dim expected As Single = 5832.091
 
@@ -173,9 +165,7 @@ Namespace UnitTests
 
             initialise()
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
-
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
 
@@ -186,11 +176,11 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
 
-            Dim expected As Double = 7947.55127/
-                                     psActuationsMap.GetNumActuations(New ActuationsKey("CycleTime", "Urban")) _
+            Dim expected As Double = 7947.55127/ auxConfig.Actuations.CycleTime.Value()
+                                    
             ' _Signals.TotalCycleTimeSeconds
 
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
@@ -204,9 +194,7 @@ Namespace UnitTests
 
             _defaultInputConfig.SmartRegeneration = False
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
-
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                        
 
@@ -217,9 +205,9 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
-            Dim expected As Double = 8863.378/psActuationsMap.GetNumActuations(New ActuationsKey("CycleTime", "Urban")) _
+            Dim expected As Double = 8863.378/auxConfig.Actuations.CycleTime.Value() _
             ' _Signals.TotalCycleTimeSeconds
 
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
@@ -233,8 +221,7 @@ Namespace UnitTests
 
             '_defaultInputConfig.RetarderBrake = False
            
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.None)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.None)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                        
 
@@ -245,9 +232,9 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
-            Dim expected As Double = 8541.45/psActuationsMap.GetNumActuations(New ActuationsKey( "CycleTime","Urban")) _
+            Dim expected As Double = 8541.45/auxConfig.Actuations.CycleTime.Value() _
             ' _Signals.TotalCycleTimeSeconds
 
 
@@ -262,8 +249,7 @@ Namespace UnitTests
 
             _defaultInputConfig.KneelingHeightMillimeters = 100.SI(Unit.si.Milli.Meter).Cast (Of Meter)
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                        
 
@@ -273,9 +259,9 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
-            Dim expected As Double = 8557.524/ psActuationsMap.GetNumActuations(New ActuationsKey("CycleTime", "Urban")) ' _Signals.TotalCycleTimeSeconds
+            Dim expected As Double = 8557.524/ auxConfig.Actuations.CycleTime.Value() ' _Signals.TotalCycleTimeSeconds
 
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
         End Sub
@@ -288,8 +274,7 @@ Namespace UnitTests
 
             _defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Mechanically
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
 
@@ -300,9 +285,9 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
-            Dim expected As Double = 8726.1840/psActuationsMap.GetNumActuations(New ActuationsKey("CycleTime", "Urban")) _
+            Dim expected As Double = 8726.1840/auxConfig.Actuations.CycleTime.Value() _
             ' _Signals.TotalCycleTimeSeconds
 
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
@@ -316,8 +301,7 @@ Namespace UnitTests
 
             _defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatically
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
                                         
 
@@ -328,10 +312,9 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
-            Dim expected As Double = 7947.68457/
-                                     psActuationsMap.GetNumActuations(New ActuationsKey("CycleTime","Urban")) _
+            Dim expected As Double = 7947.68457/auxConfig.Actuations.CycleTime.Value() _
             ' _Signals.TotalCycleTimeSeconds
 
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
@@ -345,8 +328,7 @@ Namespace UnitTests
 
             _defaultInputConfig.Doors = ConsumerTechnology.Electrically
 
-            Dim psAuxConfig = New DeclarationDataAdapterTruck().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
-            Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath)
+            Dim psAuxConfig = New DeclarationDataAdapterPrimaryBus().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission)
             Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath)
 
             Dim auxConfig As IAuxiliaryConfig = GetAuxConfig(psAuxConfig)
@@ -356,10 +338,9 @@ Namespace UnitTests
 
             Dim _
                 target As _
-                    New M03Impl(auxConfig, psCompressorMap, psActuationsMap, _Signals)
+                    New M03Impl(auxConfig, psCompressorMap, auxConfig.Actuations, _Signals)
 
-            Dim expected As Double = 6880.88428/
-                                     psActuationsMap.GetNumActuations(New ActuationsKey("CycleTime","Urban")) _
+            Dim expected As Double = 6880.88428/auxConfig.Actuations.CycleTime.Value() _
             ' _Signals.TotalCycleTimeSeconds
 
             Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001)
@@ -373,7 +354,12 @@ Namespace UnitTests
                 .VehicleData = New VehicleData() with {
                     .CurbWeight = _vehicleMassKG.SI(of Kilogram)
                     },
-                .Cycle = "Urban"
+                .Actuations = New Actuations() With {
+                .Braking = 153,
+                .ParkBrakeAndDoors = 75,
+                .Kneeling = 25,
+                .CycleTime = 3114.SI(Of Second)    
+            }
                 }
         End Function
     End Class
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
index d7764c44dde5e5035b20ceab947ae88f9b8bb373..02901bab37e614c4fb4afb8811921dcfcc9179ac 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
@@ -159,8 +159,12 @@ Public Class Utils
                 },
                 .VehicleData = vehicleData,
                 .Signals = signals,
-                .ActuationsMap = ActuationsMapReader.Read("TestFiles/testPneumaticActuationsMap_GOODMAP.apac"),
-                .Cycle = "TESTCYCLE"
+                .Actuations = New Actuations() With {
+                    .Braking = 153,
+                    .ParkBrakeAndDoors = 24,
+                    .Kneeling = 25,
+                    .CycleTime = 1000.SI(of Second)()
+                 }
                 }
         Return retVal
     End Function
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/ActuationsKey.cs b/VectoCommon/VectoCommon/BusAuxiliaries/ActuationsKey.cs
deleted file mode 100644
index 5cc34203603178444dc2765c60d1331667c27da0..0000000000000000000000000000000000000000
--- a/VectoCommon/VectoCommon/BusAuxiliaries/ActuationsKey.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2017 European Union.
-// Licensed under the EUPL (the 'Licence');
-// 
-// * You may not use this work except in compliance with the Licence.
-// * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-// * Unless required by applicable law or agreed to in writing,
-// software distributed under the Licence is distributed on an "AS IS" basis,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// 
-// See the LICENSE.txt for the specific language governing permissions and limitations.
-
-using System;
-using System.Diagnostics;
-
-namespace TUGraz.VectoCommon.BusAuxiliaries
-{
-	[DebuggerDisplay("({ConsumerName}/{CycleName})")]
-	public class ActuationsKey
-	{
-		// Properties
-		public string ConsumerName { get; }
-
-		public string CycleName { get; }
-
-		// Constructor
-		public ActuationsKey(string consumerName, string cycleName)
-		{
-			if (consumerName.Trim().Length == 0 | cycleName.Trim().Length == 0)
-				throw new ArgumentException("ConsumerName and CycleName must be provided");
-			ConsumerName = consumerName;
-			CycleName = cycleName;
-		}
-
-
-		// Overrides to enable this class to be used as a dictionary key in the ActuationsMap.
-		public override bool Equals(object obj)
-		{
-			var other = (ActuationsKey)obj;
-			if (other == null) {
-				return false;
-			}
-			return other.ConsumerName == ConsumerName && other.CycleName == CycleName;
-		}
-
-		public override int GetHashCode()
-		{
-			return string.Format("{0}#{1}", ConsumerName, CycleName).GetHashCode();
-		}
-	}
-}
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IActuations.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IActuations.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e9f52489f5eaed22a41f3a01d1404bc0bce45465
--- /dev/null
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IActuations.cs
@@ -0,0 +1,12 @@
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.Models.BusAuxiliaries
+{
+	public interface IActuations
+	{
+		int Braking { get; }
+		Second CycleTime { get; }
+		int Kneeling { get; }
+		int ParkBrakeAndDoors { get; }
+	}
+}
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IActuationsMap.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IActuationsMap.cs
index a283575a0e86250fd445773758351ef2c046b960..5f163e06a3e4df99f5638d53823f8e6d6e04a3ed 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/IActuationsMap.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IActuationsMap.cs
@@ -10,12 +10,14 @@
 // See the LICENSE.txt for the specific language governing permissions and limitations.
 
 
+using System;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.Models.BusAuxiliaries;
+
 namespace TUGraz.VectoCommon.BusAuxiliaries
 {
 	public interface IActuationsMap
 	{
-		int GetNumActuations(ActuationsKey key);
-
-		string Source { get; }
+		IActuations Lookup(MissionType missionType);
 	}
 }
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs
index d887d5af8d6f3ab26df8daa8283ddc887e67a38e..d903c7bb20cac32e786ea09cdb5feeb414bbcd6e 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs
@@ -9,6 +9,8 @@
 // 
 // See the LICENSE.txt for the specific language governing permissions and limitations.
 
+using TUGraz.VectoCore.Models.BusAuxiliaries;
+
 namespace TUGraz.VectoCommon.BusAuxiliaries {
 	public interface IAuxiliaryConfig
 	{
@@ -22,13 +24,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
 
 		ISSMInputs SSMInputs { get; }
 
-		IActuationsMap ActuationsMap { get; }
+		IActuations Actuations { get; }
 
 		bool ConfigValuesAreTheSameAs(IAuxiliaryConfig other);
 
 
-		string Cycle { get; }
-
 		IVehicleData VehicleData { get; }
 
 		IFuelConsumptionMap FuelMap { get; }
diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj
index 0328627de8177e95612ca21d5d28eeb3d4f13369..15868e082f2c00e825c4fcb19406583dc13e72b5 100644
--- a/VectoCommon/VectoCommon/VectoCommon.csproj
+++ b/VectoCommon/VectoCommon/VectoCommon.csproj
@@ -50,9 +50,10 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="BusAuxiliaries\ActuationsKey.cs" />
+    <Compile Include="BusAuxiliaries\BusHVACSystemConfiguration.cs" />
     <Compile Include="BusAuxiliaries\CompressorMapValues.cs" />
     <Compile Include="BusAuxiliaries\FloorType.cs" />
+    <Compile Include="BusAuxiliaries\IActuations.cs" />
     <Compile Include="BusAuxiliaries\IAlternatorMap.cs" />
     <Compile Include="BusAuxiliaries\IAuxiliaryConfig.cs" />
     <Compile Include="BusAuxiliaries\ICombinedAlternatorMapRow.cs" />
@@ -105,6 +106,7 @@
     <Compile Include="Models\IResponse.cs" />
     <Compile Include="Models\LegislativeClass.cs" />
     <Compile Include="Models\LoggingObject.cs" />
+    <Compile Include="Models\MissionType.cs" />
     <Compile Include="Models\OperatingPoint.cs" />
     <Compile Include="Models\RetarderType.cs" />
     <Compile Include="Models\SimulationType.cs" />
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
index ee4ee701b55662e630d7af666df44ed4ed746904..db94f4fb2b682661c44f08e7adccdac914e0e9a8 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
@@ -34,7 +34,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			var techList = string.IsNullOrWhiteSpace(data["SSMTechologies"]?.ToString())
 				? DeclarationData.BusAuxiliaries.SSMTechnologyList
 				: SSMTechnologiesReader.ReadFromFile(data["SSMTechologies"].ToString());
-			var actuationsMap = ActuationsMapReader.Read(Path.Combine(baseDir, data.GetEx<string>("ActuationsMap")));
+			var actuations = new Actuations() {
+				Braking = data["Actuations"]?.GetEx<int>("Brakes") ?? 0,
+				ParkBrakeAndDoors = data["Actuations"]?.GetEx<int>("Park brake + 2 doors") ?? 0,
+				Kneeling = data["Actuations"]?.GetEx<int>("Kneeling") ?? 0,
+				CycleTime = (data["Actiations"]?.GetEx<int>("CycleTime") ?? 3600).SI<Second>()
+			};
+				//ActuationsMapReader.Read(Path.Combine(baseDir, data.GetEx<string>("ActuationsMap")));
 			var ssm = string.IsNullOrWhiteSpace(data["SSMFilePath"]?.ToString()) ?
 				new SSMInputs(vehicleData, "", FuelData.Diesel) {
 					EnvironmentalConditionsMap =  env,
@@ -48,7 +54,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				PneumaticAuxillariesConfig  = pac,
 				PneumaticUserInputsConfig  = puc,
 				SSMInputs = ssm,
-				ActuationsMap = actuationsMap,
+				Actuations = actuations,
 				VehicleData = vehicleData
 			};
 		}
diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/ActuationsMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/ActuationsMapReader.cs
index 68edb0139bdc0b4c6b153a6f2483193476f5d85b..147ac6e20aec4fb5b0285cdca25e7895ca7d02ba 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/ActuationsMapReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/ActuationsMapReader.cs
@@ -6,14 +6,16 @@ using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.BusAuxiliaries;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 {
 	public static class ActuationsMapReader
 	{
-		public static readonly string[] Header = new[] { Fields.ConsumerName, Fields.CycleName, Fields.Actuations };
+		public static readonly string[] Header = new[] { Fields.CycleName, Fields.Braking, Fields.ParkBrakeAndDoors, Fields.Kneeling, Fields.CycleTime };
 
 		public static IActuationsMap Read(string fileName)
 		{
@@ -33,16 +35,22 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 					string.Join(", ", data.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
 			}
 
-			var retVal = new Dictionary<ActuationsKey, int>();
+			var retVal = new Dictionary<MissionType, IActuations>();
 			foreach (DataRow row in data.Rows) {
-				var key = new ActuationsKey(row.Field<string>(Fields.ConsumerName), row.Field<string>(Fields.CycleName));
+				var key = row.Field<string>(Fields.CycleName).ParseEnum<MissionType>();
 				if (retVal.ContainsKey(key)) {
-					throw new VectoException("Duplicate entries in pneumatic actuations map! {0} / {1}", key.ConsumerName, key.CycleName);
+					throw new VectoException("Duplicate entries in actuations map! {0} / {1}", key.ToXMLFormat());
 				}
 
-				retVal[key] = row.Field<string>(Fields.Actuations).ToInt();
+				var entry = new Actuations() {
+					Braking = row.Field<string>(Fields.Braking).ToInt(),
+					ParkBrakeAndDoors = row.Field<string>(Fields.ParkBrakeAndDoors).ToInt(),
+					Kneeling = row.Field<string>(Fields.Kneeling).ToInt(),
+					CycleTime = row.Field<string>(Fields.CycleTime).ToInt().SI<Second>(),
+				};
+				retVal[key] = entry;
 			}
-			return new ActuationsMap(retVal, source);
+			return new ActuationsMap(retVal);
 		}
 
 		private static bool HeaderIsValid(DataColumnCollection cols)
@@ -52,9 +60,11 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 
 		public class Fields
 		{
-			public const string ConsumerName = "ConsumerName";
 			public const string CycleName = "CycleName";
-			public const string Actuations = "Actuations";
+			public const string Braking = "Brakes";
+			public const string ParkBrakeAndDoors = "Park brake + 2 doors";
+			public const string Kneeling = "Kneeling";
+			public const string CycleTime = "CycleTime";
 		}
 
 	}
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/Actuations.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/Actuations.cs
new file mode 100644
index 0000000000000000000000000000000000000000..07f8e87346450241d8a815aea1c8942eb86cd35d
--- /dev/null
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/Actuations.cs
@@ -0,0 +1,14 @@
+using TUGraz.VectoCommon.Utils;
+
+namespace TUGraz.VectoCore.Models.BusAuxiliaries {
+	public class Actuations : IActuations
+	{
+		public int Braking { get; internal set; }
+
+		public int ParkBrakeAndDoors { get; internal set; }
+
+		public int Kneeling { get; internal set; }
+
+		public Second CycleTime { get; internal set; }
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/AdvancedAuxiliaries.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/AdvancedAuxiliaries.cs
index b0b193a3140a24b985b15efd88f1ce043b503312..3137d52ef1549e259275ea511a49476eebe95936 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/AdvancedAuxiliaries.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/AdvancedAuxiliaries.cs
@@ -93,7 +93,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 			//Signals.PneumaticOverrunUtilisation = auxConfig.PneumaticAuxillariesConfig.OverrunUtilisationForCompressionFraction;
 
 			var alternatorMap = auxConfig.ElectricalUserInputsConfig.AlternatorMap;
-			var actuationsMap = auxConfig.ActuationsMap;
 			var compressorMap = auxConfig.PneumaticUserInputsConfig.CompressorMap;
 			
 			// fuelMap = New cMAP()
@@ -138,7 +137,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 				auxConfig.ElectricalUserInputsConfig.AlternatorGearEfficiency, auxConfig.ElectricalUserInputsConfig.PowerNetVoltage);
 
 			
-			M3 = new M03Impl(auxConfig, compressorMap, actuationsMap, Signals);
+			M3 = new M03Impl(auxConfig, compressorMap, auxCfg.Actuations, Signals);
 
 			M4 = new M04Impl(compressorMap, auxConfig.PneumaticUserInputsConfig.CompressorGearRatio, auxConfig.PneumaticUserInputsConfig.CompressorGearEfficiency, Signals);
 			M5 = new M05Impl(M0_5tmp, auxConfig.ElectricalUserInputsConfig.PowerNetVoltage, auxConfig.ElectricalUserInputsConfig.AlternatorGearEfficiency);
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/M0_1Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/M0_1Impl.cs
index ad41ff52613b6d6d166f57ace8c1b616413f8cc8..3dbccc79862ab1bedebdc6e50baf07010231df7f 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/M0_1Impl.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Electrics/M0_1Impl.cs
@@ -15,7 +15,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric
 		public M0_1Impl(IAuxiliaryConfig config) { 
 			Consumer = config.ElectricalUserInputsConfig.ElectricalConsumers;
 			
-			var doorDutyCycleFraction = GetDoorActuationTimeFraction(config.ActuationsMap, config.Cycle);
+			var doorDutyCycleFraction = (config.Actuations.ParkBrakeAndDoors * Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond) / config.Actuations.CycleTime; ;
 
 			GetTotalAverageDemandAmpsIncludingBaseLoad = Consumer.Items.Sum(
 				x => x.ConsumerName == Constants.BusAuxiliaries.ElectricalConsumers.DoorsPerVehicleConsumer
@@ -26,6 +26,8 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric
 				x => x.ConsumerName == Constants.BusAuxiliaries.ElectricalConsumers.DoorsPerVehicleConsumer
 					? x.NumberInActualVehicle * x.NominalConsumptionAmps * doorDutyCycleFraction
 					: x.TotalAvgConumptionAmps);
+
+			// just for debugging linq expression above
 			var sum = 0.0;
 			foreach (var x in Consumer.Items) {
 				if (x.BaseVehicle) {
@@ -39,20 +41,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electric
 			}
 		}
 
-		private double GetDoorActuationTimeFraction(IActuationsMap actuations, string cycle)
-
-		{
-			var actuationsKey = new ActuationsKey(Constants.BusAuxiliaries.BrakeAndDoorsActuationKey , cycle);
-
-			var numActuations = actuations.GetNumActuations(actuationsKey);
-			var secondsPerActuation = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond;
-
-			actuationsKey = new ActuationsKey(Constants.BusAuxiliaries.CycleTimeActuationKey, cycle);
-			var doorDutyCycleFraction = (numActuations * secondsPerActuation) / actuations.GetNumActuations(actuationsKey).SI<Second>();
-
-			return doorDutyCycleFraction;
-		}
-
 		public Ampere GetTotalAverageDemandAmpsIncludingBaseLoad { get; }
 
 		public Ampere GetTotalAverageDemandAmpsWithoutBaseLoad { get; }
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/ActuationsMap.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/ActuationsMap.cs
index 537bb0e6551bba46ae898316509f409c51582f23..c5f4ac05c2d2cb654fccbe0ca6943355cb7afb44 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/ActuationsMap.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/ActuationsMap.cs
@@ -12,30 +12,29 @@
 using System;
 using System.Collections.Generic;
 using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.Models.Declaration;
 
 namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics
 {
 	public class ActuationsMap : IActuationsMap
 	{
-		private Dictionary<ActuationsKey, int> _map;
+		private Dictionary<MissionType, IActuations> _map;
 
-		public ActuationsMap(Dictionary<ActuationsKey, int> map, string source)
+		public ActuationsMap(Dictionary<MissionType, IActuations> map)
 		{
 			_map = map;
-			Source = source;
+			
 		}
 
-		public int GetNumActuations(ActuationsKey key)
-		{
-			if (_map == null || !_map.ContainsKey(key))
-				throw new ArgumentException(string.Format("Pneumatic Actuations map does not contain the key '{0} / {1}'.", key.ConsumerName, key.CycleName));
-
-			return _map[key];
-		}
 
-		public string Source { get; }
+		#region Implementation of IActuationsMap
 
+		public IActuations Lookup(MissionType missionType)
+		{
+			return _map[missionType.GetNonEMSMissionType()];
+		}
 
-		
+		#endregion
 	}
 }
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs
index 2ae3b292be40cf3477e6e29b09b7c04f3b2320d4..8ea540b1990a313484ee3bdd907c06459156ed43 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs
@@ -9,29 +9,24 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 	{
 		protected IPneumaticUserInputsConfig _pneumaticUserInputsConfig;
 		protected IPneumaticsConsumersDemand _pneumaticAuxillariesConfig;
-		protected IActuationsMap ActuationsMap;
+		protected IActuations Actuations;
 		protected ICompressorMap _pneumaticsCompressorFlowRateMap;
 		protected Kilogram _vehicleMassKG;
-		protected string _cycleName;
 		protected ISignals _signals;
 		protected NormLiter _totalAirDemand;
-		private Second totalCycleTimeSeconds;
-
+		
 
 		//public M03Impl(IPneumaticUserInputsConfig pneumaticsUserInputConfig, IPneumaticsAuxilliariesConfig pneumaticsAuxillariesConfig, IPneumaticActuationsMap pneumaticsActuationsMap, ICompressorMap pneumaticsCompressorFlowRateMap, Kilogram vehicleMassKG, string cycleName, ISignals signals)
-		public M03Impl(IAuxiliaryConfig auxConfig, ICompressorMap compressorMap, IActuationsMap actuationsMap, ISignals signals)
+		public M03Impl(IAuxiliaryConfig auxConfig, ICompressorMap compressorMap, IActuations actuations, ISignals signals)
 		{
 			_pneumaticUserInputsConfig = auxConfig.PneumaticUserInputsConfig;
 			_pneumaticAuxillariesConfig = auxConfig.PneumaticAuxillariesConfig;
-			ActuationsMap = actuationsMap;
+			Actuations = actuations;
 			_pneumaticsCompressorFlowRateMap = compressorMap;
 			_vehicleMassKG = auxConfig.VehicleData.TotalVehicleWeight;
-			_cycleName = auxConfig.Cycle;
+			
 			_signals = signals;
 
-			totalCycleTimeSeconds = ActuationsMap
-				.GetNumActuations(new ActuationsKey(Constants.BusAuxiliaries.CycleTimeActuationKey, auxConfig.Cycle)).SI<Second>();
-
 			//'Calculate the Total Required Air Delivery Rate L / S
 			_totalAirDemand = TotalAirDemandCalculation();
 		}
@@ -43,14 +38,13 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 
 
 			//'* * Breaks * *
-			double numActuationsPerCycle = ActuationsMap.GetNumActuations(new ActuationsKey("Brakes", _cycleName));
+			double numActuationsPerCycle = Actuations.Braking;
 			//'=IF(K10 = "yes", IF(COUNTBLANK(F33), G33, F33), IF(COUNTBLANK(F34), G34, F34)) * K16
 			var airConsumptionPerActuation =  _pneumaticAuxillariesConfig.Braking * _vehicleMassKG;
 			var breaks = numActuationsPerCycle * airConsumptionPerActuation ;
 
 			//'* * ParkBrakesBreakplus2Doors * *Park break +2 doors
-			numActuationsPerCycle =
-				ActuationsMap.GetNumActuations(new ActuationsKey(Constants.BusAuxiliaries.BrakeAndDoorsActuationKey, _cycleName));
+			numActuationsPerCycle = Actuations.ParkBrakeAndDoors;
 			//'=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>()
@@ -59,7 +53,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			var parkBrakesplus2Doors = (numActuationsPerCycle * airConsumptionPerActuation);
 
 			//'* * Kneeling * *
-			numActuationsPerCycle = ActuationsMap.GetNumActuations(new ActuationsKey("Kneeling", _cycleName));
+			numActuationsPerCycle = Actuations.Kneeling;
 			//'=IF(COUNTBLANK(F35), G35, F35) * K11 * K16
 			airConsumptionPerActuation = _pneumaticAuxillariesConfig.BreakingWithKneeling *
 										_pneumaticUserInputsConfig.KneelingHeightMillimeters * _vehicleMassKG;
@@ -69,7 +63,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.AdBlueInjection * totalCycleTimeSeconds;
+				: _pneumaticAuxillariesConfig.AdBlueInjection * Actuations.CycleTime;
 
 			//'* * Regeneration * *
 			//	'=SUM(R6: R9) * IF(K9 = "yes", IF(COUNTBLANK(F41), G41, F41), IF(COUNTBLANK(F40), G40, F40)) - Supplied SpreadSheet
@@ -84,13 +78,13 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			//numActuationsPerCycle =;
 			airConsumptionPerActuation = _pneumaticAuxillariesConfig.DeadVolume;
 			var deadVolBlowOuts = (airConsumptionPerActuation * _pneumaticAuxillariesConfig.DeadVolBlowOuts *
-								totalCycleTimeSeconds).Cast<NormLiter>();
+									Actuations.CycleTime).Cast<NormLiter>();
 
 			//'* * AirSuspension * *
 			//	'=IF(K12 = "electrically", 0, G38 * F54) - Suplied Spreadsheet
 			var airSuspension = _pneumaticUserInputsConfig.AirSuspensionControl == ConsumerTechnology.Electrically
 				? 0.SI<NormLiter>()
-				: _pneumaticAuxillariesConfig.AirControlledSuspension * totalCycleTimeSeconds;
+				: _pneumaticAuxillariesConfig.AirControlledSuspension * Actuations.CycleTime;
 
 			//'* * Total Air Demand**
 			var totalAirDemand = breaks + parkBrakesplus2Doors + kneeling + adBlue + regeneration + deadVolBlowOuts +
@@ -108,7 +102,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 			var cmp = _pneumaticsCompressorFlowRateMap.Interpolate(
 				_signals.EngineSpeed * _pneumaticUserInputsConfig.CompressorGearRatio);
 
-			var sum1 = _totalAirDemand / totalCycleTimeSeconds;
+			var sum1 = _totalAirDemand / Actuations.CycleTime;
 			var sum6 = cmp.FlowRate;
 			
 			var sum7 = cmp.PowerOn - cmp.PowerOff;
@@ -121,7 +115,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati
 
 		public NormLiterPerSecond AverageAirConsumed()
 		{
-			var sum1 = _totalAirDemand / totalCycleTimeSeconds;
+			var sum1 = _totalAirDemand / Actuations.CycleTime;
 			return sum1;
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
index 87d5c3a24443175610492622aa300779189d4352..58ff6877aa57afa5becc6b168892692e162ba59a 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
@@ -33,10 +33,13 @@ namespace TUGraz.VectoCore.OutputData.FileIO
 				body["SSMTechologies"] = string.IsNullOrWhiteSpace(auxCfg.SSMInputs.Technologies.Source)
 					? ""
 					: JSONFileWriter.GetRelativePath(auxCfg.SSMInputs.Technologies.Source, basePath);
-				body["ActuationsMap"] = string.IsNullOrWhiteSpace(auxCfg.ActuationsMap.Source)
-					? ""
-					: JSONFileWriter.GetRelativePath(auxCfg.ActuationsMap.Source, basePath);
-
+				body["Actuations"] = new Dictionary<string, object>() {
+					{"Brakes", auxCfg.Actuations.Braking },
+					{"Park brake + 2 doors", auxCfg.Actuations.ParkBrakeAndDoors },
+					{"Kneeling", auxCfg.Actuations.Kneeling },
+					{"CycleTime", auxCfg.Actuations.CycleTime.Value() }
+				};
+				
 				JSONInputDataFactory.WriteFile(JToken.FromObject(new Dictionary<string, object>() { { "Header", "AAUX" }, { "Body", body } }), auxFile);
 			} catch (Exception) {
 				returnValue = false;
diff --git a/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC b/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC
index 318d9a9de99f5869bbdd940ceb9c0fa219725487..dc2724bf3aac96ef5b1b9363adf6b4172bd3c499 100644
--- a/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC
+++ b/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC
@@ -1,25 +1,6 @@
-ConsumerName, CycleName, Actuations
-Brakes,Heavy urban,191
-Brakes,Urban,153
-Brakes,Suburban,49
-Brakes,Interurban,190
-Brakes,Coach,27
-Brakes,UnknownCycleName,0
-Park brake + 2 doors,Heavy urban,82
-Park brake + 2 doors,Urban,75
-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,68
-Kneeling,Urban,58
-Kneeling,Suburban,6
-Kneeling,Interurban,0
-Kneeling,Coach,0
-Kneeling,UnknownCycleName,0
-CycleTime,Heavy urban,8912
-CycleTime,Urban,8149
-CycleTime,Suburban,3283
-CycleTime,Interurban,12962
-CycleTime,Coach,15086
-CycleTime,UnknownCycleName,3600
\ No newline at end of file
+CycleName        , Brakes , Park brake + 2 doors , Kneeling , CycleTime
+Heavy urban      , 191    , 82                   , 68       , 8912
+Urban            , 153    , 75                   , 58       , 8149
+Suburban         , 49     , 25                   , 6        , 3283
+Interurban       , 190    , 9                    , 0        , 12962
+Coach            , 27     , 6                    , 0        , 15086
\ No newline at end of file