diff --git a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
index af79547c96a06bc78eab01ec21931879caaff95d..2fd0841275b386ff32e8df03a2663d7d35816d1c 100644
--- a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
+++ b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
@@ -22,7 +22,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 		public void TestEngineOnlyDrivingCycle()
 		{
 			var data = DrivingCycleData.ReadFromFileEngineOnly(TestContext.DataRow["CycleFile"].ToString());
-			var cycle = new MockDrivingCycle(data);
+			var cycle = new MockDrivingCycle(null, data);
 			var expectedResults = ModalResults.ReadFromFile(TestContext.DataRow["ModalResultFile"].ToString());
 
 			var vehicle = new VehicleContainer();
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 			var absTime = new TimeSpan(seconds: 0, minutes: 0, hours: 0);
 			var dt = new TimeSpan(seconds: 1, minutes: 0, hours: 0);
 
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 
 			var i = 0;
 			var results = new[] {
@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 		[TestMethod]
 		public void AssembleEngineOnlyPowerTrain()
 		{
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 
 			var vehicleContainer = new VehicleContainer();
 
diff --git a/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCoreTest/Models/Simulation/AuxTests.cs
index a694317939cb7e28a6427a43cbdc2b82537ac506..4536521ecbd0388e669e45055d5002d674781398 100644
--- a/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -12,10 +12,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 	[TestClass]
 	public class AuxTests
 	{
-		private const string EngineFile = @"TestData\Components\24t Coach.veng";
-
 		[TestMethod]
-		public void Test_Aux_WriteModFileSumFile()
+		public void Aux_WriteModFileSumFile1()
 		{
 			var sumWriter = new SummaryFileWriter(@"24t Coach.vsum");
 			var jobContainer = new JobContainer(sumWriter);
@@ -35,11 +33,52 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			Assert.Inconclusive();
 		}
 
+		[TestMethod]
+		public void AuxWriteModFileSumFile()
+		{
+			var dataWriter = new MockModalDataWriter();
+			dataWriter.AddAuxiliary("ALT1");
+			dataWriter.AddAuxiliary("CONSTANT");
+
+			var sumWriter = new TestSumWriter();
+			var container = new VehicleContainer(dataWriter, sumWriter);
+			var data = DrivingCycleData.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri",
+				DrivingCycleData.CycleType.TimeBased);
+
+			var cycle = new MockDrivingCycle(container, data);
+			var port = new MockTnOutPort();
+
+			var aux = new Auxiliary(container);
+			aux.InPort().Connect(port);
+
+			var auxData = MappingAuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
+
+			aux.AddMapping("ALT1", cycle, auxData);
+			aux.AddDirect(cycle);
+			var constPower = 1200.SI<Watt>();
+			aux.AddConstant("CONSTANT", constPower);
+
+			var speed = 578.22461991.RPMtoRad();
+			var torque = 500.SI<NewtonMeter>();
+			var t = new TimeSpan();
+
+			for (var i = 0; i < data.Entries.Count; i++) {
+				aux.OutPort().Request(t, t, torque, speed);
+				cycle.CommitSimulationStep(dataWriter);
+			}
+
+			container.FinishSimulation();
+
+			sumWriter.Finish();
+
+			Assert.Inconclusive();
+		}
+
 
 		[TestMethod]
-		public void Test_AuxConstant()
+		public void AuxConstant()
 		{
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 			var sumWriter = new TestSumWriter();
 			var container = new VehicleContainer(dataWriter, sumWriter);
 			var port = new MockTnOutPort();
@@ -49,48 +88,45 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var constPower = 1200.SI<Watt>();
 			aux.AddConstant("CONSTANT", constPower);
 
-			var speed = 1400.RPMtoRad();
+			var speed = 2358.RPMtoRad();
 			var torque = 500.SI<NewtonMeter>();
 			var t = new TimeSpan();
 			aux.OutPort().Request(t, t, torque, speed);
 			Assert.AreEqual(speed, port.AngularVelocity);
 			var newTorque = torque + constPower / speed;
-			// 8.18511... = 1200/(1400*2*math.pi/60)
-			AssertHelper.AreRelativeEqual(port.Torque - newTorque, 8.1851113590118.SI<NewtonMeter>());
+			AssertHelper.AreRelativeEqual(port.Torque, newTorque);
 
-			speed = 1400.RPMtoRad();
+			speed = 2358.RPMtoRad();
 			torque = 1500.SI<NewtonMeter>();
 			aux.OutPort().Request(t, t, torque, speed);
 			Assert.AreEqual(speed, port.AngularVelocity);
 			newTorque = torque + constPower / speed;
-			// 8.18511... = 1200/(1400*2*math.pi/60)
-			AssertHelper.AreRelativeEqual(port.Torque - newTorque, 8.1851113590118.SI<NewtonMeter>());
+			AssertHelper.AreRelativeEqual(port.Torque, newTorque);
 
-			speed = 900.RPMtoRad();
+			speed = 1500.RPMtoRad();
 			torque = 1500.SI<NewtonMeter>();
 			aux.OutPort().Request(t, t, torque, speed);
 			Assert.AreEqual(speed, port.AngularVelocity);
 			newTorque = torque + constPower / speed;
-			// 12.73239... = 1200/(900*2*math.pi/60)
-			AssertHelper.AreRelativeEqual(port.Torque - newTorque, 12.732395447351628.SI<NewtonMeter>());
+			AssertHelper.AreRelativeEqual(port.Torque, newTorque);
 		}
 
 		[TestMethod]
-		public void Test_AuxDirect()
+		public void AuxDirect()
 		{
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 			var sumWriter = new TestSumWriter();
 			var container = new VehicleContainer(dataWriter, sumWriter);
 			var data = DrivingCycleData.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri",
 				DrivingCycleData.CycleType.TimeBased);
-			var cycle = new MockDrivingCycle(data);
+			var cycle = new MockDrivingCycle(container, data);
 			var port = new MockTnOutPort();
 			var aux = new Auxiliary(container);
 			aux.InPort().Connect(port);
 
 			aux.AddDirect(cycle);
 
-			var speed = 1400.RPMtoRad();
+			var speed = 2358.RPMtoRad();
 			var torque = 500.SI<NewtonMeter>();
 
 			var t = new TimeSpan();
@@ -101,92 +137,171 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 				Assert.AreEqual(speed, port.AngularVelocity);
 				var newTorque = torque + e.SI<Watt>() / speed;
 				AssertHelper.AreRelativeEqual(port.Torque, newTorque);
+
+				cycle.CommitSimulationStep(null);
 			}
 		}
 
 		[TestMethod]
-		public void Test_AuxMapping()
+		public void AuxAllCombined()
 		{
-			const string auxId = "ALT1";
+			var dataWriter = new MockModalDataWriter();
+			dataWriter.AddAuxiliary("ALT1");
+			dataWriter.AddAuxiliary("CONSTANT");
 
-			var dataWriter = new TestModalDataWriter();
+			var sumWriter = new TestSumWriter();
+			var container = new VehicleContainer(dataWriter, sumWriter);
+			var data = DrivingCycleData.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri",
+				DrivingCycleData.CycleType.TimeBased);
+			// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
+			// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
+			// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
+
+			var cycle = new MockDrivingCycle(container, data);
+			var port = new MockTnOutPort();
+
+			var aux = new Auxiliary(container);
+			aux.InPort().Connect(port);
+
+			var auxData = MappingAuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
+			// ratio = 4.078
+			// efficiency_engine = 0.96
+			// efficiency_supply = 0.98
+
+			aux.AddMapping("ALT1", cycle, auxData);
+			aux.AddDirect(cycle);
+			var constPower = 1200.SI<Watt>();
+			aux.AddConstant("CONSTANT", constPower);
+
+			var speed = 578.22461991.RPMtoRad(); // = 2358 (nAuxiliary) * ratio
+			var torque = 500.SI<NewtonMeter>();
+			var t = new TimeSpan();
+			var expected = new[] {
+				1200 + 6100 + 72.9166666666667, // = 1000 * 0.07 (nAuxiliary=2358 and psupply=0) / 0.98 (efficiency_supply)
+				1200 + 3100 + 677.083333333333, // = 1000 * 0.65 (nAuxiliary=2358 and psupply=0.38) / 0.98 (efficiency_supply)
+				1200 + 2300 + 822.916666666667, // = 1000 * 0.79 (nAuxiliary=2358 and psupply=0.49) / 0.98 (efficiency_supply)
+				1200 + 4500 + 1031.25, // = ...
+				1200 + 6100 + 1166.66666666667,
+				1200 + 6100 + 1656.25,
+				1200 + 6100 + 2072.91666666667,
+				1200 + 6100 + 2510.41666666667,
+				1200 + 6100 + 2979.16666666667,
+				1200 + 6100 + 3322.91666666667,
+				1200 + 6100 + 3656.25
+			};
+
+			foreach (var e in expected) {
+				aux.OutPort().Request(t, t, torque, speed);
+				Assert.AreEqual(speed, port.AngularVelocity);
+
+				AssertHelper.AreRelativeEqual(port.Torque, torque + e.SI<Watt>() / speed);
+
+				cycle.CommitSimulationStep(null);
+			}
+		}
+
+		[TestMethod]
+		public void AuxMapping()
+		{
+			var auxId = "ALT1";
+			var dataWriter = new MockModalDataWriter();
 			dataWriter.AddAuxiliary(auxId);
 
 			var sumWriter = new TestSumWriter();
 			var container = new VehicleContainer(dataWriter, sumWriter);
 			var data = DrivingCycleData.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri",
 				DrivingCycleData.CycleType.TimeBased);
