From 1f6cc47451970bfaf5cd852ad28769d04f9fb334 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 19 Sep 2019 14:32:12 +0200
Subject: [PATCH] updating tests to use new c# implementation

---
 VECTO.sln                                     | 45 ++++++++++++++
 VECTO/VECTO.vbproj                            |  4 ++
 .../IntegrationTests/AuxDemandTest.vb         | 12 ++--
 .../UnitTests/AirCompressorTests.vb           | 61 ++++++++++---------
 .../UnitTests/AlternatorMapTests.vb           |  1 +
 .../AuxiliaryEnvironmentComparisonTests.vb    |  1 +
 .../AveragePneumaticLoadDemandTests.vb        | 34 ++++++-----
 .../UnitTests/CombinedAlternatorTests.vb      |  1 +
 .../UnitTests/ElectricalConsumerTests.vb      |  1 +
 .../M0_5_SmartAlternatorSetEfficiencyTests.vb |  8 ++-
 ..._NonSmart_AlternatorsSetEfficiencyTests.vb | 18 +++---
 .../UnitTests/M10Tests.vb                     |  7 ++-
 .../UnitTests/M11Tests.vb                     |  5 +-
 .../UnitTests/M12Tests.vb                     |  3 +-
 .../UnitTests/M13Tests.vb                     |  3 +-
 .../UnitTests/M14Tests.vb                     |  4 +-
 .../M1_AverageHVACLoadDemandTests.vb          |  7 ++-
 .../M2_AverageElectricalLoadTests.vb          | 15 +++--
 .../M5_SmartAlternatorSetGenerationTests.vb   | 27 ++++----
 .../UnitTests/M6Tests.vb                      |  6 +-
 .../UnitTests/M7Tests.vb                      |  7 ++-
 .../UnitTests/M8Tests.vb                      |  9 +--
 .../UnitTests/M9Tests.vb                      |  5 +-
 .../UnitTests/ResultCardTests.vb              |  1 +
 .../UnitTests/SSMTOOLTests.vb                 |  1 +
 .../AdvancedAuxiliaryInterfaces.vbproj        | 47 ++++++++++++++
 .../IAdvancedAuxiliaries.vb                   |  3 +
 .../Impl/BusAuxiliariesAdapter.cs             |  2 +
 28 files changed, 239 insertions(+), 99 deletions(-)

