diff --git a/VectoCore/Models/Simulation/Data/ISummaryDataWriter.cs b/VectoCore/Models/Simulation/Data/ISummaryDataWriter.cs
index a86af5ca9bf3f9fc5c8f1ba9f4f79599f9deab73..a9db518834a22bfac44297234e33a9cc96657a16 100644
--- a/VectoCore/Models/Simulation/Data/ISummaryDataWriter.cs
+++ b/VectoCore/Models/Simulation/Data/ISummaryDataWriter.cs
@@ -2,7 +2,18 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 {
 	public interface ISummaryDataWriter
 	{
+		/// <summary>
+		/// Writes a single sum entry for the given modaldata of the job.
+		/// </summary>
+		/// <param name="data">The modal data.</param>
+		/// <param name="jobFileName">Name of the job file.</param>
+		/// <param name="jobName">Name of the job.</param>
+		/// <param name="cycleFileName">Name of the cycle file.</param>
 		void Write(IModalDataWriter data, string jobFileName, string jobName, string cycleFileName);
+
+		/// <summary>
+		/// Writes the data to the sum file.
+		/// </summary>
 		void Finish();
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs b/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs
index 234677871d2d8cb507c8bf60762cd43377cc393d..639963b61668cf02da59d06b394439c242061fda 100644
--- a/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs
+++ b/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
 using System.Data;
 using System.Linq;
 using TUGraz.VectoCore.Utils;
@@ -133,10 +132,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 				}
 			}
 
-
 			row["pStop [%]"] = 100.0 * timeSum / (double)data.Compute("Max(time)", "");
 
-			_table.ImportRow(row);
+			_table.Rows.Add(row);
 		}
 
 		public void Finish()