-			var cycle = new MockDrivingCycle(data);
+			// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
+			// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
+			// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
+
+			var cycle = new MockDrivingCycle(container, data);
 			var port = new MockTnOutPort();
 
 			var aux = new Auxiliary(container);
 			aux.InPort().Connect(port);
 
 			var auxData = MappingAuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
+			// ratio = 4.078
+			// efficiency_engine = 0.96
+			// efficiency_supply = 0.98
 
 			aux.AddMapping(auxId, cycle, auxData);
 
-			var speed = 1400.RPMtoRad();
+			var speed = 578.22461991.RPMtoRad(); // = 2358 (nAuxiliary) * ratio
 			var torque = 500.SI<NewtonMeter>();
 			var t = new TimeSpan();
-			aux.OutPort().Request(t, t, torque, speed);
+			var expected = new[] {
+				72.9166666666667, // = 1000 * 0.07 (pmech from aux file at nAuxiliary=2358 and psupply=0) / 0.98 (efficiency_supply)
+				677.083333333333, // = 1000 * 0.65 (nAuxiliary=2358 and psupply=0.38) / 0.98
+				822.916666666667, // = 1000 * 0.79 (nAuxiliary=2358 and psupply=0.49) / 0.98
+				1031.25, // = ...
+				1166.66666666667,
+				1656.25,
+				2072.91666666667,
+				2510.41666666667,
+				2979.16666666667,
+				3322.91666666667,
+				3656.25
+			};
 
