diff --git a/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs b/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs
index 0baa02cee048cb07c4dfaef5f4b76996680771a9..ec6571490d0c0c1ba72852d54d6678fafc6d5020 100644
--- a/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs
+++ b/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs
@@ -118,8 +118,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
             /// <summary>
             ///  [kW]	Supply Power input for each auxiliary defined in the .vecto file where xxx matches the ID of the corresponding Auxiliary. ID's are not case sensitive and must not contain space or special characters.
             /// </summary>
-            // todo: implement additional aux as dictionary!
-            public double AuxiliarySupplyPower { get; set; }
+            public Dictionary<string, double> AuxiliarySupplyPower { get; set; }
 
             /// <summary>
             ///  [rpm]	If <n> is defined VECTO uses that instead of the calculated engine speed value.
@@ -191,8 +190,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
             var reader = GetDataRowReader(type);
             var entries = data.Rows.Cast<DataRow>().Select(r => reader(r)).ToList();
 
-            // if cycle is timebased and time field is missing, the time field gets filled up automatically in 1Hz steps
-            if (type == CycleType.TimeBased && !data.Columns.Contains(Fields.Time))
+            // update time field in 1Hz steps, if time field is missing and cycle type is timebase
+            if (!data.Columns.Contains(Fields.Time) && type == CycleType.TimeBased)
             {
                 for (var i = 0; i < entries.Count; i++)
                     entries[i].Time = i;
@@ -273,15 +272,29 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
                 EngineSpeed = row.ParseDoubleOrGetDefault(Fields.EngineSpeed),
                 Gear = row.ParseDoubleOrGetDefault(Fields.Gear),
                 AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle),
-                WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle)
+                WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle),
+                AuxiliarySupplyPower = ReadAuxSupplyPowerColumns(row)
             };
 
-            // todo: implement additional aux as dictionary!
-            //AuxiliarySupplyPower = row.GetDouble(Fields.AuxiliarySupplyPower),
+
 
             return entry;
         }
 
+        private static Dictionary<string, double> ReadAuxSupplyPowerColumns(DataRow row)
+        {
+            var entries = new Dictionary<string, double>();
+            foreach (DataColumn c in row.Table.Columns)
+            {
+                if (c.ColumnName.StartsWith(Fields.AuxiliarySupplyPower))
+                {
+                    var auxName = c.ColumnName.Substring(Fields.AuxiliarySupplyPower.Length - 1);
+                    entries[auxName] = row.ParseDouble(c);
+                }
+            }
+            return entries;
+        }
+
         private static bool HeaderIsValidTimeBased(ICollection<string> header)
         {
             var allowedCols = new[]
@@ -314,12 +327,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
                 Gear = row.ParseDoubleOrGetDefault(Fields.Gear),
                 EngineSpeed = row.ParseDoubleOrGetDefault(Fields.EngineSpeed),
                 AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle),
-                WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle)
+                WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle),
+                AuxiliarySupplyPower = ReadAuxSupplyPowerColumns(row)
             };
 
-            // todo: implement additional aux as dictionary!
-            //AuxiliarySupplyPower = row.GetDouble(Fields.AuxiliarySupplyPower),
-
             return entry;
         }
 
@@ -363,8 +374,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
                     entry.EngineTorque = VectoMath.ConvertPowerToTorque(row.ParseDouble(Fields.EnginePower), entry.EngineSpeed);
             }
 
-            if (row.Table.Columns.Contains(Fields.AdditionalAuxPowerDemand))
-                entry.AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand);
+            entry.AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand);
+
+            entry.AuxiliarySupplyPower = ReadAuxSupplyPowerColumns(row);
 
             return entry;
         }
diff --git a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
index eeea61301b8a4f78fc8cea5e4fecc3f66290f7b2..7254988456a138d4ad8ee519c6ba9956ee37c04e 100644
--- a/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
@@ -32,17 +32,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         {
             //todo: Distance calculation and comparison!!!
             throw new NotImplementedException("Distance based Cycle is not yet implemented.");
-
-            if (Data.Entries.Count >= CurrentStep)
-                return false;
-
-            var entry = Data.Entries[CurrentStep];
-            OutPort.Request(AbsTime, Dt, entry.VehicleSpeed, entry.RoadGradient);
-
-            AbsTime += Dt;
-            CurrentStep++;
-
-            return true;
         }
         #endregion
 