diff --git a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
index b93e57be160037941b678de2aaa114bdd8e09a6f..885dfd37107db9cdf8de33c3786c139c2b2ce52a 100644
--- a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
+++ b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.IO;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -29,7 +30,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			for (var i = 0; i < data.Cycles.Count; i++) {
 				var cycleFile = data.Cycles[i];
 				var jobName = string.Format("{0}-{1}", jobNumber, i);
-				var modFileName = string.Format("{0}_{1}.vmod", data.JobFileName, cycleFile);
+				var modFileName = string.Format("{0}_{1}.vmod", Path.GetFileNameWithoutExtension(data.JobFileName),
+					Path.GetFileNameWithoutExtension(cycleFile));
 				_dataWriter = new ModalDataWriter(modFileName);
 
 				var builder = new SimulatorBuilder(_dataWriter, sumWriter, data.JobFileName, jobName, cycleFile, data.IsEngineOnly);
diff --git a/VectoCore/Models/SimulationComponent/Data/Engine/FullLoadCurve.cs b/VectoCore/Models/SimulationComponent/Data/Engine/FullLoadCurve.cs
index 0704829ed5219cb4461acb3adc2f73f78559757a..0d8ceaeca3ab5fde889224a590fb1ce96e363170 100644
--- a/VectoCore/Models/SimulationComponent/Data/Engine/FullLoadCurve.cs
+++ b/VectoCore/Models/SimulationComponent/Data/Engine/FullLoadCurve.cs
@@ -198,7 +198,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 			// y = kx + d
 			var k = (p2.TorqueFullLoad - p1.TorqueFullLoad) / (p2.EngineSpeed - p1.EngineSpeed);
 			var d = p2.TorqueFullLoad - k * p2.EngineSpeed;
-			if (k == 0.0.SI()) {
+			if (k == 0.SI()) {
 				return new Tuple<PerSecond, Watt>(p2.EngineSpeed, Formulas.TorqueToPower(p2.TorqueFullLoad, p2.EngineSpeed));
 			}
 			var engineSpeedMaxPower = (-1 * d / (2 * k)).Cast<PerSecond>();
diff --git a/VectoCore/Models/SimulationComponent/Impl/Clutch.cs b/VectoCore/Models/SimulationComponent/Impl/Clutch.cs
index 447b04450fa440f44f166df34aa3c5f5f0f1a7f0..5c378cf3cdbe49d82fe40f3765c9124c4422909c 100644
--- a/VectoCore/Models/SimulationComponent/Impl/Clutch.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/Clutch.cs
@@ -60,7 +60,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			if (Cockpit.Gear() == 0) {
 				_clutchState = ClutchState.ClutchOpened;
 				engineSpeedIn = _idleSpeed;
-				torqueIn = 0.0.SI<NewtonMeter>();
+				torqueIn = 0.SI<NewtonMeter>();
 			} else {
 				var engineSpeedNorm = (angularVelocity - _idleSpeed) /
 									(_ratedSpeed - _idleSpeed);
diff --git a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index 26636b8f36614298f6b4a27e0db01e69b279dbf0..175a63a3871a5e173b95d09e5a5c9d19649d09e4 100644
--- a/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -266,7 +266,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		protected Watt InertiaPowerLoss(NewtonMeter torque, PerSecond angularVelocity)
 		{
 			var deltaEngineSpeed = angularVelocity - _previousState.EngineSpeed;
-			var avgEngineSpeed = (_previousState.EngineSpeed + angularVelocity) / 2.0.SI<Second>();
+			var avgEngineSpeed = (_previousState.EngineSpeed + angularVelocity) / 2.SI<Second>();
 			var result = _data.Inertia * deltaEngineSpeed * avgEngineSpeed;
 			return result.Cast<Watt>();
 		}
diff --git a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
index d9ca3977666787d9cc91119042bf939ec82c8a8e..d92b22c2967edbe566e22df33841e6dff3e6ed90 100644
--- a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
+++ b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
@@ -41,7 +41,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 			Assert.AreEqual(absTime, outPort.AbsTime);
 			Assert.AreEqual(dt, outPort.Dt);
-			Assert.AreEqual(600.0.RPMtoRad(), outPort.AngularVelocity);
+			Assert.AreEqual(600.RPMtoRad(), outPort.AngularVelocity);
 			Assert.AreEqual(0.SI<NewtonMeter>(), outPort.Torque);
 		}
 
@@ -68,7 +68,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 			Assert.AreEqual(absTime, outPort.AbsTime);
 			Assert.AreEqual(dt, outPort.Dt);
-			Assert.AreEqual(0.0.SI<MeterPerSecond>(), outPort.Velocity);
+			Assert.AreEqual(0.SI<MeterPerSecond>(), outPort.Velocity);
 			Assert.AreEqual((-0.020237973).SI().GradientPercent.Cast<Radian>(), outPort.Gradient);
 		}
 
diff --git a/VectoCoreTest/Models/Simulation/SimulationTests.cs b/VectoCoreTest/Models/Simulation/SimulationTests.cs
index 79ffffbf2df06233a7a14cdcd9f339cc0b14f463..aaba93a7c3957c9abd0b8e04444530ef065ff5cd 100644
--- a/VectoCoreTest/Models/Simulation/SimulationTests.cs
+++ b/VectoCoreTest/Models/Simulation/SimulationTests.cs
@@ -23,7 +23,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 			var container = job.GetContainer();
 
-			Assert.AreEqual(560.0.RPMtoRad(), container.EngineSpeed());
+			Assert.AreEqual(560.RPMtoRad(), container.EngineSpeed());
 			Assert.AreEqual(0U, container.Gear());
 
 			try {
@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			};
 
 			var expectedSumFile = @"TestData\Results\EngineOnlyCycles\24t Coach.vsum";
-			var sumFile = @"24t Coach.vsum";
+			var sumFile = @"TestData\Jobs\24t Coach.vsum";
 			var resultFiles = expectedResultFiles.Select(x => Path.GetFileName(x));
 
 			Assert.IsTrue(File.Exists(sumFile), "sum file is missing: " + sumFile);
@@ -141,8 +141,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 				Assert.IsTrue(File.Exists(result), "vmod file is missing: " + result);
 			}
 
-			//Assert.AreEqual(File.ReadAllLines(sumFile).Length, File.ReadAllLines(expectedSumFile).Length,
-			//	"sum file row count differs.");
+			Assert.AreEqual(File.ReadAllLines(sumFile).Length, File.ReadAllLines(expectedSumFile).Length,
+				"sum file row count differs.");
 
 			var resultFileIt = resultFiles.GetEnumerator();
 
@@ -153,9 +153,6 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 				Assert.AreEqual(expectedResults.Rows.Count, results.Rows.Count, "Moddata: Row count differs.");
 			}
