diff --git a/VectoCore/Models/Simulation/Data/IModalDataWriter.cs b/VectoCore/Models/Simulation/Data/IModalDataWriter.cs
index 66753ce86ce46a85ca08e091f21a16285c0e3a05..631e0414f6a76ff85546c3086ce70afad647cab9 100644
--- a/VectoCore/Models/Simulation/Data/IModalDataWriter.cs
+++ b/VectoCore/Models/Simulation/Data/IModalDataWriter.cs
@@ -14,7 +14,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
         /// <summary>
         /// Commits the data of the current simulation step.
         /// </summary>
-        void CommitSimulationStep(TimeSpan absTime, TimeSpan simulationInterval);
+        void CommitSimulationStep();
 
         void Finish();
     }
diff --git a/VectoCore/Models/Simulation/Data/ModalDataWriter.cs b/VectoCore/Models/Simulation/Data/ModalDataWriter.cs
index ee53ebdb23d6a2843a5a3d2e8eb24f99f7c02438..8d111757aa8932493cd9268c57c9807eb502bd30 100644
--- a/VectoCore/Models/Simulation/Data/ModalDataWriter.cs
+++ b/VectoCore/Models/Simulation/Data/ModalDataWriter.cs
@@ -19,10 +19,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
         public string FileName { get; set; }
 
-		public void CommitSimulationStep(TimeSpan absTime, TimeSpan simulationInterval)
+		public void CommitSimulationStep()
 		{
-			this[ModalResultField.time] = (absTime - TimeSpan.FromTicks(simulationInterval.Ticks / 2)).TotalSeconds;
-			this[ModalResultField.simulationInterval] = simulationInterval.TotalSeconds;
             Data.Rows.Add(CurrentRow);
             CurrentRow = Data.NewRow();
         }
diff --git a/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs b/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs
index 25512f938d3e95ec44f066e918dbb4edd03fa088..cd9fc224d589dfd17d341374214591694530eed6 100644
--- a/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs
+++ b/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs
@@ -353,7 +353,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
                 if (row.Field<string>(Fields.EnginePower).Equals("<DRAG>"))
                     entry.Drag = true;
                 else
-                    entry.EngineTorque = VectoMath.ConvertPowerToTorque(row.ParseDouble(Fields.EnginePower), entry.EngineSpeed);
+                    entry.EngineTorque = VectoMath.ConvertPowerRpmToTorque(row.ParseDouble(Fields.EnginePower), entry.EngineSpeed);
             }
 
             if (row.Table.Columns.Contains(Fields.AdditionalAuxPowerDemand))
diff --git a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index 57f6fea7d38991f19a8abc7b1628133602bbd7d3..9e8a94b00cb3d309e9a1ad62d0a6cc3b71b1550e 100644
--- a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -35,7 +35,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
             public double EnginePower { get; set; }
             public double EngineSpeed { get; set; }
             public double EnginePowerLoss { get; set; }
-			public double FullLoadPower { get; set; }
+			public double StationaryFullLoadPower { get; set; }
+			public double DynamicFullLoadPower { get; set; }
 			public double FullLoadTorque { get; set; }
 			public double FullDragPower { get; set; }
 			public double FullDragTorque { get; set; }