-			Assert.AreEqual(speed, port.AngularVelocity);
-			Assert.IsTrue(port.Torque > torque);
+			foreach (var e in expected) {
+				aux.OutPort().Request(t, t, torque, speed);
+				Assert.AreEqual(speed, port.AngularVelocity);
 
-			//todo: test different torques and speeds
-			//todo: test different points in cycle
+				AssertHelper.AreRelativeEqual(port.Torque, torque + e.SI<Watt>() / speed);
 
-			Assert.Inconclusive();
+				cycle.CommitSimulationStep(null);
+			}
 		}
 
 		[TestMethod]
-		public void Test_AuxColumnMissing()
+		public void AuxColumnMissing()
 		{
 			Assert.Inconclusive();
 		}
 
 		[TestMethod]
-		public void Test_AuxFileMissing()
+		public void AuxFileMissing()
 		{
 			Assert.Inconclusive();
 		}
 
 		[TestMethod]
-		public void Test_AuxReadJobFile()
+		public void AuxReadJobFile()
 		{
 			Assert.Inconclusive();
 		}
 
 
 		[TestMethod]
-		public void Test_AuxDeclaration()
+		public void AuxDeclaration()
 		{
 			Assert.Inconclusive();
 		}
 
 
 		[TestMethod]
-		public void Test_AuxDeclarationWrongConfiguration()
+		public void AuxDeclarationWrongConfiguration()
 		{
 			Assert.Inconclusive();
 		}
 
 
 		[TestMethod]