diff --git a/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs
index 94b25fb317c6e4cbbe757aedde1340a9bf715862..24b1753da426fad8d3f0ae451b8d6d01e87b1c96 100644
--- a/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/EngineOnlyDrivingCycle.cs
@@ -29,10 +29,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         #region IDrivingCycle
         public bool DoSimulationStep()
         {
-            if (Data.Entries.Count >= CurrentStep)
+            if (CurrentStep >= Data.Entries.Count)
                 return false;
 
             var entry = Data.Entries[CurrentStep];
+
+            //todo: variable time steps!
+            dt = TimeSpan.FromSeconds(1);
+
             OutPort.Request(AbsTime, dt, entry.EngineTorque, entry.EngineSpeed);
             AbsTime += dt;
             CurrentStep++;
@@ -61,7 +65,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
             // for the moddata is between the last AbsTime and the current AbsTime,
             // therefore dt/2 has to be subtracted from the current AbsTime.
             // todo: document this dt/2 in a jira ticket!
-            var halfDt = new TimeSpan(dt.Ticks/2);
+            var halfDt = new TimeSpan(dt.Ticks / 2);
             writer[ModalResultField.time] = (AbsTime - halfDt).TotalSeconds;
         }
     }
diff --git a/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs b/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs
index 1f561614b3a0e6fce5555036f80559fe3e3c200f..77f0de09fd09a4990832b4f38c22f964add5678e 100644
--- a/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/TimeBasedDrivingCycle.cs
@@ -29,12 +29,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         #region IDrivingCycle
         public bool DoSimulationStep()
         {
-            if (Data.Entries.Count >= CurrentStep)
+            if (CurrentStep >= Data.Entries.Count)
                 return false;
 
             var entry = Data.Entries[CurrentStep];
 
-            dt = TimeSpan.FromSeconds(entry.Time) - AbsTime;
+            //todo: variable time steps!
+            dt = TimeSpan.FromSeconds(1);
+
             OutPort.Request(AbsTime, dt, entry.VehicleSpeed, entry.RoadGradient);
             AbsTime += dt;
             CurrentStep++;
diff --git a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
index 4bbc521bf7846a72c376ff312a05db60a97b92a1..87fd15cce0a200371688511ea6a903ec798a6e8b 100644
--- a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
+++ b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
@@ -1,12 +1,11 @@
-using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 using TUGraz.VectoCore.Models.Simulation.Impl;
-using TUGraz.VectoCore.Models.Connector.Ports;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Impl;
 using TUGraz.VectoCore.Tests.Utils;
-using EngineOnlyDrivingCycle = TUGraz.VectoCore.Models.SimulationComponent.Impl.EngineOnlyDrivingCycle;
 
 namespace TUGraz.VectoCore.Tests.Models.Simulation
 {
@@ -22,7 +21,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
             IEngineOnlyDrivingCycle cycle = new EngineOnlyDrivingCycle(container, cycleData);
 
             var outPort = new MockTnOutPort();
-            ITnInPort inPort = cycle.InShaft();
+            var inPort = cycle.InShaft();
 
             inPort.Connect(outPort);
 
@@ -33,8 +32,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
             Assert.AreEqual(0.0, outPort.AbsTime.TotalSeconds);
             Assert.AreEqual(1.0, outPort.Dt.TotalSeconds);
-            Assert.AreEqual(1500, outPort.EngineSpeed);
-            Assert.AreEqual(600, outPort.Torque);
+            Assert.AreEqual(600, outPort.EngineSpeed);
+            Assert.AreEqual(0, outPort.Torque);
 
             Assert.AreEqual(0.5, dataWriter[ModalResultField.time]);
         }
@@ -49,7 +48,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
             var outPort = new MockDriverDemandOutPort();
 
-            IDriverDemandInPort inPort = cycle.InPort();
+            var inPort = cycle.InPort();
 
             inPort.Connect(outPort);
 
@@ -76,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
             var outPort = new MockDriverDemandOutPort();
 
-            IDriverDemandInPort inPort = cycle.InPort();
+            var inPort = cycle.InPort();
 
             inPort.Connect(outPort);
 
@@ -92,5 +91,37 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
             Assert.AreEqual(0.03, outPort.Gradient);
             Assert.AreEqual(0.5, dataWriter[ModalResultField.time]);
         }