diff --git a/VECTO.sln b/VECTO.sln
index 93db14b928..24df0d7aab 100644
--- a/VECTO.sln
+++ b/VECTO.sln
@@ -75,6 +75,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VECTO-GIT", "VECTO-GIT", "{
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO_GIT_TEST", "..\STUDENTEN_PROJEKTE\Kober_VectoGIT\VECTO_GIT\VECTO_GIT_TEST\VECTO_GIT_TEST.csproj", "{52430C51-892A-4D8E-9189-B6C9D09791C0}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusAuxiliaries", "VECTOAux\BusAuxiliaries\BusAuxiliaries.csproj", "{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug PerformanceStats|Any CPU = Debug PerformanceStats|Any CPU
@@ -835,6 +837,48 @@ Global
 		{52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x64.Build.0 = Release|Any CPU
 		{52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU
 		{52430C51-892A-4D8E-9189-B6C9D09791C0}.ReleaseTUG|x86.Build.0 = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug PerformanceTrace|x86.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug|x64.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Debug|x86.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.DebugTUG|x64.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.DebugTUG|x64.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.DebugTUG|x86.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.DebugTUG|x86.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Deploy|Any CPU.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Deploy|x64.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Deploy|x64.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Deploy|x86.ActiveCfg = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Deploy|x86.Build.0 = Debug|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Release|x64.ActiveCfg = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Release|x64.Build.0 = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Release|x86.ActiveCfg = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.Release|x86.Build.0 = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.ReleaseTUG|x64.Build.0 = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D}.ReleaseTUG|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -860,5 +904,6 @@ Global
 		{A684BC49-C9B3-4C0C-8D2E-A13077853EDA} = {5DDEEEC2-743F-4395-B058-687B5773E3D2}
 		{C234077C-F81E-42FA-9367-1319753678A6} = {D29E62A2-CF08-469F-B29F-1B25DCB35386}
 		{52430C51-892A-4D8E-9189-B6C9D09791C0} = {5DDEEEC2-743F-4395-B058-687B5773E3D2}
+		{550D99D4-25F7-48D9-B0F0-E5DD6CB3485D} = {B7C0A40B-E468-44DE-A784-7A5B8DAC1042}
 	EndGlobalSection
 EndGlobal
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index 1d34ccb87b..e11aa85004 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -519,6 +519,10 @@
     <WCFMetadata Include="Service References\" />
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="..\VECTOAux\BusAuxiliaries\BusAuxiliaries.csproj">
+      <Project>{550d99d4-25f7-48d9-b0f0-e5dd6cb3485d}</Project>
+      <Name>BusAuxiliaries</Name>
+    </ProjectReference>
     <ProjectReference Include="..\VectoCommon\AdvancedAuxiliaryInterfaces\AdvancedAuxiliaryInterfaces.vbproj">
       <Project>{b4b9bd2f-fd8f-4bb8-82fa-e2154d2c7fbd}</Project>
       <Name>AdvancedAuxiliaryInterfaces</Name>
diff --git a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
index a02db65f7d..57f7121eae 100644
--- a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
+++ b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
@@ -68,7 +68,7 @@ Namespace IntegrationTests
             Dim engineFCMapFilePath = "TestFiles\Integration\24t Coach.vmap"
             Dim auxFilePath = "TestFiles\Integration\AdvAuxTest.aaux"
 
-            Dim aux As AdvancedAuxiliaries = New AdvancedAuxiliaries
+            Dim aux As IAdvancedAuxiliaries = New AdvancedAuxiliaries
 
             aux.VectoInputs.Cycle = "Coach"
             aux.VectoInputs.VehicleWeightKG = 12000.SI(Of Kilogram)()
@@ -84,7 +84,7 @@ Namespace IntegrationTests
             aux.Signals.TotalCycleTimeSeconds = 15000
             aux.Signals.EngineIdleSpeed = 560.RPMtoRad()
 
-            aux.Initialise(Path.GetFileName(auxFilePath), Path.GetDirectoryName(Path.GetFullPath(auxFilePath)) + "\")
+            CType(aux, AdvancedAuxiliaries).Initialise(Path.GetFileName(auxFilePath), Path.GetDirectoryName(Path.GetFullPath(auxFilePath)) + "\")
 
             aux.Signals.ClutchEngaged = True
             aux.Signals.EngineDrivelinePower = (driveLinePower * 1000).SI(Of Watt)() 'kW
@@ -100,9 +100,10 @@ Namespace IntegrationTests
 
             Dim msg As String = String.Empty
             For i As Integer = 0 To 9
+                aux.ResetCalculations()
                 Assert.AreEqual(6087.0317, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
                 aux.CycleStep(1.SI(Of Second), msg)
-                Debug.Print("{0}", aux.AA_TotalCycleFC_Grams)
+                Console.WriteLine("{0}", aux.AA_TotalCycleFC_Grams)
             Next
 
             Assert.AreEqual(79.303.SI(Unit.SI.Gramm).Value(), aux.AA_TotalCycleFC_Grams().Value(), 0.0001)
@@ -112,9 +113,10 @@ Namespace IntegrationTests
             aux.Signals.InternalEnginePower = (-50 * 1000).SI(Of Watt)()
 
             For i As Integer = 0 To 9
+                aux.ResetCalculations()
                 Assert.AreEqual(8954.1435, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
                 aux.CycleStep(1.SI(Of Second), msg)
-                Debug.Print("{0}", aux.AA_TotalCycleFC_Grams)
+                Console.WriteLine("{0}", aux.AA_TotalCycleFC_Grams)
             Next
 
             Assert.AreEqual(82.5783.SI(Unit.SI.Gramm).Value(), aux.AA_TotalCycleFC_Grams().Value(), 0.0001)
@@ -124,8 +126,10 @@ Namespace IntegrationTests
             aux.Signals.InternalEnginePower = (internalPower * 1000).SI(Of Watt)()       'kW
 
             For i As Integer = 0 To 9
+                aux.ResetCalculations()
                 Assert.AreEqual(6087.0317, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
                 aux.CycleStep(1.SI(Of Second), msg)
+                Console.WriteLine("{0}", aux.AA_TotalCycleFC_Grams)
             Next
 
             Assert.AreEqual(162.4655.SI(Unit.SI.Gramm).Value(), aux.AA_TotalCycleFC_Grams().Value(), 0.0001)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
index b8e0c115eb..3ac39d62ef 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
@@ -1,5 +1,6 @@
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries
@@ -40,56 +41,56 @@ Namespace UnitTests
 			Return New CompressorMapMock(True)
 		End Function
 
-		Private Function GetGoodCompressor() As M4_AirCompressor
+		Private Function GetGoodCompressor() As IM4_AirCompressor
 			Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
-			Dim target As M4_AirCompressor = New M4_AirCompressor(map, GoodRatio, GoodEfficiency, _signals)
+			Dim target As IM4_AirCompressor = New M04Impl(map, GoodRatio, GoodEfficiency, _signals)
 			Return target
 		End Function
 
 #End Region
 
-		<Test()>
+		<TestCase()>
 		Public Sub CreateNewJustPathTest()
 			Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
 			_signals.EngineSpeed = 100.RPMtoRad()
-			Dim target As M4_AirCompressor = New M4_AirCompressor(map, 2, 0.8, _signals)
+			Dim target As IM4_AirCompressor = New M04Impl(map, 2, 0.8, _signals)
 			Assert.IsNotNull(target)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub CreateNewAllParametersTest()
 			Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
-			Dim target As M4_AirCompressor = New M4_AirCompressor(map, GoodRatio, GoodEfficiency, _signals)
+			Dim target As IM4_AirCompressor = New M04Impl(map, GoodRatio, GoodEfficiency, _signals)
 			Assert.IsNotNull(target)
 		End Sub
 
 
-		<Test()>
+		<TestCase()>
 		Public Sub InitialiseTest()
 			Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
 			_signals.EngineSpeed = 100.RPMtoRad()
-			Dim target As M4_AirCompressor = New M4_AirCompressor(map, 2, 0.8, _signals)
+			Dim target As IM4_AirCompressor = New M04Impl(map, 2, 0.8, _signals)
 			Assert.IsTrue(target.Initialise())
 		End Sub
 
-        <Test()>
+        <TestCase()>
         Public Sub InitialiseInvalidMapTest()
 			Dim map As ICompressorMap = GetFailingCompressorMapMock()
 			_signals.EngineSpeed = 100.RPMtoRad()
-			Dim target As M4_AirCompressor = New M4_AirCompressor(map, 2, 0.8, _signals)
+			Dim target As IM4_AirCompressor = New M04Impl(map, 2, 0.8, _signals)
             Assert.That(Sub() target.Initialise(), Throws.InstanceOf(Of System.ArgumentException))
         End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub GetEfficiencyTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim target = comp.PulleyGearEfficiency
 			Assert.AreEqual(target, GoodEfficiency)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub SetEfficiencyTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim target As Single = 0.3
 			comp.PulleyGearEfficiency = target
 			Dim actual As Single = comp.PulleyGearEfficiency
@@ -99,22 +100,22 @@ Namespace UnitTests
 		<TestCase(TooLowEfficiency)>
         <TestCase(TooHighEfficiency)>
         Public Sub SetEfficiencyOutOfRangeTest(ByVal efficiency As Single)
-            Dim comp As M4_AirCompressor = GetGoodCompressor()
+            Dim comp As IM4_AirCompressor = GetGoodCompressor()
 
             Assert.That(Sub() comp.PulleyGearEfficiency = efficiency, Throws.InstanceOf(Of ArgumentException))
         End Sub
 
 
-        <Test()>
+        <TestCase()>
 		Public Sub GetRatioTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim target = comp.PulleyGearRatio
 			Assert.AreEqual(target, GoodRatio)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub SetRatioTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim target As Single = 3
 			comp.PulleyGearRatio = target
 			Dim actual As Single = comp.PulleyGearRatio
@@ -124,50 +125,50 @@ Namespace UnitTests
 		<TestCase(TooLowRatio)>
         <TestCase(TooHighRatio)>
         Public Sub SetRatioOutOfRangeTest(ByVal ratio As Single)
-            Dim comp As M4_AirCompressor = GetGoodCompressor()
+            Dim comp As IM4_AirCompressor = GetGoodCompressor()
 
             Assert.That(Sub() comp.PulleyGearRatio = ratio, Throws.InstanceOf(Of ArgumentException))
         End Sub
 
-        <Test()>
+        <TestCase()>
 		Public Sub GetCompressorFlowRateTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim expected As Double = 0.0333333351
 			Dim actual = comp.GetFlowRate()
 			Assert.AreEqual(expected, actual.Value(), 0.00000001)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub GetPowerCompressorOffTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim expected As Double = 5.0
 			Dim actual = comp.GetPowerCompressorOff()
 			Assert.AreEqual(expected, actual.Value(), 0.00000001)
 		End Sub
 
 
-		<Test()>
+		<TestCase()>
 		Public Sub GetPowerCompressorOnTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim expected As Double = 8.0
 			Dim actual = comp.GetPowerCompressorOn()
 			Assert.AreEqual(expected, actual.Value(), 0.00000001)
 		End Sub
 
 
-		<Test()>
+		<TestCase()>
 		Public Sub GetPowerDifferenceTest()
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 			Dim expected As Double = 3.0
 			Dim actual = comp.GetPowerDifference()
 			Assert.AreEqual(expected, actual.Value(), 0.00000001)
 		End Sub
 
 
-		<Test>
+		<TestCase>
 		Public Sub GetAveragePowerDemandPerCompressorUnitFlowRate()
 
-			Dim comp As M4_AirCompressor = GetGoodCompressor()
+			Dim comp As IM4_AirCompressor = GetGoodCompressor()
 
 			Dim expected As Single = 0.01
 			Dim actual As SI = comp.GetAveragePowerDemandPerCompressorUnitFlowRate
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb
index 082bfb8ec0..5eadb113ee 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AlternatorMapTests.vb
@@ -2,6 +2,7 @@
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
 Imports VectoAuxiliaries
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 
 
 Namespace UnitTests
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb
index 89291cbd1a..a695b90f87 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb
@@ -3,6 +3,7 @@ Imports NUnit.Framework
 Imports NUnit
 Imports TUGraz.VectoCommon.Utils
 Imports VectoAuxiliaries
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliaries.Hvac
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
index f21248343a..b6be23c6c1 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
@@ -1,7 +1,9 @@
 
+Imports System.IO
 Imports VectoAuxiliaries.Pneumatics
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries
 
@@ -24,6 +26,10 @@ Namespace UnitTests
 		Private _defaultInputConfig As IPneumaticUserInputsConfig
 		Private _Signals As ISignals = New Signals
 
+        <OneTimeSetUp>
+        Sub RunBeforeAnyTests()    
+            Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory)
+        end Sub
 
 		'Constructors
 		Public Sub New()
@@ -51,7 +57,7 @@ Namespace UnitTests
 		End Sub
 
 
-		<Test>
+		<TestCase()>
 		Public Sub CreateNewtest()
 
 			Dim psUserInputsConfig = CType(New PneumaticUserInputsConfig(), IPneumaticUserInputsConfig)
@@ -68,14 +74,14 @@ Namespace UnitTests
 			psCompressorMap.Initialise()
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(psUserInputsConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(psUserInputsConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 
 			Assert.IsNotNull(target)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub AverageLoadValueUsingDefaultAuxValuesTest()
 
 			initialise()
@@ -88,11 +94,11 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 7947.684
-			Dim actual As NormLiter = target.TotalAirDemand()
+			Dim actual As NormLiter = target.TotalAirDemand
 
 			Assert.AreEqual(expected, actual.Value(), 0.000001)
 		End Sub
@@ -110,7 +116,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Single = 5832.091
@@ -135,7 +141,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Single = 5832.091
@@ -156,7 +162,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Single = 7947.55127 / _Signals.TotalCycleTimeSeconds
@@ -180,7 +186,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 8863.378 / _Signals.TotalCycleTimeSeconds
@@ -204,7 +210,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 8541.45 / _Signals.TotalCycleTimeSeconds
@@ -229,7 +235,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 8557.524 / _Signals.TotalCycleTimeSeconds
@@ -253,7 +259,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 7947.68457 / _Signals.TotalCycleTimeSeconds
@@ -277,7 +283,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 7947.68457 / _Signals.TotalCycleTimeSeconds
@@ -301,7 +307,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
+					New M03Impl(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap,
 													_vehicleMassKG.SI(Of Kilogram), "Urban", _Signals)
 
 			Dim expected As Double = 6880.88428 / _Signals.TotalCycleTimeSeconds
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb
index e75c41b58f..7c9106fa25 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/CombinedAlternatorTests.vb
@@ -7,6 +7,7 @@ Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries
 Imports VectoAuxiliaries.Hvac
 Imports System.IO
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 
 Namespace UnitTests
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/ElectricalConsumerTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/ElectricalConsumerTests.vb
index e2b17d7ded..a287ebcb01 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/ElectricalConsumerTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/ElectricalConsumerTests.vb
@@ -1,6 +1,7 @@
 Imports VectoAuxiliaries.Electrics
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 
 Namespace UnitTests
 	<TestFixture()>
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
index c8bb4610d3..3340062452 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
@@ -3,11 +3,13 @@ Imports VectoAuxiliaries.Hvac
 Imports VectoAuxiliaries
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 
 Namespace UnitTests
 	<TestFixture()>
 	Public Class M0_5_SmartAlternatorSetEfficiencyTests
-		Private target As M0_5_SmartAlternatorSetEfficiency
+		Private target As IM0_5_SmartAlternatorSetEfficiency
 		Private signals = New Signals
 
 		Public Sub New()
@@ -45,7 +47,7 @@ Namespace UnitTests
 			Dim signals = New Signals()
 			signals.EngineSpeed = 2000.RPMtoRad()
 
-			Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, alternatoMap, 26.3.SI(Of Volt), signals, ssm)
+			Dim m0 As New M00Impl(elecConsumers, alternatoMap, 26.3.SI(Of Volt), signals, ssm)
 
 			'Results Cards
 			Dim readings = New List(Of SmartResult)
@@ -58,7 +60,7 @@ Namespace UnitTests
 
 
 			signals.EngineSpeed = 2000.RPMtoRad()
-			target = New M0_5_SmartAlternatorSetEfficiency(m0, elecConsumers, alternatoMap, idleResult, tractionResult,
+			target = New M0_5Impl(m0, elecConsumers, alternatoMap, idleResult, tractionResult,
 															overrunResult, signals)
 		End Sub
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
index 5edaabf086..57823cc8ec 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
@@ -6,6 +6,9 @@ Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Hvac
 Imports System.IO
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
+Imports VectoAuxiliaries.DownstreamModules.Electrics
+Imports VectoAuxiliaries.DownstreamModules.HVAC
 
 Namespace UnitTests
     <TestFixture()>
@@ -54,27 +57,26 @@ Namespace UnitTests
 
         <Test()>
         Public Sub CreateNewTest()
-            Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,
-                                                                                                        alternatorMap, powernetVoltage, signals, GetSSM())
+            Dim target As IM0_NonSmart_AlternatorsSetEfficiency = New M00Impl(elecConsumers,alternatorMap, powernetVoltage, signals, GetSSM())
             Assert.IsNotNull(target)
         End Sub
 
         <Test()>
         Public Sub CreateNew_MissingElecConsumers_ThrowArgumentExceptionTest()
 
-            Dim target As M0_NonSmart_AlternatorsSetEfficiency
-            Assert.That(Sub() target = New M0_NonSmart_AlternatorsSetEfficiency(Nothing, alternatorMap, powernetVoltage, signals, GetSSM()), Throws.InstanceOf(Of ArgumentException))
+            Dim target As IM0_NonSmart_AlternatorsSetEfficiency
+            Assert.That(Sub() target = New M00Impl(Nothing, alternatorMap, powernetVoltage, signals, GetSSM()), Throws.InstanceOf(Of ArgumentException))
         End Sub
 
         <Test()>
         Public Sub CreateNew_MissingAlternatorMap_ThrowArgumentExceptionTest()
-            Dim target As M0_NonSmart_AlternatorsSetEfficiency
-            Assert.That(Sub() target = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, Nothing, powernetVoltage, signals, GetSSM()), Throws.InstanceOf(Of ArgumentException))
+            Dim target As IM0_NonSmart_AlternatorsSetEfficiency
+            Assert.That(Sub() target = New M00Impl(elecConsumers, Nothing, powernetVoltage, signals, GetSSM()), Throws.InstanceOf(Of ArgumentException))
         End Sub
 
         <Test()>
         Public Sub EfficiencyValueTest()
-            Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,
+            Dim target As IM0_NonSmart_AlternatorsSetEfficiency = New M00Impl(elecConsumers,
                                                                                                         alternatorMap, powernetVoltage, signals, GetSSM())
 
             Dim actual As Single = target.AlternatorsEfficiency
@@ -87,7 +89,7 @@ Namespace UnitTests
         <Test()>
         Public Sub HVAC_PowerDemandAmpsTest()
 
-            Dim target As M0_NonSmart_AlternatorsSetEfficiency = New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers,
+            Dim target As IM0_NonSmart_AlternatorsSetEfficiency = New M00Impl(elecConsumers,
                                                                                                         alternatorMap, powernetVoltage, signals, GetSSM())
 
             Dim actual As Ampere
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M10Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M10Tests.vb
index e4e02b6bc8..ec799c3e98 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M10Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M10Tests.vb
@@ -6,6 +6,7 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 
 Namespace UnitTests
 	<TestFixture()>
@@ -28,12 +29,12 @@ Namespace UnitTests
 			m9.Setup(Function(x) x.TotalCycleFuelConsumptionCompressorOffContinuously).Returns((y3 / 1000).SI(Of Kilogram))
 
 
-			Dim target As IM10 = New M10(m3.Object, m9.Object, signals)
+			Dim target As IM10 = New M10Impl(m3.Object, m9.Object, signals)
 
 			target.CycleStep(1.SI(Of Second))
 
-            		Assert.AreEqual(out1.SI(Unit.SI.Gramm).Value(), target.AverageLoadsFuelConsumptionInterpolatedForPneumatics.Value(), 0.001)
-            		Assert.AreEqual(out2.SI(Unit.SI.Gramm).Value(), target.FuelConsumptionSmartPneumaticsAndAverageElectricalPowerDemand.Value(), 0.001)
+			Assert.AreEqual(out1.SI(Unit.SI.Gramm).Value(), target.AverageLoadsFuelConsumptionInterpolatedForPneumatics.Value(), 0.001)
+			Assert.AreEqual(out2.SI(Unit.SI.Gramm).Value(), target.FuelConsumptionSmartPneumaticsAndAverageElectricalPowerDemand.Value(), 0.001)
 		End Sub
 	End Class
 End Namespace
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb
index b793e5b91c..c223ad3545 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb
@@ -6,6 +6,7 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 
 Namespace UnitTests
 	<TestFixture()>
@@ -53,7 +54,7 @@ Namespace UnitTests
 
 
 			'Act
-			Dim target = New M11(m1Mock.Object, m3Mock.Object, m6Mock.Object, m8Mock.Object, fmap, sgnlsMock.Object) _
+			Dim target = New M11Impl(m1Mock.Object, m3Mock.Object, m6Mock.Object, m8Mock.Object, fmap, sgnlsMock.Object) _
 			',m3Mock.Object,m6Mock.Object,m8Mock.Object,fmap,sgnlsMock.Object)
 
 			'Add Current Calculation to Internal Aggregates ( Accesseed by public output properties which are external interface )
@@ -109,7 +110,7 @@ Namespace UnitTests
 
 
 			'Act
-			Dim target = New M11(m1Mock.Object, m3Mock.Object, m6Mock.Object, m8Mock.Object, fmap, sgnlsMock.Object) _
+			Dim target = New M11Impl(m1Mock.Object, m3Mock.Object, m6Mock.Object, m8Mock.Object, fmap, sgnlsMock.Object) _
 			',m3Mock.Object,m6Mock.Object,m8Mock.Object,fmap,sgnlsMock.Object)
 
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M12Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M12Tests.vb
index dcf15b9851..ca9d5ee9cd 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M12Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M12Tests.vb
@@ -6,6 +6,7 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 
 Namespace UnitTests
 	<TestFixture()>
@@ -39,7 +40,7 @@ Namespace UnitTests
 			M10Mock.Setup(Function(x) x.AverageLoadsFuelConsumptionInterpolatedForPneumatics).Returns((IP7 / 1000).SI(Of Kilogram))
 
 			'Act
-			Dim target = New M12(M10Mock.Object, m11Mock.Object, sgnlsMock.Object)
+			Dim target = New M12Impl(M10Mock.Object, m11Mock.Object, sgnlsMock.Object)
 
 			'Assert
 			Assert.AreEqual(target.FuelconsumptionwithsmartElectricsandAveragePneumaticPowerDemand().Value(),
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M13Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M13Tests.vb
index 2f0e864310..107ff3b990 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M13Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M13Tests.vb
@@ -6,6 +6,7 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 
 
 Namespace UnitTests
@@ -53,7 +54,7 @@ Namespace UnitTests
 			Signals.Setup(Function(x) x.CurrentCycleTimeInSeconds).Returns(3114)
 
 			'Act
-			Dim target = New M13(m10.Object, m11.Object, m12.Object, Signals.Object)
+			Dim target = New M13Impl(m10.Object, m11.Object, m12.Object, Signals.Object)
 
 			'Assert
             		Assert.AreEqual(OUT1.SI(Unit.SI.Gramm).Value(), target.WHTCTotalCycleFuelConsumptionGrams.Value(), 0.001)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb
index e40d9156e1..67d2e7a7e2 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb
@@ -6,6 +6,8 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
+Imports VectoAuxiliaries.DownstreamModules.HVAC
 
 
 Namespace UnitTests
@@ -115,7 +117,7 @@ Namespace UnitTests
 
 
 			'Act
-			Dim m14 As New M14(m13.Object, ssmMock, constants, signals.Object)
+			Dim m14 As New M14Impl(m13.Object, ssmMock, constants, signals.Object)
 
 			'Assert
             Assert.AreEqual(expectedOut1.SI(Unit.SI.Gramm).Value(), m14.TotalCycleFCGrams.Value(), 0.1)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb
index 02251b0ee0..9899daafd4 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb
@@ -1,6 +1,8 @@
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 Imports VectoAuxiliaries
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliaries.Hvac
@@ -30,7 +32,7 @@ Namespace UnitTests
 
 			ssm.Load(_SSMMAP)
 
-			m0 = New M0_NonSmart_AlternatorsSetEfficiency(New ElectricalConsumerList(powernetVoltage, 0.096, True),
+			m0 = New M00Impl(New ElectricalConsumerList(powernetVoltage, 0.096, True),
 														alternatorMap, powernetVoltage.SI(Of Volt), signals, ssm)
 		End Sub
 
@@ -38,8 +40,7 @@ Namespace UnitTests
 
 			ssm.Load(_SSMMAP)
 
-			Return New M1_AverageHVACLoadDemand(m0,
-												alternatorGearEfficiency,
+			Return New M01Impl(m0, alternatorGearEfficiency,
 												compressorGrearEfficiency,
 												powernetVoltage.SI(Of Volt),
 												signals,
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
index 4aba3ace56..1255d542d4 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
@@ -2,8 +2,11 @@
 Imports VectoAuxiliaries.Hvac
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries
+Imports VectoAuxiliaries.DownstreamModules.Electrics
+Imports VectoAuxiliaries.DownstreamModules.HVAC
 
 Namespace UnitTests
 	<TestFixture()>
@@ -31,7 +34,7 @@ Namespace UnitTests
 
 #Region "Helpers"
 
-		Private Function GetAverageElectricalDemandInstance() As M2_AverageElectricalLoadDemand
+		Private Function GetAverageElectricalDemandInstance() As IM2_AverageElectricalLoadDemand
 
 			signals.EngineSpeed = 2000.RPMtoRad()
 
@@ -41,19 +44,19 @@ Namespace UnitTests
 
 			Dim altMap As IAlternatorMap = CType(New AlternatorMap("testfiles\testAlternatorMap.aalt"), IAlternatorMap)
 			altMap.Initialise()
-			Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(consumers, altMap, 26.3.SI(Of Volt), signals, GetSSM())
+			Dim m0 As New M00Impl(consumers, altMap, 26.3.SI(Of Volt), signals, GetSSM())
 
 			'Get Consumers.
 
 
-			Return New M2_AverageElectricalLoadDemand(consumers, m0, 0.8, 26.3.SI(Of Volt), signals)
+			Return New M02Impl(consumers, m0, 0.8, 26.3.SI(Of Volt), signals)
 		End Function
 
 #End Region
 
 		<Test()>
 		Public Sub NewTest()
-			Dim target As M2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
+			Dim target As IM2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
 			Assert.IsNotNull(target)
 		End Sub
 
@@ -63,14 +66,14 @@ Namespace UnitTests
 
 
 			Dim expected As Single = 1594.61572
-			Dim target As M2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
+			Dim target As IM2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
 			Dim actual As Watt = target.GetAveragePowerDemandAtAlternator()
 			Assert.AreEqual(expected, actual.Value(), 0.001)
 		End Sub
 
 		<Test()>
 		Public Sub GetAveragePowerAtCrankTest()
-			Dim target As M2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
+			Dim target As IM2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
 			Dim expected As Single = 10914.6543
 			Dim actual As Watt = target.GetAveragePowerAtCrankFromElectrics()
 			Assert.AreEqual(expected, actual.Value(), 0.001)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
index 42fe64dcda..12321eb59a 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
@@ -1,10 +1,13 @@
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Hvac
 Imports VectoAuxiliaries
+Imports VectoAuxiliaries.DownstreamModules.Electrics
+Imports VectoAuxiliaries.DownstreamModules.HVAC
 
 Namespace UnitTests
 	<TestFixture()>
@@ -17,8 +20,8 @@ Namespace UnitTests
 		Private Const _altGearPullyEfficiency As Single = 0.8
 
 		'Private fields
-		Private _m05 As M0_5_SmartAlternatorSetEfficiency
-		Private _target As M5__SmartAlternatorSetGeneration
+		Private _m05 As IM0_5_SmartAlternatorSetEfficiency
+		Private _target As IM5_SmartAlternatorSetGeneration
 		Private _signals As ISignals = New Signals
 		Private ssmHVac As IHVACSteadyStateModel = New HVACSteadyStateModel(100, 100, 100)
 
@@ -48,7 +51,7 @@ Namespace UnitTests
 			alternatoMap.Initialise()
 			Dim _
 				m0 As _
-					New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, alternatoMap, _powerNetVoltage.SI(Of Volt), _signals,
+					New M00Impl(elecConsumers, alternatoMap, _powerNetVoltage.SI(Of Volt), _signals,
 															GetSSM())
 
 			'Results Cards
@@ -63,45 +66,45 @@ Namespace UnitTests
 			Dim signals As ISignals = New Signals
 			signals.EngineSpeed = 2000.RPMtoRad()
 
-			_m05 = New M0_5_SmartAlternatorSetEfficiency(m0, elecConsumers, alternatoMap, idleResult, tractionResult,
+			_m05 = New M0_5Impl(m0, elecConsumers, alternatoMap, idleResult, tractionResult,
 														overrunResult, signals)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub CreateNewTest()
 
 			Initialise()
-			_target = New M5__SmartAlternatorSetGeneration(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
+			_target = New M05Impl(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
 			Assert.IsNotNull(_target)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub PowerAtCrankIdleWatts()
 
 			Initialise()
-			_target = New M5__SmartAlternatorSetGeneration(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
+			_target = New M05Impl(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
 			Dim expected As Single = 1641.35791
 			Dim actual As Watt = _target.AlternatorsGenerationPowerAtCrankIdleWatts()
 
 			Assert.AreEqual(expected, actual.Value(), 0.001)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub PowerAtCrankTractionWatts()
 
 			Initialise()
-			_target = New M5__SmartAlternatorSetGeneration(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
+			_target = New M05Impl(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
 			Dim expected As Single = 1641.35791
 			Dim actual As Watt = _target.AlternatorsGenerationPowerAtCrankTractionOnWatts()
 
 			Assert.AreEqual(expected, actual.Value(), 0.001)
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub PowerAtCrankOverrunWatts()
 
 			Initialise()
-			_target = New M5__SmartAlternatorSetGeneration(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
+			_target = New M05Impl(_m05, _powerNetVoltage.SI(Of Volt), _altGearPullyEfficiency)
 			Dim expected As Single = 1641.35791F
 
 			Dim actual As Watt = _target.AlternatorsGenerationPowerAtCrankOverrunWatts()
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb
index b3dc1caa41..d9decce857 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb
@@ -6,6 +6,8 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
+
 
 Namespace UnitTests
 	<TestFixture()>
@@ -25,7 +27,7 @@ Namespace UnitTests
 			M4 = New M4_Mock(100, 2, 200, 100, 100)
 			M5 = New M5_Mock(200, 50, 80)
 
-			Return New M6(M1, M2, M3, M4, M5, Signals)
+			Return New M06Impl(M1, M2, M3, M4, M5, Signals)
 		End Function
 
 		Public Sub New()
@@ -103,7 +105,7 @@ Namespace UnitTests
 			signals.SmartElectrics = SM
 
 
-			Dim target As New M6(M1, M2, M3, M4, M5, signals)
+			Dim target As New M06Impl(M1, M2, M3, M4, M5, signals)
 
 			Assert.AreEqual(OUT1, target.OverrunFlag)
 			Assert.AreEqual(OUT2, target.SmartElecAndPneumaticsCompressorFlag)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb
index a984dacfe8..040469f304 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb
@@ -4,6 +4,7 @@ Imports VectoAuxiliaries.Hvac
 Imports VectoAuxiliaries.DownstreamModules
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 Imports VectoAuxiliaries
 
 Namespace UnitTests
@@ -20,9 +21,9 @@ Namespace UnitTests
 			Signals = New Signals()
 		End Sub
 
-		<Test()>
+		<TestCase()>
 		Public Sub CreateNew_M7InstanceTest()
-			Dim target As IM7 = New M7(M5, M6, Signals)
+			Dim target As IM7 = New M07Impl(M5, M6, Signals)
 			Assert.IsNotNull(target)
 		End Sub
 
@@ -83,7 +84,7 @@ Namespace UnitTests
 
 
 			'Create Instance of M7 from 
-			Dim target As IM7 = New M7(M5, M6, Signals)
+			Dim target As IM7 = New M07Impl(M5, M6, Signals)
 
 			Dim OP1act As Double = target.SmartElectricalAndPneumaticAuxAltPowerGenAtCrank().Value()
 			Dim OP2act As Double = target.SmartElectricalAndPneumaticAuxAirCompPowerGenAtCrank().Value()
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M8Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M8Tests.vb
index 6f180ab8bf..219eb3519a 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M8Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M8Tests.vb
@@ -6,11 +6,12 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 
 Namespace UnitTests
 	<TestFixture()>
 	Public Class M8Tests
-		<Test()>
+		<TestCase()>
 		Public Sub CreateInstanceTest()
 
 			'Arrange
@@ -20,7 +21,7 @@ Namespace UnitTests
 			Dim sigsMock = New Mock(Of ISignals)()
 
 			'Act
-			Dim target As IM8 = New M8(m1MOCK.Object, m6Mock.Object, m7MOCK.Object, sigsMock.Object)
+			Dim target As IM8 = New M08Impl(m1MOCK.Object, m6Mock.Object, m7MOCK.Object, sigsMock.Object)
 
 			'Assert
 			Assert.IsNotNull(target)
@@ -66,7 +67,7 @@ Namespace UnitTests
 			sigsMock.Setup(Function(x) x.SmartElectrics).Returns(IP11)
 
 			'Act
-			Dim target As IM8 = New M8(m1MOCK.Object, m6Mock.Object, m7MOCK.Object, sigsMock.Object)
+			Dim target As IM8 = New M08Impl(m1MOCK.Object, m6Mock.Object, m7MOCK.Object, sigsMock.Object)
 
 			'Assert
 			Assert.AreEqual(OUT1, target.AuxPowerAtCrankFromElectricalHVACAndPneumaticsAncillaries.Value(), 0.001)
@@ -114,7 +115,7 @@ Namespace UnitTests
 
 
 			'Act
-			Dim target As IM8 = New M8(m1MOCK.Object, m6Mock.Object, m7MOCK.Object, sigsMock.Object)
+			Dim target As IM8 = New M08Impl(m1MOCK.Object, m6Mock.Object, m7MOCK.Object, sigsMock.Object)
 
 			'Assert
 			Assert.AreEqual(OUT1, target.AuxPowerAtCrankFromElectricalHVACAndPneumaticsAncillaries.Value(), 0.001)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
index 18e38c82b1..b665dfe295 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
@@ -6,6 +6,7 @@ Imports NUnit.Framework
 Imports VectoAuxiliaries
 Imports Moq
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl
 
 Namespace UnitTests
 	<TestFixture()>
@@ -55,7 +56,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M9(m1Mock.Object, m4Mock.Object, m6Mock.Object, m8Mock.Object, fMapMock, psac.Object, sgnlsMock.Object)
+					New M09Impl(m1Mock.Object, m4Mock.Object, m6Mock.Object, m8Mock.Object, fMapMock, psac.Object, sgnlsMock.Object)
 
 			target.CycleStep(1.SI(Of Second))
 
@@ -109,7 +110,7 @@ Namespace UnitTests
 
 			Dim _
 				target As _
-					New M9(m1Mock.Object, m4Mock.Object, m6Mock.Object, m8Mock.Object, fMapMock.Object, psac.Object, sgnlsMock.Object)
+					New M09Impl(m1Mock.Object, m4Mock.Object, m6Mock.Object, m8Mock.Object, fMapMock.Object, psac.Object, sgnlsMock.Object)
 
 			target.CycleStep(1.SI(Of Second))
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb
index 9678eb0013..be98bd8160 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/ResultCardTests.vb
@@ -1,5 +1,6 @@
 Imports NUnit.Framework
 Imports TUGraz.VectoCommon.Utils
+Imports VectoAuxiliaries.DownstreamModules.Electrics
 Imports VectoAuxiliaries.Electrics
 
 <TestFixture()>
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
index 568ab56168..902c393b78 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
@@ -2,6 +2,7 @@
 Imports VectoAuxiliaries.Pneumatics
 Imports VectoAuxiliariesTests.Mocks
 Imports VectoAuxiliaries
+Imports VectoAuxiliaries.DownstreamModules.HVAC
 Imports VectoAuxiliaries.Hvac
 
 Namespace UnitTests
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/AdvancedAuxiliaryInterfaces.vbproj b/VectoCommon/AdvancedAuxiliaryInterfaces/AdvancedAuxiliaryInterfaces.vbproj
index 8b5131f2fb..0210fb5863 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/AdvancedAuxiliaryInterfaces.vbproj
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/AdvancedAuxiliaryInterfaces.vbproj
@@ -77,6 +77,52 @@
     <Import Include="System.Threading.Tasks" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="DownstreamModules\Electrics\AlternatorMapValues.vb" />
+    <Compile Include="DownstreamModules\Electrics\AltUserInput.vb" />
+    <Compile Include="DownstreamModules\Electrics\ElectricConstants.vb" />
+    <Compile Include="DownstreamModules\Electrics\IAlternator.vb" />
+    <Compile Include="DownstreamModules\Electrics\IAlternatorMap.vb" />
+    <Compile Include="DownstreamModules\Electrics\ICombinedAlternator.vb" />
+    <Compile Include="DownstreamModules\Electrics\ICombinedAlternatorMapRow.vb" />
+    <Compile Include="DownstreamModules\Electrics\ICombinedAlternatorSignals.vb" />
+    <Compile Include="DownstreamModules\Electrics\IElectricalConsumer.vb" />
+    <Compile Include="DownstreamModules\Electrics\IElectricalConsumerList.vb" />
+    <Compile Include="DownstreamModules\Electrics\IElectricsUserInputsConfig.vb" />
+    <Compile Include="DownstreamModules\Electrics\IResultCard.vb" />
+    <Compile Include="DownstreamModules\Electrics\SmartResult.vb" />
+    <Compile Include="DownstreamModules\HVAC\IEnvironmentalCondition.vb" />
+    <Compile Include="DownstreamModules\HVAC\IEnvironmentalConditionsMap.vb" />
+    <Compile Include="DownstreamModules\HVAC\IHVACConstants.vb" />
+    <Compile Include="DownstreamModules\HVAC\IHVACSteadyStateModel.vb" />
+    <Compile Include="DownstreamModules\HVAC\IHVACUserInputsConfig.vb" />
+    <Compile Include="DownstreamModules\HVAC\ISSMCalculate.vb" />
+    <Compile Include="DownstreamModules\HVAC\ISSMGenInputs.vb" />
+    <Compile Include="DownstreamModules\HVAC\ISSMRun.vb" />
+    <Compile Include="DownstreamModules\HVAC\ISSMTechList.vb" />
+    <Compile Include="DownstreamModules\HVAC\ISSMTOOL.vb" />
+    <Compile Include="DownstreamModules\HVAC\ITechListBenefitLine.vb" />
+    <Compile Include="DownstreamModules\IAbstractModule.vb" />
+    <Compile Include="DownstreamModules\IM0_5_SmartAlternatorSetEfficiency.vb" />
+    <Compile Include="DownstreamModules\IM0_NonSmart_AlternatorsSetEfficiency.vb" />
+    <Compile Include="DownstreamModules\IM10.vb" />
+    <Compile Include="DownstreamModules\IM11.vb" />
+    <Compile Include="DownstreamModules\IM12.vb" />
+    <Compile Include="DownstreamModules\IM13.vb" />
+    <Compile Include="DownstreamModules\IM14.vb" />
+    <Compile Include="DownstreamModules\IM1_AverageHVACLoadDemand.vb" />
+    <Compile Include="DownstreamModules\IM2_AverageElectricalLoadDemand.vb" />
+    <Compile Include="DownstreamModules\IM3_AveragePneumaticLoadDemand.vb" />
+    <Compile Include="DownstreamModules\IM4_AirCompressor.vb" />
+    <Compile Include="DownstreamModules\IM5_SmartAlternatorSetGeneration.vb" />
+    <Compile Include="DownstreamModules\IM6.vb" />
+    <Compile Include="DownstreamModules\IM7.vb" />
+    <Compile Include="DownstreamModules\IM8.vb" />
+    <Compile Include="DownstreamModules\IM9.vb" />
+    <Compile Include="DownstreamModules\PneumaticSystem\ActuationsKey.vb" />
+    <Compile Include="DownstreamModules\PneumaticSystem\ICompressorMap.vb" />
+    <Compile Include="DownstreamModules\PneumaticSystem\IPneumaticActuationsMAP.vb" />
+    <Compile Include="DownstreamModules\PneumaticSystem\IPneumaticsAuxilliariesConfig.vb" />
+    <Compile Include="DownstreamModules\PneumaticSystem\IPneumaticUserInputsConfig.vb" />
     <Compile Include="Enumerations.vb" />
     <Compile Include="IAdvancedAuxiliaries.vb" />
     <Compile Include="IAuxiliaryEvent.vb" />
@@ -127,6 +173,7 @@
       <Name>VectoCommon</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/IAdvancedAuxiliaries.vb b/VectoCommon/AdvancedAuxiliaryInterfaces/IAdvancedAuxiliaries.vb
index 233cdb1d58..935f386c75 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/IAdvancedAuxiliaries.vb
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/IAdvancedAuxiliaries.vb
@@ -128,6 +128,9 @@ Public Interface IAdvancedAuxiliaries
 	''' <returns></returns>
 	''' <remarks></remarks>
 	Function RunStop(ByRef message As String) As Boolean
+
+    Sub ResetCalculations()
+
 End Interface
 
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index f9c211ec69..39197ddea9 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -235,6 +235,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		private Watt GetBusAuxPowerDemand(Second absTime, Second dt, NewtonMeter torquePowerTrain, NewtonMeter torqueEngine,
 			PerSecond angularSpeed, bool dryRun = false)
 		{
+			Auxiliaries.ResetCalculations();
+
 			_fcMapAdapter.AllowExtrapolation = true;
 
 			Auxiliaries.Signals.ClutchEngaged = DataBus.ClutchClosed(absTime);
-- 
GitLab