-		public void Test_AuxEngineering()
+		public void AuxEngineering()
 		{
 			Assert.Inconclusive();
 		}
 
 		[TestMethod]
-		public void Test_AuxCycleAdditionalFieldMissing()
+		public void AuxCycleAdditionalFieldMissing()
 		{
 			Assert.Inconclusive();
 		}
 
 		[TestMethod]
-		public void Test_AuxCycleAdditionalFieldOnly()
+		public void AuxCycleAdditionalFieldOnly()
 		{
 			Assert.Inconclusive();
 		}
diff --git a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
index 17c51d47f57297ddfde2a22e7d501b8c67d0d615..7b82190335721702f227b24a201aa18b774a659b 100644
--- a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
+++ b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
@@ -15,7 +15,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 		[TestMethod]
 		public void TestEngineOnly()
 		{
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 			var sumWriter = new TestSumWriter();
 			var container = new VehicleContainer(dataWriter, sumWriter);
 
@@ -67,7 +67,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			response = cycle.OutPort().Request(absTime, dt);
 			Assert.IsInstanceOfType(response, typeof(ResponseSuccess));
 
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 			container.CommitSimulationStep(absTime.TotalSeconds, dt.TotalSeconds);
 
 			Assert.AreEqual(absTime, outPort.AbsTime);
@@ -88,7 +88,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 				response = cycle.OutPort().Request(absTime, dt);
 				Assert.IsInstanceOfType(response, typeof(ResponseSuccess));
 
-				dataWriter = new TestModalDataWriter();
+				dataWriter = new MockModalDataWriter();
 				container.CommitSimulationStep(absTime.TotalSeconds, dt.TotalSeconds);
 
 				Assert.AreEqual(absTime, outPort.AbsTime);
@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 		[TestMethod]
 		public void Test_TimeBased_TimeFieldMissing()
 		{
-			var container = new VehicleContainer(new TestModalDataWriter(), new TestSumWriter());
+			var container = new VehicleContainer(new MockModalDataWriter(), new TestSumWriter());
 
 			var cycleData = DrivingCycleData.ReadFromFileTimeBased(@"TestData\Cycles\Cycle time field missing.vdri");
 			var cycle = new TimeBasedDrivingCycle(container, cycleData);
@@ -145,7 +145,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 			inPort.Connect(outPort);
 
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 			var absTime = new TimeSpan();
 			var dt = TimeSpan.FromSeconds(1);
 
diff --git a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
index 769647c0e1558768079ca4fa3c266aedd464d04a..3a98140c76f4fe394b6b9b60c1a5c4b0a9946ea6 100644
--- a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
@@ -88,7 +88,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 
 			var torque = 0.SI<NewtonMeter>();
 			var engineSpeed = 600.RPMtoRad();
-			var dataWriter = new TestModalDataWriter();
+			var dataWriter = new MockModalDataWriter();
 
 			for (var i = 0; i < 21; i++) {
 				port.Request(absTime, dt, torque, engineSpeed);
@@ -157,7 +157,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var requestPort = gearbox.OutPort();
 
 			//var modalData = new ModalDataWriter(string.Format("load_jump_{0}.csv", TestContext.DataRow["TestName"].ToString()));
-			var modalData = new TestModalDataWriter();
+			var modalData = new MockModalDataWriter();
 
 			var idlePower = Double.Parse(TestContext.DataRow["initialIdleLoad"].ToString()).SI<Watt>();
 
diff --git a/VectoCoreTest/TestData/Components/24t_Coach_ALT.vaux b/VectoCoreTest/TestData/Components/24t_Coach_ALT.vaux
index 52243f51e26af329ad8edf8b74a799fc7172e601..2eaf05a9a32d7c3536482e0bc6473ee83980dfa1 100644
--- a/VectoCoreTest/TestData/Components/24t_Coach_ALT.vaux
+++ b/VectoCoreTest/TestData/Components/24t_Coach_ALT.vaux
@@ -3,7 +3,7 @@ Transmission ration to engine rpm [-]
 Efficiency to engine [-]
 0.96
 Efficiency auxiliary to supply [-]
-1
+0.98
 Auxiliary speed [rpm], Mechanical power [kW],Supply power [kW]
 1415,0.07,0
 1415,0.87,0.53
diff --git a/VectoCoreTest/TestData/Cycles/Coach time based short.vdri b/VectoCoreTest/TestData/Cycles/Coach time based short.vdri
index a6c6cf228eb65cff256d61eedb9dbb08e6b2caea..767787f034cc532b1b844a1fa625dbe8ca986d77 100644
--- a/VectoCoreTest/TestData/Cycles/Coach time based short.vdri	
+++ b/VectoCoreTest/TestData/Cycles/Coach time based short.vdri	
@@ -1,8 +1,12 @@
 <t> , <v> , <grad>       , <n> , <Padd> , <Aux_ALT1> , <Aux_ALT2> , <Aux_ALT3>
-0   , 0   , -0.020237973 , 2   , 6.1    , 0.25       , 0.25       , 0.25
-1   , 64  , -0.020237973 , 0   , 3.1    , 0.25       , 0.25       , 0.25
-2   , 64  , -0.020237973 , 0   , 2.3    , 0.25       , 0.25       , 0.25
-3   , 64  , -0.020237973 , 0   , 4.5    , 0.25       , 0.25       , 0.25
-4   , 64  , -0.020237973 , 0   , 6.1    , 0.25       , 0.25       , 0.25
-5   , 64  , -0.020237973 , 0   , 6.1    , 0.25       , 0.25       , 0.25
-6   , 64  , -0.020237973 , 0   , 6.1    , 0.25       , 0.25       , 0.25
+0   , 0   , -0.020237973 , 2   , 6.1    , 0          , 0.25       , 0.25
+1   , 64  , -0.020237973 , 0   , 3.1    , 0.3724     , 0.25       , 0.25
+2   , 64  , -0.020237973 , 0   , 2.3    , 0.4802     , 0.25       , 0.25
+3   , 64  , -0.020237973 , 0   , 4.5    , 0.6272     , 0.25       , 0.25
+4   , 64  , -0.020237973 , 0   , 6.1    , 0.735      , 0.25       , 0.25
+5   , 64  , -0.020237973 , 0   , 6.1    , 1.0976     , 0.25       , 0.25
+6   , 64  , -0.020237973 , 0   , 6.1    , 1.3916     , 0.25       , 0.25
+7   , 64  , -0.020237973 , 0   , 6.1    , 1.6464     , 0.25       , 0.25
+8   , 64  , -0.020237973 , 0   , 6.1    , 1.911      , 0.25       , 0.25
+9   , 64  , -0.020237973 , 0   , 6.1    , 2.0776     , 0.25       , 0.25
+10  , 64  , -0.020237973 , 0   , 6.1    , 2.254      , 0.25       , 0.25
\ No newline at end of file
diff --git a/VectoCoreTest/Utils/AssertHelper.cs b/VectoCoreTest/Utils/AssertHelper.cs
index 1a3fd220304af4aee1fc62659ee723e6dd4c73b3..2954a34e2b4601b612edf0f5f794af3cb8c820f3 100644
--- a/VectoCoreTest/Utils/AssertHelper.cs
+++ b/VectoCoreTest/Utils/AssertHelper.cs
@@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 						toleranceFactor));
 				return;
 			}