+
+        [TestMethod]
+        public void TestTimeBasedTimeFieldMissing()
+        {
+            var container = new VehicleContainer();
+
+            var cycleData = DrivingCycleData.ReadFromFileTimeBased(@"TestData\Cycles\Cycle time field missing.vdri");
+            IDrivingCycle cycle = new TimeBasedDrivingCycle(container, cycleData);
+
+            var outPort = new MockDriverDemandOutPort();
+
+            var inPort = cycle.InPort();
+
+            inPort.Connect(outPort);
+
+            var dataWriter = new TestModalDataWriter();
+            var absTime = new TimeSpan();
+            var dt = TimeSpan.FromSeconds(1);
+            var time = 0.5;
+
+            while (cycle.DoSimulationStep())
+            {
+                container.CommitSimulationStep(dataWriter);
+
+                Assert.AreEqual(absTime, outPort.AbsTime);
+                Assert.AreEqual(dt, outPort.Dt);
+                Assert.AreEqual(time, dataWriter[ModalResultField.time]);
+
+                time = time + dt.TotalSeconds;
+                absTime += dt;
+            }
+        }
     }
 }
diff --git a/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs b/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
index 168b5e30dff4a53a917c9b75ca0e3ab505877956..577290a9a33999188e0759ffcd3caae6f205c85a 100644
--- a/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
+++ b/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
@@ -84,6 +84,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
             try
             {
                 var curve = FullLoadCurve.ReadFromFile(@"TestData\Components\FullLoadCurve insufficient columns.vfld");
+                Assert.Fail("this should not be reached.");
             }
             catch (VectoException ex)
             {
@@ -112,6 +113,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
             try
             {
                 var curve = FullLoadCurve.ReadFromFile(@"TestData\Components\FullLoadCurve no header.vfld");
+                Assert.Fail("this should not be reached.");
             }
             catch (VectoException ex)
             {
@@ -130,6 +132,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
             try
             {
                 var curve = FullLoadCurve.ReadFromFile(@"TestData\Components\FullLoadCurve insufficient entries.vfld");
+                Assert.Fail("this should not be reached.");
             }
             catch (VectoException ex)
             {
diff --git a/VectoCoreTest/TestData/Cycles/Cycle time field missing.vdri b/VectoCoreTest/TestData/Cycles/Cycle time field missing.vdri
new file mode 100644
index 0000000000000000000000000000000000000000..83052339fe6c96e1210a22b1d0bb0b5dc797dbec
--- /dev/null
+++ b/VectoCoreTest/TestData/Cycles/Cycle time field missing.vdri	
@@ -0,0 +1,14 @@
+<v>,<grad>,<Padd>,<Aux_ALT1>,<Aux_ALT2>,<Aux_ALT3>
+0,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
+64,-0.020237973,6.1,0.25,0.25,0.25
\ No newline at end of file
diff --git a/VectoCoreTest/VectoCoreTest.csproj b/VectoCoreTest/VectoCoreTest.csproj
index 8d37423ed130625ad7d4fca843e0cfa78a381c63..8e9c0af4d17c34da9d070e014c5cb5c4f26f9aa1 100644
--- a/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCoreTest/VectoCoreTest.csproj
@@ -109,6 +109,9 @@
     <None Include="TestData\Components\FullLoadCurve insufficient entries.vfld">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="TestData\Cycles\Cycle time field missing.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Cycles\Coach.vdri">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>