@@ -117,11 +118,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         {
             writer[ModalResultField.PaEng] = _currentState.EnginePowerLoss;
 	        writer[ModalResultField.Pe_drag] = _currentState.FullDragPower;
-	        writer[ModalResultField.Pe_full] = _currentState.FullLoadPower;
+	        writer[ModalResultField.Pe_full] = _currentState.StationaryFullLoadPower;
 	        writer[ModalResultField.Pe_eng] = _currentState.EnginePower;
 			
 			writer[ModalResultField.Tq_drag] = _currentState.FullDragTorque;
 			writer[ModalResultField.Tq_full] = _currentState.FullLoadTorque;
+	        writer[ModalResultField.Tq_eng] = _currentState.EngineTorque;
 			writer[ModalResultField.n] = _currentState.EngineSpeed;
             _previousState = _currentState;
             _currentState = new EngineState();
@@ -130,6 +132,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         public void Request(TimeSpan absTime, TimeSpan dt, double torque, double engineSpeed)
         {
             _currentState.EngineSpeed = engineSpeed;
+	        
             _currentState.AbsTime = absTime;
 
             var requestedPower = VectoMath.ConvertRpmTorqueToPower(engineSpeed, torque);
@@ -147,10 +150,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			_currentState.FullDragTorque = _data.GetFullLoadCurve(currentGear).DragLoadStationaryTorque(engineSpeed);
 			_currentState.FullDragPower = VectoMath.ConvertRpmTorqueToPower(engineSpeed, _currentState.FullDragTorque);
 
-			//_currentState.FullLoadPower = FullLoadPowerDyamic(currentGear, engineSpeed);
-			//_currentState.FullDragPower = _data.GetFullLoadCurve(currentGear).DragLoadStationaryPower(engineSpeed);
-
-            _currentState.FullLoadPower = FullLoadPowerDyamic(currentGear, engineSpeed);
+	        ComputeFullLoadPower(currentGear, engineSpeed);
 
             ValidatePowerDemand(requestedEnginePower);
 
@@ -159,6 +159,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
             UpdateEngineState(requestedEnginePower);
 
 	        _currentState.EnginePower = requestedEnginePower + _currentState.EnginePowerLoss;
+			_currentState.EngineTorque = VectoMath.ConvertPowerRpmToTorque(_currentState.EnginePower, _currentState.EngineSpeed);
         }
 
         protected void ValidatePowerDemand(double requestedEnginePower)
@@ -167,7 +168,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
             {
                 throw new VectoSimulationException(String.Format("t: {0}  P_engine_drag > 0! n: {1} [1/min] ", _currentState.AbsTime, _currentState.EngineSpeed));
             }
-			if (_currentState.FullLoadPower <= 0 && requestedEnginePower > 0)
+			if (_currentState.DynamicFullLoadPower <= 0 && requestedEnginePower > 0)
             {
                 throw new VectoSimulationException(String.Format("t: {0}  P_engine_full < 0! n: {1} [1/min] ", _currentState.AbsTime, _currentState.EngineSpeed));
             }
@@ -175,13 +176,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
         protected double LimitEnginePower(double requestedEnginePower)
         {
-			if (requestedEnginePower > _currentState.FullLoadPower)
+			if (requestedEnginePower > _currentState.DynamicFullLoadPower)
             {
-				if (requestedEnginePower / _currentState.FullLoadPower > MaxPowerExceededThreshold)
+				if (requestedEnginePower / _currentState.DynamicFullLoadPower > MaxPowerExceededThreshold)
                 {
                     _enginePowerCorrections.Add(_currentState.AbsTime);
-					Log.WarnFormat("t: {0}  requested power > P_engine_full * 1.05 - corrected. P_request: {1}  P_engine_full: {2}", _currentState.AbsTime, requestedEnginePower, _currentState.FullLoadPower);
-					return _currentState.FullLoadPower;
+					Log.WarnFormat("t: {0}  requested power > P_engine_full * 1.05 - corrected. P_request: {1}  P_engine_full: {2}", _currentState.AbsTime, requestedEnginePower, _currentState.DynamicFullLoadPower);
+					return _currentState.DynamicFullLoadPower;
                 }
             }
 			else if (requestedEnginePower < _currentState.FullDragPower)
@@ -201,7 +202,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         {
             if (requestedEnginePower < -ZeroThreshold)
             {
-				_currentState.OperationMode = IsFullLoad(requestedEnginePower, _currentState.FullLoadPower)
+				_currentState.OperationMode = IsFullLoad(requestedEnginePower, _currentState.DynamicFullLoadPower)
                     ? EngineOperationMode.FullLoad
                     : EngineOperationMode.Load;
             }
@@ -225,13 +226,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
             return retVal;
         }
 
-        protected double FullLoadPowerDyamic(uint gear, double rpm)
+        protected void ComputeFullLoadPower(uint gear, double rpm)
         {
-            var staticFullLoadPower = _data.GetFullLoadCurve(gear).FullLoadStationaryPower(rpm);
+			//_currentState.StationaryFullLoadPower = _data.GetFullLoadCurve(gear).FullLoadStationaryPower(rpm);
+	        _currentState.FullLoadTorque = _data.GetFullLoadCurve(gear).FullLoadStationaryTorque(rpm);
+	        _currentState.StationaryFullLoadPower = VectoMath.ConvertRpmTorqueToPower(rpm, _currentState.FullLoadTorque);
+
             var pt1 = _data.GetFullLoadCurve(gear).PT1(rpm);
 
-            return Math.Min((1 / (pt1 + 1)) * (staticFullLoadPower + pt1 * _previousState.EnginePower),
-                staticFullLoadPower);
+			_currentState.DynamicFullLoadPower = Math.Min((1 / (pt1 + 1)) * (_currentState.StationaryFullLoadPower + pt1 * _previousState.EnginePower),
+				_currentState.StationaryFullLoadPower);
         }
 
         protected bool IsFullLoad(double requestedPower, double maxPower)
diff --git a/VectoCore/Utils/VectoMath.cs b/VectoCore/Utils/VectoMath.cs
index 75c063ecab6d66b4b02abf9f50cd1de407b78dcc..99ec613752a4ae59f2e1440d595d7af07d55eb38 100644
--- a/VectoCore/Utils/VectoMath.cs
+++ b/VectoCore/Utils/VectoMath.cs
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.Utils
 			return (2.0 * Math.PI / 60.0) * torque * rpm;
 		}
 
-		public static double ConvertPowerToTorque(double power, double rpm)
+		public static double ConvertPowerRpmToTorque(double power, double rpm)
 		{
 			return power / ((2.0 * Math.PI / 60.0) * rpm);
 		}
diff --git a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
index 1fdbc85835231294ce34c561c5370f4162d354c9..8b90c5871d776b58782163019f29bf4fa193ae1a 100644
--- a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
+++ b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
@@ -29,7 +29,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 			var dt = TimeSpan.FromSeconds(1);
 
 
-			gearbox.Request(absTime, dt, VectoMath.ConvertPowerToTorque(2329.973, 644.4445), 644.4445);
+			gearbox.Request(absTime, dt, VectoMath.ConvertPowerRpmToTorque(2329.973, 644.4445), 644.4445);
 
 			foreach (var sc in vehicleContainer.SimulationComponents())
 			{
diff --git a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
index 286750e2de77b9660d54bbcbbfcc3df447f5fe3f..44128abd1e854e74b0b9e5586f260cf7ffeaf63a 100644
--- a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
@@ -83,7 +83,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
             }
 
 	        engineSpeed = 644.4445;
-            port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(2329.973, engineSpeed), engineSpeed);
+            port.Request(absTime, dt, VectoMath.ConvertPowerRpmToTorque(2329.973, engineSpeed), engineSpeed);
             engine.CommitSimulationStep(dataWriter);
 
 			Assert.AreEqual(1152.40304, dataWriter.GetDouble(ModalResultField.PaEng), 0.001);