-
-			//todo compare sum file
-			Assert.Inconclusive("todo: compare sum file!!");
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
index 8091c1a9aaf96bc20691f6db0d191d2c062e4f64..cc6401a9900ce8798e2e88b6ef237db7054c1b4b 100644
--- a/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/CombustionEngineTest.cs
@@ -68,7 +68,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var absTime = new TimeSpan(seconds: 0, minutes: 0, hours: 0);
 			var dt = new TimeSpan(seconds: 1, minutes: 0, hours: 0);
 			var torque = 400.SI<NewtonMeter>();
-			var engineSpeed = 1500.0.RPMtoRad();
+			var engineSpeed = 1500.RPMtoRad();
 
 			port.Request(absTime, dt, torque, engineSpeed);
 		}
@@ -86,7 +86,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var dt = new TimeSpan(seconds: 1, minutes: 0, hours: 0);
 
 			var torque = 0.SI<NewtonMeter>();
-			var engineSpeed = 600.0.RPMtoRad();
+			var engineSpeed = 600.RPMtoRad();
 			var dataWriter = new TestModalDataWriter();
 
 			for (var i = 0; i < 21; i++) {
diff --git a/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs b/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
index 6de77a4a1bcf63188d7d469e5e159dad801fc411..7d0d7c77f93c1eac4ed87f91f525986408df34f3 100644
--- a/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
+++ b/VectoCoreTest/Models/SimulationComponentData/FullLoadCurveTest.cs
@@ -16,9 +16,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 		{
 			var fldCurve = FullLoadCurve.ReadFromFile(CoachEngineFLD);
 
-			Assert.AreEqual(1180, (double) fldCurve.FullLoadStationaryTorque(560.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(1352, (double) fldCurve.FullLoadStationaryTorque(2000.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(1231, (double) fldCurve.FullLoadStationaryTorque(580.0.RPMtoRad()), Tolerance);
+			Assert.AreEqual(1180, (double) fldCurve.FullLoadStationaryTorque(560.RPMtoRad()), Tolerance);
+			Assert.AreEqual(1352, (double) fldCurve.FullLoadStationaryTorque(2000.RPMtoRad()), Tolerance);
+			Assert.AreEqual(1231, (double) fldCurve.FullLoadStationaryTorque(580.RPMtoRad()), Tolerance);
 		}
 
     [TestMethod]
@@ -33,9 +33,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 		{
 			var fldCurve = FullLoadCurve.ReadFromFile(CoachEngineFLD);
 
-			Assert.AreEqual(69198.814183, (double) fldCurve.FullLoadStationaryPower(560.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(283162.218372, (double) fldCurve.FullLoadStationaryPower(2000.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(74767.810760, (double) fldCurve.FullLoadStationaryPower(580.0.RPMtoRad()), Tolerance);
+			Assert.AreEqual(69198.814183, (double) fldCurve.FullLoadStationaryPower(560.RPMtoRad()), Tolerance);
+			Assert.AreEqual(283162.218372, (double) fldCurve.FullLoadStationaryPower(2000.RPMtoRad()), Tolerance);
+			Assert.AreEqual(74767.810760, (double) fldCurve.FullLoadStationaryPower(580.RPMtoRad()), Tolerance);
 		}
 
 		[TestMethod]
@@ -43,11 +43,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 		{
 			var fldCurve = FullLoadCurve.ReadFromFile(CoachEngineFLD);
 
-			Assert.AreEqual(-149, (double) fldCurve.DragLoadStationaryTorque(560.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(-301, (double) fldCurve.DragLoadStationaryTorque(2000.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(-148.5, (double) fldCurve.DragLoadStationaryTorque(580.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(-150, (double) fldCurve.DragLoadStationaryTorque(520.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(-339, (double) fldCurve.DragLoadStationaryTorque(2200.0.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-149, (double) fldCurve.DragLoadStationaryTorque(560.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-301, (double) fldCurve.DragLoadStationaryTorque(2000.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-148.5, (double) fldCurve.DragLoadStationaryTorque(580.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-150, (double) fldCurve.DragLoadStationaryTorque(520.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-339, (double) fldCurve.DragLoadStationaryTorque(2200.RPMtoRad()), Tolerance);
 		}
 
 		[TestMethod]
@@ -55,9 +55,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 		{
 			var fldCurve = FullLoadCurve.ReadFromFile(CoachEngineFLD);
 
-			Assert.AreEqual(-8737.81636, (double) fldCurve.DragLoadStationaryPower(560.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(-63041.29254, (double) fldCurve.DragLoadStationaryPower(2000.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(-9019.51251, (double) fldCurve.DragLoadStationaryPower(580.0.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-8737.81636, (double) fldCurve.DragLoadStationaryPower(560.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-63041.29254, (double) fldCurve.DragLoadStationaryPower(2000.RPMtoRad()), Tolerance);
+			Assert.AreEqual(-9019.51251, (double) fldCurve.DragLoadStationaryPower(580.RPMtoRad()), Tolerance);
 		}
 
 		[TestMethod]
@@ -65,9 +65,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 		{
 			var fldCurve = FullLoadCurve.ReadFromFile(CoachEngineFLD);
 
-			Assert.AreEqual(0.6, (double) fldCurve.PT1(560.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(0.25, (double) fldCurve.PT1(2000.0.RPMtoRad()), Tolerance);
-			Assert.AreEqual(0.37, (double) fldCurve.PT1(1700.0.RPMtoRad()), Tolerance);
+			Assert.AreEqual(0.6, (double) fldCurve.PT1(560.RPMtoRad()), Tolerance);
+			Assert.AreEqual(0.25, (double) fldCurve.PT1(2000.RPMtoRad()), Tolerance);
+			Assert.AreEqual(0.37, (double) fldCurve.PT1(1700.RPMtoRad()), Tolerance);
 		}
 
 		/// <summary>
diff --git a/VectoCoreTest/Utils/DoubleExtensionMethodTest.cs b/VectoCoreTest/Utils/DoubleExtensionMethodTest.cs
index fc28ed5b1acf0e6d34f0ebf6f32b420218ca22b0..aba3daa14437402ec31a2b6c5deda74168f33747 100644
--- a/VectoCoreTest/Utils/DoubleExtensionMethodTest.cs
+++ b/VectoCoreTest/Utils/DoubleExtensionMethodTest.cs
@@ -10,12 +10,12 @@ namespace TUGraz.VectoCore.Tests.Utils
 		[TestMethod]
 		public void DoubleExtensions_SI()
 		{
-			var val = 600.0.RPMtoRad();
+			var val = 600.RPMtoRad();
 			Assert.AreEqual(600 / 60 * 2 * Math.PI, val.Double());
 
-			Assert.IsTrue(0.0.SI<PerSecond>().HasEqualUnit(val));
+			Assert.IsTrue(0.SI<PerSecond>().HasEqualUnit(val));
 
-			var val2 = 1200.0.SI().Rounds.Per.Minute.ConvertTo().Radian.Per.Second.Cast<PerSecond>();
+			var val2 = 1200.SI().Rounds.Per.Minute.ConvertTo().Radian.Per.Second.Cast<PerSecond>();
 			val = val * 2;
 			Assert.AreEqual(val, val2);
 
diff --git a/VectoCoreTest/Utils/SITest.cs b/VectoCoreTest/Utils/SITest.cs
index 5b89dd80ddb4e280bba615d7b4c352a04f74a3be..69f33eab2458c3d7e69bb9b0009cfb9b02aa53a7 100644
--- a/VectoCoreTest/Utils/SITest.cs
+++ b/VectoCoreTest/Utils/SITest.cs
@@ -105,7 +105,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Assert.AreEqual("0 [-]", si.ToString());
 			Assert.IsTrue(si.HasEqualUnit(new SI()));
 
-			var si2 = 5.0.SI().Watt;
+			var si2 = 5.SI().Watt;
 			Assert.AreEqual("5 [W]", si2.ToString());
 
 			var si3 = 2.SI().Radian.Per.Second;
@@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Assert.AreEqual("10 [kgmm/ssss]", si4.ToBasicUnits().ToString());
 
 
-			var kg = 5.0.SI().Kilo.Gramm;
+			var kg = 5.SI().Kilo.Gramm;
 			Assert.AreEqual(5.0, kg.Double());
 			Assert.AreEqual("5 [kg]", kg.ToString());