-			Assert.IsTrue(Math.Abs(expected / actual) < 1 + toleranceFactor,
+			Assert.IsTrue(Math.Abs(expected / actual - 1) < toleranceFactor,
 				string.Format("AssertHelper.AreRelativeEqual failed. Expected: {0}, Actual: {1}, Tolerance: {2}", expected, actual,
 					toleranceFactor));
 		}
diff --git a/VectoCoreTest/Utils/MockAuxiliaryDemand.cs b/VectoCoreTest/Utils/MockAuxiliaryDemand.cs
index 10d41fdc2c2b127f9ed61ae10f6bda4ce92d4b3f..75f2d2095bef7d00eb276854f1e889e96807f179 100644
--- a/VectoCoreTest/Utils/MockAuxiliaryDemand.cs
+++ b/VectoCoreTest/Utils/MockAuxiliaryDemand.cs
@@ -1,26 +1,29 @@
 using System.Collections.Generic;
+using TUGraz.VectoCore.Models.Simulation;
+using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Tests.Utils
 {
-	public class MockDrivingCycle : IDrivingCycleCockpit
+	public class MockDrivingCycle : VectoSimulationComponent, IDrivingCycleCockpit
 	{
 		private List<DrivingCycleData.DrivingCycleEntry>.Enumerator _left;
 		private List<DrivingCycleData.DrivingCycleEntry>.Enumerator _right;
 
-		public MockDrivingCycle(DrivingCycleData data)
+		public MockDrivingCycle(IVehicleContainer container, DrivingCycleData data) : base(container)
 		{
 			_left = data.Entries.GetEnumerator();
 			_right = data.Entries.GetEnumerator();
+			_left.MoveNext();
+			_right.MoveNext();
 			_right.MoveNext();
 		}
 
+
 		public CycleData CycleData()
 		{
-			_left.MoveNext();
-			_right.MoveNext();
 			return new CycleData {
 				AbsTime = 0.SI<Second>(),
 				AbsDistance = 0.SI<Meter>(),
@@ -28,5 +31,11 @@ namespace TUGraz.VectoCore.Tests.Utils
 				RightSample = _right.Current
 			};
 		}
+
+		public override void CommitSimulationStep(IModalDataWriter writer)
+		{
+			_left.MoveNext();
+			_right.MoveNext();
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Utils/TestModalDataWriter.cs b/VectoCoreTest/Utils/MockModalDataWriter.cs
similarity index 92%
rename from VectoCoreTest/Utils/TestModalDataWriter.cs
rename to VectoCoreTest/Utils/MockModalDataWriter.cs
index 7cf0b5e9b3a8042b392945f7d811a0eab5242862..dd26b575616199e97aa84cc015d615825d400f64 100644
--- a/VectoCoreTest/Utils/TestModalDataWriter.cs
+++ b/VectoCoreTest/Utils/MockModalDataWriter.cs
@@ -2,18 +2,16 @@ using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
-using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.Models.Simulation.Data;
-using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Tests.Utils
 {
 	/// <summary>
 	///     Fake Data Writer Class for Tests.
 	/// </summary>
-	internal class TestModalDataWriter : IModalDataWriter
+	internal class MockModalDataWriter : IModalDataWriter
 	{
-		public TestModalDataWriter()
+		public MockModalDataWriter()
 		{
 			Data = new ModalResults();
 			CurrentRow = Data.NewRow();
diff --git a/VectoCoreTest/VectoCoreTest.csproj b/VectoCoreTest/VectoCoreTest.csproj
index 8e50161200231dd0a3cee92a9ee529689d4f9db6..5764a83a1ccf0dda816dc5c1f413532c23e6bfb7 100644
--- a/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCoreTest/VectoCoreTest.csproj
@@ -104,7 +104,7 @@
     <Compile Include="Utils\DummyGearbox.cs" />
     <Compile Include="Utils\SITest.cs" />
     <Compile Include="Utils\DelauneyMapTest.cs" />
-    <Compile Include="Utils\TestModalDataWriter.cs" />
+    <Compile Include="Utils\MockModalDataWriter.cs" />
     <Compile Include="Utils\DoubleExtensionMethodTest.cs" />
     <Compile Include="Utils\VectoMathTest.cs" />
   </ItemGroup>