@@ -100,7 +100,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 	        }
 
 			engineSpeed = 869.7512;
-			port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(7984.56, engineSpeed), engineSpeed);
+			port.Request(absTime, dt, VectoMath.ConvertPowerRpmToTorque(7984.56, engineSpeed), engineSpeed);
 			engine.CommitSimulationStep(dataWriter);
 
 
@@ -109,7 +109,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			absTime += dt;
 
 			engineSpeed = 644.4445;
-			port.Request(absTime, dt, VectoMath.ConvertPowerToTorque(7984.56, engineSpeed), engineSpeed);
+			port.Request(absTime, dt, VectoMath.ConvertPowerRpmToTorque(7984.56, engineSpeed), engineSpeed);
 			engine.CommitSimulationStep(dataWriter);
 			absTime += dt;
 
diff --git a/VectoCoreTest/Utils/TestModalDataWriter.cs b/VectoCoreTest/Utils/TestModalDataWriter.cs
index 70f9d1a9388d0153492135947c9d7d63096e983d..fc36269512b74b9e0aee8f4bfb0a40bf31b467b2 100644
--- a/VectoCoreTest/Utils/TestModalDataWriter.cs
+++ b/VectoCoreTest/Utils/TestModalDataWriter.cs
@@ -19,12 +19,17 @@ namespace TUGraz.VectoCore.Tests.Utils
             CurrentRow = Data.NewRow();
         }
 
+	    public void CommitSimulationStep()
+	    {
+			Data.Rows.Add(CurrentRow);
+			CurrentRow = Data.NewRow();		    
+	    }
+
 		public void CommitSimulationStep(TimeSpan absTime, TimeSpan simulationInterval)
 		{
 			CurrentRow[ModalResultField.time.GetName()] = (absTime - TimeSpan.FromTicks(simulationInterval.Ticks / 2)).TotalSeconds;
 			CurrentRow[ModalResultField.simulationInterval.GetName()] = simulationInterval.TotalSeconds;
-            Data.Rows.Add(CurrentRow);
-            CurrentRow = Data.NewRow();
+			CommitSimulationStep();
         }
 
         public void Finish()