diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
index 2a79558071a616de25cd39f4025e73a51336b791..abfa03730ab76178750e975f0380fa14b93dcc6d 100644
--- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
@@ -29,222 +29,223 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using TUGraz.VectoCommon.Models;
-using TUGraz.VectoCommon.Utils;
-using TUGraz.VectoCore.Configuration;
-using TUGraz.VectoCore.InputData.Reader;
-using TUGraz.VectoCore.InputData.Reader.ComponentData;
-using TUGraz.VectoCore.Models.Declaration;
-using TUGraz.VectoCore.Models.Simulation.Data;
-using TUGraz.VectoCore.Models.Simulation.Impl;
-using TUGraz.VectoCore.Models.SimulationComponent.Data;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
-using TUGraz.VectoCore.Models.SimulationComponent.Impl;
-using TUGraz.VectoCore.OutputData;
-using TUGraz.VectoCore.OutputData.FileIO;
-using TUGraz.VectoCore.Tests.Utils;
-using TUGraz.VectoCore.Utils;
-using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels;
-
-namespace TUGraz.VectoCore.Tests.Integration
-{
-	public class ATPowerTrain
-	{
-		protected static readonly PerSecond MaxTcSpeed = 1500.RPMtoRad();
-
-		public const string AccelerationFile = @"TestData\Components\Truck.vacc";
-		public const string EngineFile = @"TestData\Components\AT_GBX\Engine.veng";
-		//public const string AxleGearLossMap = @"TestData\Components\AT_GBX\Axle.vtlm";
-		//public const string GearboxIndirectLoss = @"TestData\Components\AT_GBX\Indirect Gear.vtlm";
-		//public const string GearboxDirectLoss = @"TestData\Components\AT_GBX\Direct Gear.vtlm";
-		public const string TorqueConverterGenericFile = @"TestData\Components\AT_GBX\TorqueConverter.vtcc";
-		public const string TorqueConverterPowerSplitFile = @"TestData\Components\AT_GBX\TorqueConverterPowerSplit.vtcc";
-		public const string GearboxShiftPolygonFile = @"TestData\Components\AT_GBX\AT-Shift.vgbs";
-
-		public static VectoRun CreateEngineeringRun(DrivingCycleData cycleData, GearboxType gbxType, string modFileName,
-			bool overspeed = false, KilogramSquareMeter gearBoxInertia = null)
-		{
-			var container = CreatePowerTrain(cycleData, gbxType, Path.GetFileNameWithoutExtension(modFileName), overspeed,
-				gearBoxInertia);
-			return new DistanceRun(container);
-		}
-
-		public static VehicleContainer CreatePowerTrain(DrivingCycleData cycleData, GearboxType gbxType, string modFileName,
-			bool overspeed = false, KilogramSquareMeter gearBoxInertia = null)
-		{
-			var fileWriter = new FileOutputWriter(modFileName);
-			var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) {
-				WriteModalResults = true,
-				HasTorqueConverter = true
-			};
-
-			var gearboxData = CreateGearboxData(gbxType);
-			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile, gearboxData.Gears.Count);
-			var axleGearData = CreateAxleGearData(gbxType);
-
-			if (gearBoxInertia != null) {
-				gearboxData.Inertia = gearBoxInertia;
-			}
-
-			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
-			var airdragData = CreateAirdragData();
-			var driverData = CreateDriverData(AccelerationFile, overspeed);
-
-			var runData = new VectoRunData() {
-				JobRunId = 0,
-				AxleGearData = axleGearData,
-				VehicleData = vehicleData,
-				AirdragData = airdragData,
-				GearboxData = gearboxData,
-				EngineData = engineData,
-				JobName = modFileName,
-				Cycle = cycleData,
-				Retarder = new RetarderData() { Type = RetarderType.None },
-				Aux = new List<VectoRunData.AuxData>()
-			};
-			var container = new VehicleContainer(ExecutionMode.Engineering, modData) {
-				RunData = runData,
-			};
-			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
-			var engine = new CombustionEngine(container, engineData);
-			var tmp = cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
-				.AddComponent(new Vehicle(container, vehicleData, airdragData))
-				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
-				.AddComponent(new Brakes(container))
-				.AddComponent(new AxleGear(container, axleGearData))
-				.AddComponent(new DummyRetarder(container))
-				.AddComponent(new ATGearbox(container, new ATShiftStrategy(gearboxData, container), runData))
-				.AddComponent(engine);
-
-			var aux = new EngineAuxiliary(container);
-			aux.AddConstant("ZERO", 0.SI<Watt>());
-			container.ModalData.AddAuxiliary("ZERO");
-
-			engine.Connect(aux.Port());
-
-			return container;
-		}
-
-		public static GearboxData CreateGearboxData(GearboxType gbxType)
-		{
-			var ratios = gbxType == GearboxType.ATSerial
-				? new[] { 3.4, 1.9, 1.42, 1.0, 0.7, 0.62 }
-				: new[] { 1.35, 1.0, 0.73 };
-			var torqueConverterFile = gbxType == GearboxType.ATSerial
-				? TorqueConverterGenericFile
-				: TorqueConverterPowerSplitFile;
-			return new GearboxData {
-				Type = gbxType == GearboxType.ATSerial ? GearboxType.ATSerial : GearboxType.ATPowerSplit,
-				Gears = ratios.Select((ratio, i) =>
-					Tuple.Create((uint)i,
-						new GearData {
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.InputData.Reader;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Tests.Utils;
+using TUGraz.VectoCore.Utils;
+using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels;
+
+namespace TUGraz.VectoCore.Tests.Integration
+{
+	public class ATPowerTrain
+	{
+		protected static readonly PerSecond MaxTcSpeed = 1500.RPMtoRad();
+
+		public const string AccelerationFile = @"TestData\Components\Truck.vacc";
+		public const string EngineFile = @"TestData\Components\AT_GBX\Engine.veng";
+		//public const string AxleGearLossMap = @"TestData\Components\AT_GBX\Axle.vtlm";
+		//public const string GearboxIndirectLoss = @"TestData\Components\AT_GBX\Indirect Gear.vtlm";
+		//public const string GearboxDirectLoss = @"TestData\Components\AT_GBX\Direct Gear.vtlm";
+		public const string TorqueConverterGenericFile = @"TestData\Components\AT_GBX\TorqueConverter.vtcc";
+		public const string TorqueConverterPowerSplitFile = @"TestData\Components\AT_GBX\TorqueConverterPowerSplit.vtcc";
+		public const string GearboxShiftPolygonFile = @"TestData\Components\AT_GBX\AT-Shift.vgbs";
+
+		public static VectoRun CreateEngineeringRun(DrivingCycleData cycleData, GearboxType gbxType, string modFileName,
+			bool overspeed = false, KilogramSquareMeter gearBoxInertia = null)
+		{
+			var container = CreatePowerTrain(cycleData, gbxType, Path.GetFileNameWithoutExtension(modFileName), overspeed,
+				gearBoxInertia);
+			return new DistanceRun(container);
+		}
+
+		public static VehicleContainer CreatePowerTrain(DrivingCycleData cycleData, GearboxType gbxType, string modFileName,
+			bool overspeed = false, KilogramSquareMeter gearBoxInertia = null)
+		{
+			var fileWriter = new FileOutputWriter(modFileName);
+			var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) {
+				WriteModalResults = true,
+				HasTorqueConverter = true
+			};
+
+			var gearboxData = CreateGearboxData(gbxType);
+			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile, gearboxData.Gears.Count);
+			var axleGearData = CreateAxleGearData(gbxType);
+
+			if (gearBoxInertia != null) {
+				gearboxData.Inertia = gearBoxInertia;
+			}
+
+			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
+			var airdragData = CreateAirdragData();
+			var driverData = CreateDriverData(AccelerationFile, overspeed);
+
+			var runData = new VectoRunData() {
+				JobRunId = 0,
+				AxleGearData = axleGearData,
+				VehicleData = vehicleData,
+				AirdragData = airdragData,
+				GearboxData = gearboxData,
+				EngineData = engineData,
+				JobName = modFileName,
+				Cycle = cycleData,
+				Retarder = new RetarderData() { Type = RetarderType.None },
+				Aux = new List<VectoRunData.AuxData>()
+			};
+			var container = new VehicleContainer(ExecutionMode.Engineering, modData) {
+				RunData = runData,
+			};
+			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
+			var engine = new CombustionEngine(container, engineData);
+			var tmp = cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
+				.AddComponent(new Vehicle(container, vehicleData, airdragData))
+				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
+				.AddComponent(new Brakes(container))
+				.AddComponent(new AxleGear(container, axleGearData))
+				.AddComponent(new DummyRetarder(container))
+				.AddComponent(new ATGearbox(container, new ATShiftStrategy(gearboxData, container), runData))
+				.AddComponent(engine);
+
+			var aux = new EngineAuxiliary(container);
+			aux.AddConstant("ZERO", 0.SI<Watt>());
+			container.ModalData.AddAuxiliary("ZERO");
+
+			engine.Connect(aux.Port());
+
+			return container;
+		}
+
+		public static GearboxData CreateGearboxData(GearboxType gbxType)
+		{
+			var ratios = gbxType == GearboxType.ATSerial
+				? new[] { 3.4, 1.9, 1.42, 1.0, 0.7, 0.62 }
+				: new[] { 1.35, 1.0, 0.73 };
+			var torqueConverterFile = gbxType == GearboxType.ATSerial
+				? TorqueConverterGenericFile
+				: TorqueConverterPowerSplitFile;
+			return new GearboxData {
+				Type = gbxType == GearboxType.ATSerial ? GearboxType.ATSerial : GearboxType.ATPowerSplit,
+				Gears = ratios.Select((ratio, i) =>
+					Tuple.Create((uint)i,
+						new GearData {
 							//MaxTorque = 2300.SI<NewtonMeter>(),
-							LossMap = ratio.IsEqual(1)
-								? TransmissionLossMapReader.Create(0.96, ratio, string.Format("Gear {0}", i))
-								: TransmissionLossMapReader.Create(0.98, ratio, string.Format("Gear {0}", i)),
-							Ratio = ratio,
-							ShiftPolygon = ShiftPolygonReader.ReadFromFile(GearboxShiftPolygonFile),
-							TorqueConverterRatio = i == 0 ? (gbxType == GearboxType.ATPowerSplit ? 1.0 : ratio) : double.NaN,
-							TorqueConverterGearLossMap = i == 0
-								? TransmissionLossMapReader.Create(gbxType == GearboxType.ATPowerSplit ? 1.0 : 0.98, ratio,
-									string.Format("Gear {0}", i))
-								: null,
-							TorqueConverterShiftPolygon = i == 0 ? ShiftPolygonReader.ReadFromFile(GearboxShiftPolygonFile) : null
-						}))
-					.ToDictionary(k => k.Item1 + 1, v => v.Item2),
-				ShiftTime = 1.SI<Second>(),
-				Inertia = 0.SI<KilogramSquareMeter>(),
-				TractionInterruption = 0.SI<Second>(),
-				StartSpeed = 2.SI<MeterPerSecond>(),
-				StartAcceleration = 0.6.SI<MeterPerSquareSecond>(),
-				StartTorqueReserve = 0.2,
-				TorqueReserve = 0.2,
-				DownshiftAfterUpshiftDelay = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay,
-				UpshiftAfterDownshiftDelay = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay,
-				UpshiftMinAcceleration = DeclarationData.Gearbox.UpshiftMinAcceleration,
-				PowershiftShiftTime = 0.8.SI<Second>(),
-				TorqueConverterData =
-					TorqueConverterDataReader.ReadFromFile(torqueConverterFile, 1000.RPMtoRad(),
-						MaxTcSpeed, ExecutionMode.Engineering, gbxType == GearboxType.ATSerial ? 1 : 1 / ratios[0],
-						DeclarationData.Gearbox.UpshiftMinAcceleration, DeclarationData.Gearbox.UpshiftMinAcceleration)
-			};
-		}
-
-		private static AxleGearData CreateAxleGearData(GearboxType gbxType)
-		{
-			var ratio = gbxType == GearboxType.ATSerial ? 6.2 : 5.8;
-			return new AxleGearData {
-				AxleGear = new GearData {
-					Ratio = ratio,
-					LossMap = TransmissionLossMapReader.Create(0.95, ratio, "Axlegear"),
-				}
-			};
-		}
-
-		private static VehicleData CreateVehicleData(Kilogram loading)
-		{
-			var axles = new List<Axle> {
-				new Axle {
-					AxleWeightShare = 0.38,
-					Inertia = 20.SI<KilogramSquareMeter>(),
-					RollResistanceCoefficient = 0.007,
-					TwinTyres = false,
-					TyreTestLoad = 30436.0.SI<Newton>()
-				},
-				new Axle {
-					AxleWeightShare = 0.62,
-					Inertia = 18.SI<KilogramSquareMeter>(),
-					RollResistanceCoefficient = 0.007,
-					TwinTyres = true,
-					TyreTestLoad = 30436.SI<Newton>()
-				},
-			};
-			return new VehicleData {
-				AxleConfiguration = AxleConfiguration.AxleConfig_4x2,
-				CurbWeight = 11500.SI<Kilogram>(),
-				Loading = loading,
-				DynamicTyreRadius = 0.465.SI<Meter>(),
-				AxleData = axles,
-				SavedInDeclarationMode = false
-			};
-		}
-
-		private static AirdragData CreateAirdragData()
-		{
-			return new AirdragData() {
-				CrossWindCorrectionCurve =
-					new CrosswindCorrectionCdxALookup(3.2634.SI<SquareMeter>(),
-						CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
-						CrossWindCorrectionMode.NoCorrection),
-			};
-		}
-
-
-		private static DriverData CreateDriverData(string accelerationFile, bool overspeed = false)
-		{
-			return new DriverData {
-				AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile),
-				LookAheadCoasting = new DriverData.LACData {
-					Enabled = true,
-					MinSpeed = 50.KMPHtoMeterPerSecond(),
+							LossMap = ratio.IsEqual(1)
+								? TransmissionLossMapReader.Create(0.96, ratio, string.Format("Gear {0}", i))
+								: TransmissionLossMapReader.Create(0.98, ratio, string.Format("Gear {0}", i)),
+							Ratio = ratio,
+							ShiftPolygon = ShiftPolygonReader.ReadFromFile(GearboxShiftPolygonFile),
+							TorqueConverterRatio = i == 0 ? (gbxType == GearboxType.ATPowerSplit ? 1.0 : ratio) : double.NaN,
+							TorqueConverterGearLossMap = i == 0
+								? TransmissionLossMapReader.Create(gbxType == GearboxType.ATPowerSplit ? 1.0 : 0.98, ratio,
+									string.Format("Gear {0}", i))
+								: null,
+							TorqueConverterShiftPolygon = i == 0 ? ShiftPolygonReader.ReadFromFile(GearboxShiftPolygonFile) : null
+						}))
+					.ToDictionary(k => k.Item1 + 1, v => v.Item2),
+				ShiftTime = 1.SI<Second>(),
+				Inertia = 0.SI<KilogramSquareMeter>(),
+				TractionInterruption = 0.SI<Second>(),
+				StartSpeed = 2.SI<MeterPerSecond>(),
+				StartAcceleration = 0.6.SI<MeterPerSquareSecond>(),
+				StartTorqueReserve = 0.2,
+				TorqueReserve = 0.2,
+				DownshiftAfterUpshiftDelay = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay,
+				UpshiftAfterDownshiftDelay = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay,
+				UpshiftMinAcceleration = DeclarationData.Gearbox.UpshiftMinAcceleration,
+				PowershiftShiftTime = 0.8.SI<Second>(),
+				TorqueConverterData =
+					TorqueConverterDataReader.ReadFromFile(torqueConverterFile, 1000.RPMtoRad(),
+						MaxTcSpeed, ExecutionMode.Engineering, gbxType == GearboxType.ATSerial ? 1 : 1 / ratios[0],
+						DeclarationData.Gearbox.UpshiftMinAcceleration, DeclarationData.Gearbox.UpshiftMinAcceleration)
+			};
+		}
+
+		private static AxleGearData CreateAxleGearData(GearboxType gbxType)
+		{
+			var ratio = gbxType == GearboxType.ATSerial ? 6.2 : 5.8;
+			return new AxleGearData {
+				AxleGear = new GearData {
+					Ratio = ratio,
+					LossMap = TransmissionLossMapReader.Create(0.95, ratio, "Axlegear"),
+				}
+			};
+		}
+
+		private static VehicleData CreateVehicleData(Kilogram loading)
+		{
+			var axles = new List<Axle> {
+				new Axle {
+					AxleWeightShare = 0.38,
+					Inertia = 20.SI<KilogramSquareMeter>(),
+					RollResistanceCoefficient = 0.007,
+					TwinTyres = false,
+					TyreTestLoad = 30436.0.SI<Newton>()
+				},
+				new Axle {
+					AxleWeightShare = 0.62,
+					Inertia = 18.SI<KilogramSquareMeter>(),
+					RollResistanceCoefficient = 0.007,
+					TwinTyres = true,
+					TyreTestLoad = 30436.SI<Newton>()
+				},
+			};
+			return new VehicleData {
+				AirDensity = DeclarationData.AirDensity,
+				AxleConfiguration = AxleConfiguration.AxleConfig_4x2,
+				CurbWeight = 11500.SI<Kilogram>(),
+				Loading = loading,
+				DynamicTyreRadius = 0.465.SI<Meter>(),
+				AxleData = axles,
+				SavedInDeclarationMode = false
+			};
+		}
+
+		private static AirdragData CreateAirdragData()
+		{
+			return new AirdragData() {
+				CrossWindCorrectionCurve =
+					new CrosswindCorrectionCdxALookup(3.2634.SI<SquareMeter>(),
+						CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
+						CrossWindCorrectionMode.NoCorrection),
+			};
+		}
+
+
+		private static DriverData CreateDriverData(string accelerationFile, bool overspeed = false)
+		{
+			return new DriverData {
+				AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile),
+				LookAheadCoasting = new DriverData.LACData {
+					Enabled = true,
+					MinSpeed = 50.KMPHtoMeterPerSecond(),
 					//Deceleration = -0.5.SI<MeterPerSquareSecond>()
-					LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor,
-					LookAheadDecisionFactor = new LACDecisionFactor()
-				},
-				OverSpeedEcoRoll = overspeed
-					? new DriverData.OverSpeedEcoRollData {
-						Mode = DriverMode.Overspeed,
-						MinSpeed = 50.KMPHtoMeterPerSecond(),
-						OverSpeed = 5.KMPHtoMeterPerSecond()
-					}
-					: new DriverData.OverSpeedEcoRollData {
-						Mode = DriverMode.Off
-					},
-			};
-		}
-	}
+					LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor,
+					LookAheadDecisionFactor = new LACDecisionFactor()
+				},
+				OverSpeedEcoRoll = overspeed
+					? new DriverData.OverSpeedEcoRollData {
+						Mode = DriverMode.Overspeed,
+						MinSpeed = 50.KMPHtoMeterPerSecond(),
+						OverSpeed = 5.KMPHtoMeterPerSecond()
+					}
+					: new DriverData.OverSpeedEcoRollData {
+						Mode = DriverMode.Off
+					},
+			};
+		}
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
index 5cdd090255da983b82dca553a3ef4ac7f88b7cae..f2f64156c4c3ac2c075b7b762af9d27189707a06 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
@@ -187,6 +187,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 				}
 			};
 			return new VehicleData {
+				AirDensity = DeclarationData.AirDensity,
 				AxleConfiguration = AxleConfiguration.AxleConfig_6x2,
 				CurbWeight = 15700.SI<Kilogram>(),
 				Loading = loading,
diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
index 1667a0f535f22004fcb8a329ee88f0909b78953a..01d338e7619542e875a9729859e7ace7f0a4da8c 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
@@ -81,7 +81,8 @@ namespace TUGraz.VectoCore.Tests.Integration
 			};
 
 			var gearboxData = CreateGearboxData();
-			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(engineHighPower ? EngineFileHigh : EngineFile, gearboxData.Gears.Count);
+			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(engineHighPower ? EngineFileHigh : EngineFile,
+				gearboxData.Gears.Count);
 			var axleGearData = CreateAxleGearData();
 			if (gearBoxInertia != null) {
 				gearboxData.Inertia = gearBoxInertia;
@@ -189,6 +190,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 				}
 			};
 			return new VehicleData {
+				AirDensity = DeclarationData.AirDensity,
 				AxleConfiguration = AxleConfiguration.AxleConfig_6x2,
 				//AerodynamicDragAera = 3.2634.SI<SquareMeter>(),
 				//CrossWindCorrectionMode = CrossWindCorrectionMode.NoCorrection,
@@ -205,7 +207,8 @@ namespace TUGraz.VectoCore.Tests.Integration
 		{
 			return new AirdragData() {
 				CrossWindCorrectionCurve =
-					new CrosswindCorrectionCdxALookup(3.2634.SI<SquareMeter>(), CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
+					new CrosswindCorrectionCdxALookup(3.2634.SI<SquareMeter>(),
+						CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
 						CrossWindCorrectionMode.NoCorrection),
 			};
 		}
diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
index 7e350453665b6c3a3e6c50e7e6133d9119508c0b..a8c325b978b7d54b7252614ebd8cf23662f5ed2a 100644
--- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
@@ -94,7 +94,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			};
 
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
-				.AddComponent(new Vehicle(container, vehicleData,airDragData))
+				.AddComponent(new Vehicle(container, vehicleData, airDragData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
@@ -159,7 +159,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 
 			var cyclePort = cycle.OutPort();
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
-				.AddComponent(new Vehicle(container, vehicleData,airDragData))
+				.AddComponent(new Vehicle(container, vehicleData, airDragData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
@@ -405,7 +405,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			};
 			return new VehicleData {
 				AxleConfiguration = AxleConfiguration.AxleConfig_6x2,
-				
+				AirDensity = DeclarationData.AirDensity,
 				CurbWeight = 15700.SI<Kilogram>(),
 				Loading = loading,
 				DynamicTyreRadius = 0.52.SI<Meter>(),
@@ -416,11 +416,12 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 
 		private static AirdragData CreateAirdragData()
 		{
-			return new AirdragData(){
+			return new AirdragData() {
 				CrossWindCorrectionCurve =
 					new CrosswindCorrectionCdxALookup(3.2634.SI<SquareMeter>(),
 						CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()),
-						CrossWindCorrectionMode.NoCorrection),}; 
+						CrossWindCorrectionMode.NoCorrection),
+			};
 		}
 
 		private static DriverData CreateDriverData(string accelerationFile)
diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
index c2d71d2899c22398f022107134bbf745dd1975c5..f08f921cafc0452b7280b181b7a926b0ae44c215 100644
--- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
@@ -275,7 +275,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			};
 			return new VehicleData {
 				AxleConfiguration = AxleConfiguration.AxleConfig_6x2,
-				
+				AirDensity = DeclarationData.AirDensity,
 				CurbWeight = 15700.SI<Kilogram>(),
 				Loading = loading,
 				DynamicTyreRadius = 0.52.SI<Meter>(),
diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
index 2bb855d596e50825e1a2cbe00766433e7328c6d2..900a1a51d80eeb5cdc8a4f29509853b6f85fd342 100644
--- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
@@ -222,6 +222,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 				}
 			};
 			return new VehicleData {
+				AirDensity = DeclarationData.AirDensity,
 				AxleConfiguration = AxleConfiguration.AxleConfig_4x2,
 				CurbWeight = 7100.SI<Kilogram>() + massExtra,
 				Loading = loading,
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs
index e3a0d787ceae63f165f705cd5d223d93344bdd1e..841ce58b226a59918162cab3b5d49f14dde246e1 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs
@@ -29,507 +29,507 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using System.Collections.Generic;
-using System.Data;
-using System.Linq;
-using TUGraz.VectoCommon.Exceptions;
-using TUGraz.VectoCommon.Models;
-using TUGraz.VectoCommon.Utils;
-using TUGraz.VectoCore.InputData.FileIO.JSON;
-using TUGraz.VectoCore.InputData.Reader;
-using TUGraz.VectoCore.InputData.Reader.ComponentData;
-using TUGraz.VectoCore.Models.Declaration;
-using TUGraz.VectoCore.Models.Simulation.Data;
-using TUGraz.VectoCore.Models.Simulation.Impl;
-using TUGraz.VectoCore.Models.SimulationComponent.Data;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
-using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
-using TUGraz.VectoCore.Models.SimulationComponent.Impl;
-using TUGraz.VectoCore.OutputData;
-using TUGraz.VectoCore.OutputData.FileIO;
-using TUGraz.VectoCore.Tests.Utils;
-using TUGraz.VectoCore.Utils;
-
-// ReSharper disable UnusedVariable
-
-// ReSharper disable AccessToModifiedClosure
-
-namespace TUGraz.VectoCore.Tests.Models.Simulation
-{
-	[TestClass]
-	public class MeasuredSpeedModeTest
-	{
-		/// <summary>
-		/// Test if the cycle file can be read.
-		/// </summary>
-		/// <remarks>VECTO-181</remarks>
-		[TestMethod]
-		public void MeasuredSpeed_ReadCycle_Gear()
-		{
-			// all data
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
+using TUGraz.VectoCore.InputData.Reader;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Tests.Utils;
+using TUGraz.VectoCore.Utils;
+
+// ReSharper disable UnusedVariable
+
+// ReSharper disable AccessToModifiedClosure
+
+namespace TUGraz.VectoCore.Tests.Models.Simulation
+{
+	[TestClass]
+	public class MeasuredSpeedModeTest
+	{
+		/// <summary>
+		/// Test if the cycle file can be read.
+		/// </summary>
+		/// <remarks>VECTO-181</remarks>
+		[TestMethod]
+		public void MeasuredSpeed_ReadCycle_Gear()
+		{
+			// all data
 			var inputData = @"<t>,<v>,<grad>,<Padd>,<n>   ,<gear>,<vair_res>,<vair_beta>,<Aux_Alt>
-				  			  0  ,0  ,0     ,3.2018,595.75,0     ,0         ,0          ,0.504";
-			TestCycleRead(inputData, CycleType.MeasuredSpeedGear);
-
-			// vair only
+				  			  0  ,0  ,0     ,3.2018,595.75,0     ,0         ,0          ,0.504";
+			TestCycleRead(inputData, CycleType.MeasuredSpeedGear);
+
+			// vair only
 			inputData = @"<t>,<v>,<grad>,<Padd>,<n>   ,<gear>,<vair_res>,<vair_beta>
-						  0  ,0  ,0     ,3.2018,595.75,0     ,0         ,0          ";
-			TestCycleRead(inputData, CycleType.MeasuredSpeedGear, crossWindRequired: true);
-
-			// vair required, but not there: error
+						  0  ,0  ,0     ,3.2018,595.75,0     ,0         ,0          ";
+			TestCycleRead(inputData, CycleType.MeasuredSpeedGear, crossWindRequired: true);
+
+			// vair required, but not there: error
 			inputData = @"<t>,<v>,<grad>,<Padd>,<n>   ,<gear>
-						  0  ,0  ,0     ,3.2018,595.75,0";
-			AssertHelper.Exception<VectoException>(
-				() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear, crossWindRequired: true),
-				"ERROR while reading DrivingCycle Stream: Column vair_res was not found in DataRow.");
-
-			// no aux, no vair
+						  0  ,0  ,0     ,3.2018,595.75,0";
+			AssertHelper.Exception<VectoException>(
+				() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear, crossWindRequired: true),
+				"ERROR while reading DrivingCycle Stream: Column vair_res was not found in DataRow.");
+
+			// no aux, no vair
 			inputData = @"<t>,<v>,<grad>,<Padd>,<n>   ,<gear>
-						  0  ,0  ,0     ,3.2018,595.75,0     ";
-			TestCycleRead(inputData, CycleType.MeasuredSpeedGear);
-
-			// aux only
+						  0  ,0  ,0     ,3.2018,595.75,0     ";
+			TestCycleRead(inputData, CycleType.MeasuredSpeedGear);
+
+			// aux only
 			inputData = @"<t>,<v>,<grad>,<Padd>,<n>   ,<gear>,<Aux_Alt>
-						  0  ,0  ,0     ,3.2018,595.75,0     ,0.504";
-			TestCycleRead(inputData, CycleType.MeasuredSpeedGear);
-
-			// missing columns
+						  0  ,0  ,0     ,3.2018,595.75,0     ,0.504";
+			TestCycleRead(inputData, CycleType.MeasuredSpeedGear);
+
+			// missing columns
 			inputData = @"<t>,<grad>,<Padd>,<n>,<gear>
-						  0  ,0     ,3.2018,595.75,0";
-			AssertHelper.Exception<VectoException>(
-				() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear, autoCycle: false),
-				"ERROR while reading DrivingCycle Stream: Column(s) required: v");
-
-			// auto find cycle type
-			AssertHelper.Exception<VectoException>(
-				() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear),
-				"CycleFile format is unknown.");
-
-			// not allowed columns
+						  0  ,0     ,3.2018,595.75,0";
+			AssertHelper.Exception<VectoException>(
+				() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear, autoCycle: false),
+				"ERROR while reading DrivingCycle Stream: Column(s) required: v");
+
+			// auto find cycle type
+			AssertHelper.Exception<VectoException>(
+				() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear),
+				"CycleFile format is unknown.");
+
+			// not allowed columns
 			inputData = @"<t>,<v>,<grad>,<Padd>,<n>   ,<gear>,<wrong>
-						  0  ,0  ,0     ,3.2018,595.75,0     ,0.504";
-			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear, autoCycle: false),
-				"ERROR while reading DrivingCycle Stream: Column(s) not allowed: wrong");
-
-			// wrong data
+						  0  ,0  ,0     ,3.2018,595.75,0     ,0.504";
+			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear, autoCycle: false),
+				"ERROR while reading DrivingCycle Stream: Column(s) not allowed: wrong");
+
+			// wrong data
 			inputData = @"<t>,<grad>,<Padd>,<n>,<gear>
-						  0  ,0";
-			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear),
-				"Line 1: The number of values is not correct. Expected 5 Columns, Got 2 Columns");
-		}
-
-		/// <summary>
-		/// Test if the cycle file can be read.
-		/// </summary>
-		/// <remarks>VECTO-181</remarks>
-		[TestMethod]
-		public void MeasuredSpeed_ReadCycle()
-		{
-			// all data
+						  0  ,0";
+			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeedGear),
+				"Line 1: The number of values is not correct. Expected 5 Columns, Got 2 Columns");
+		}
+
+		/// <summary>
+		/// Test if the cycle file can be read.
+		/// </summary>
+		/// <remarks>VECTO-181</remarks>
+		[TestMethod]
+		public void MeasuredSpeed_ReadCycle()
+		{
+			// all data
 			string inputData = @"<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_Alt>
-								 0  ,0  ,0     ,3.2018,0         ,0          ,0.504";
-			TestCycleRead(inputData, CycleType.MeasuredSpeed);
-
-			// vair only
+								 0  ,0  ,0     ,3.2018,0         ,0          ,0.504";
+			TestCycleRead(inputData, CycleType.MeasuredSpeed);
+
+			// vair only
 			inputData = @"<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>
-						  0  ,0  ,0     ,3.2018,0         ,0          ";
-			TestCycleRead(inputData, CycleType.MeasuredSpeed, crossWindRequired: true);
-
-			// vair required, but not there: error
+						  0  ,0  ,0     ,3.2018,0         ,0          ";
+			TestCycleRead(inputData, CycleType.MeasuredSpeed, crossWindRequired: true);
+
+			// vair required, but not there: error
 			inputData = @"<t>,<v>,<grad>,<Padd>
-						  0  ,0  ,0     ,3.2018";
-			AssertHelper.Exception<VectoException>(
-				() => TestCycleRead(inputData, CycleType.MeasuredSpeed, crossWindRequired: true),
-				"ERROR while reading DrivingCycle Stream: Column vair_res was not found in DataRow.");
-
-			// no aux, no vair
+						  0  ,0  ,0     ,3.2018";
+			AssertHelper.Exception<VectoException>(
+				() => TestCycleRead(inputData, CycleType.MeasuredSpeed, crossWindRequired: true),
+				"ERROR while reading DrivingCycle Stream: Column vair_res was not found in DataRow.");
+
+			// no aux, no vair
 			inputData = @"<t>,<v>,<grad>,<Padd>
-						  0  ,0  ,0     ,3.2018";
-			TestCycleRead(inputData, CycleType.MeasuredSpeed);
-
-			// aux only
+						  0  ,0  ,0     ,3.2018";
+			TestCycleRead(inputData, CycleType.MeasuredSpeed);
+
+			// aux only
 			inputData = @"<t>,<v>,<grad>,<Padd>,<Aux_Alt>
-						  0  ,0  ,0     ,3.2018,0.504";
-			TestCycleRead(inputData, CycleType.MeasuredSpeed);
-
-			// missing columns
+						  0  ,0  ,0     ,3.2018,0.504";
+			TestCycleRead(inputData, CycleType.MeasuredSpeed);
+
+			// missing columns
 			inputData = @"<t>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_Alt>
-						  0  ,0     ,3.2018,0         ,0          ,0.504";
-			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed, autoCycle: false),
-				"ERROR while reading DrivingCycle Stream: Column(s) required: v");
-
-			// not allowed columns
+						  0  ,0     ,3.2018,0         ,0          ,0.504";
+			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed, autoCycle: false),
+				"ERROR while reading DrivingCycle Stream: Column(s) required: v");
+
+			// not allowed columns
 			inputData = @"<t>,<v>,<wrong>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_Alt>
-						  0  ,0  ,0     ,3.2018,0         ,0          ,0.504,0";
-			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed, autoCycle: false),
-				"ERROR while reading DrivingCycle Stream: Column(s) not allowed: wrong");
-
-			// auto find cycle
-			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed),
-				"CycleFile format is unknown.");
-
-			// wrong data
+						  0  ,0  ,0     ,3.2018,0         ,0          ,0.504,0";
+			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed, autoCycle: false),
+				"ERROR while reading DrivingCycle Stream: Column(s) not allowed: wrong");
+
+			// auto find cycle
+			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed),
+				"CycleFile format is unknown.");
+
+			// wrong data
 			inputData = @"<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_Alt>
-						  0  ,0";
-			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed),
-				"Line 1: The number of values is not correct. Expected 7 Columns, Got 2 Columns");
-		}
-
-		private static void TestCycleRead(string inputData, CycleType cycleType, bool autoCycle = true,
-			bool crossWindRequired = false)
-		{
-			var container = new VehicleContainer(ExecutionMode.Engineering);
-
-			if (autoCycle) {
-				var cycleTypeCalc = DrivingCycleDataReader.DetectCycleType(VectoCSVFile.ReadStream(inputData.ToStream()));
-				Assert.AreEqual(cycleType, cycleTypeCalc);
-			}
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.ToStream(), cycleType, "", crossWindRequired);
-			Assert.AreEqual(cycleType, drivingCycle.CycleType);
-
-			var cycle = new MeasuredSpeedDrivingCycle(container, drivingCycle);
-		}
-
-		/// <summary>
-		/// Tests if the powertrain can be created in MeasuredSpeed mode.
-		/// </summary>
-		/// <remarks>VECTO-181</remarks>
-		[TestMethod]
-		public void MeasuredSpeed_CreatePowertrain_Gear()
-		{
-			// prepare input data
+						  0  ,0";
+			AssertHelper.Exception<VectoException>(() => TestCycleRead(inputData, CycleType.MeasuredSpeed),
+				"Line 1: The number of values is not correct. Expected 7 Columns, Got 2 Columns");
+		}
+
+		private static void TestCycleRead(string inputData, CycleType cycleType, bool autoCycle = true,
+			bool crossWindRequired = false)
+		{
+			var container = new VehicleContainer(ExecutionMode.Engineering);
+
+			if (autoCycle) {
+				var cycleTypeCalc = DrivingCycleDataReader.DetectCycleType(VectoCSVFile.ReadStream(inputData.ToStream()));
+				Assert.AreEqual(cycleType, cycleTypeCalc);
+			}
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.ToStream(), cycleType, "", crossWindRequired);
+			Assert.AreEqual(cycleType, drivingCycle.CycleType);
+
+			var cycle = new MeasuredSpeedDrivingCycle(container, drivingCycle);
+		}
+
+		/// <summary>
+		/// Tests if the powertrain can be created in MeasuredSpeed mode.
+		/// </summary>
+		/// <remarks>VECTO-181</remarks>
+		[TestMethod]
+		public void MeasuredSpeed_CreatePowertrain_Gear()
+		{
+			// prepare input data
 			var inputData = @"<t>,<v>    ,<grad>      ,<Padd>     ,<n>    ,<gear>
 							  1  ,0      ,0           ,3.201815003,595.75 ,0
 							  2  ,0.3112 ,0           ,4.532197507,983.75 ,1
 							  3  ,5.2782 ,-0.041207832,2.453370264,723.75 ,1
-							  4  ,10.5768,-0.049730127,3.520827362,1223.25,1";
-
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.ToStream(), CycleType.MeasuredSpeedGear, "",
-				false);
-
-			var fuelConsumption = new DataTable();
-			fuelConsumption.Columns.Add("");
-			fuelConsumption.Columns.Add("");
-			fuelConsumption.Columns.Add("");
-			fuelConsumption.Rows.Add("1", "1", "1");
-			fuelConsumption.Rows.Add("2", "2", "2");
-			fuelConsumption.Rows.Add("3", "3", "3");
-
-			var fullLoad = new DataTable();
-			fullLoad.Columns.Add("Engine speed");
-			fullLoad.Columns.Add("max torque");
-			fullLoad.Columns.Add("drag torque");
-			fullLoad.Columns.Add("PT1");
-			fullLoad.Rows.Add("0", "5000", "-5000", "0");
-			fullLoad.Rows.Add("3000", "5000", "-5000", "0");
-
-			var fullLoadCurve = FullLoadCurveReader.Create(fullLoad);
-			var data = new VectoRunData {
-				Cycle = drivingCycle,
-				VehicleData =
-					new VehicleData {
-						VehicleCategory = VehicleCategory.RigidTruck,
-						GrossVehicleWeight = 12000.SI<Kilogram>(),
-						CurbWeight = 3400.SI<Kilogram>(),
-						DynamicTyreRadius = 0.5.SI<Meter>(),
-						AxleData =
-							new List<Axle> {
-								new Axle { AxleWeightShare = 1.0, TyreTestLoad = 52532.SI<Newton>(), Inertia = 10.SI<KilogramSquareMeter>() }
-							}
-					},
-				AirdragData = new AirdragData() {
-					CrossWindCorrectionCurve =
-						new CrosswindCorrectionCdxALookup(6.16498344.SI<SquareMeter>(),
-							CrossWindCorrectionCurveReader.GetNoCorrectionCurve(6.16498344.SI<SquareMeter>()),
-							CrossWindCorrectionMode.NoCorrection),
-				},
-				AxleGearData = new AxleGearData { AxleGear = new GearData { Ratio = 2.3 } },
-				EngineData =
-					new CombustionEngineData {
-						IdleSpeed = 560.RPMtoRad(),
-						FullLoadCurves = new Dictionary<uint, EngineFullLoadCurve>() { { 0, fullLoadCurve }, { 1, fullLoadCurve } }
-					},
-				GearboxData = new GearboxData { Gears = new Dictionary<uint, GearData> { { 1, new GearData { Ratio = 6.2 } } } },
-				Retarder = new RetarderData()
-			};
-
-			// call builder (actual test)
-			var builder = new PowertrainBuilder(new MockModalDataContainer());
-			builder.Build(data);
-		}
-
-		/// <summary>
-		/// Tests if the powertrain can be created in MeasuredSpeed mode.
-		/// </summary>
-		/// <remarks>VECTO-181</remarks>
-		[TestMethod]
-		public void MeasuredSpeed_CreatePowertrain()
-		{
-			// prepare input data
+							  4  ,10.5768,-0.049730127,3.520827362,1223.25,1";
+
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.ToStream(), CycleType.MeasuredSpeedGear, "",
+				false);
+
+			var fuelConsumption = new DataTable();
+			fuelConsumption.Columns.Add("");
+			fuelConsumption.Columns.Add("");
+			fuelConsumption.Columns.Add("");
+			fuelConsumption.Rows.Add("1", "1", "1");
+			fuelConsumption.Rows.Add("2", "2", "2");
+			fuelConsumption.Rows.Add("3", "3", "3");
+
+			var fullLoad = new DataTable();
+			fullLoad.Columns.Add("Engine speed");
+			fullLoad.Columns.Add("max torque");
+			fullLoad.Columns.Add("drag torque");
+			fullLoad.Columns.Add("PT1");
+			fullLoad.Rows.Add("0", "5000", "-5000", "0");
+			fullLoad.Rows.Add("3000", "5000", "-5000", "0");
+
+			var fullLoadCurve = FullLoadCurveReader.Create(fullLoad);
+			var data = new VectoRunData {
+				Cycle = drivingCycle,
+				VehicleData =
+					new VehicleData {
+						VehicleCategory = VehicleCategory.RigidTruck,
+						GrossVehicleWeight = 12000.SI<Kilogram>(),
+						CurbWeight = 3400.SI<Kilogram>(),
+						DynamicTyreRadius = 0.5.SI<Meter>(),
+						AxleData =
+							new List<Axle> {
+								new Axle { AxleWeightShare = 1.0, TyreTestLoad = 52532.SI<Newton>(), Inertia = 10.SI<KilogramSquareMeter>() }
+							}
+					},
+				AirdragData = new AirdragData() {
+					CrossWindCorrectionCurve =
+						new CrosswindCorrectionCdxALookup(6.16498344.SI<SquareMeter>(),
+							CrossWindCorrectionCurveReader.GetNoCorrectionCurve(6.16498344.SI<SquareMeter>()),
+							CrossWindCorrectionMode.NoCorrection),
+				},
+				AxleGearData = new AxleGearData { AxleGear = new GearData { Ratio = 2.3 } },
+				EngineData =
+					new CombustionEngineData {
+						IdleSpeed = 560.RPMtoRad(),
+						FullLoadCurves = new Dictionary<uint, EngineFullLoadCurve>() { { 0, fullLoadCurve }, { 1, fullLoadCurve } }
+					},
+				GearboxData = new GearboxData { Gears = new Dictionary<uint, GearData> { { 1, new GearData { Ratio = 6.2 } } } },
+				Retarder = new RetarderData()
+			};
+
+			// call builder (actual test)
+			var builder = new PowertrainBuilder(new MockModalDataContainer());
+			builder.Build(data);
+		}
+
+		/// <summary>
+		/// Tests if the powertrain can be created in MeasuredSpeed mode.
+		/// </summary>
+		/// <remarks>VECTO-181</remarks>
+		[TestMethod]
+		public void MeasuredSpeed_CreatePowertrain()
+		{
+			// prepare input data
 			var inputData = @"<t>,<v>    ,<grad>      ,<Padd>     
 							  1  ,0      ,0           ,3.201815003
 							  2  ,0.3112 ,0           ,4.532197507
 							  3  ,5.2782 ,-0.041207832,2.453370264
-							  4  ,10.5768,-0.049730127,3.520827362";
-
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.ToStream(), CycleType.MeasuredSpeed, "", false);
-
-			var fuelConsumption = new DataTable();
-			fuelConsumption.Columns.Add("");
-			fuelConsumption.Columns.Add("");
-			fuelConsumption.Columns.Add("");
-			fuelConsumption.Rows.Add("1", "1", "1");
-			fuelConsumption.Rows.Add("2", "2", "2");
-			fuelConsumption.Rows.Add("3", "3", "3");
-
-			var fullLoad = new DataTable();
-			fullLoad.Columns.Add("Engine speed");
-			fullLoad.Columns.Add("max torque");
-			fullLoad.Columns.Add("drag torque");
-			fullLoad.Columns.Add("PT1");
-			fullLoad.Rows.Add("0", "5000", "-5000", "0");
-			fullLoad.Rows.Add("3000", "5000", "-5000", "0");
-
-			var fullLoadCurve = FullLoadCurveReader.Create(fullLoad);
-			var data = new VectoRunData {
-				Cycle = drivingCycle,
-				VehicleData =
-					new VehicleData {
-						VehicleCategory = VehicleCategory.RigidTruck,
-						WheelsInertia = 2.SI<KilogramSquareMeter>(),
-						DynamicTyreRadius = 0.85.SI<Meter>(),
-					},
-				AirdragData = new AirdragData() {
-					CrossWindCorrectionCurve =
-						new CrosswindCorrectionCdxALookup(6.16498344.SI<SquareMeter>(),
-							CrossWindCorrectionCurveReader.GetNoCorrectionCurve(6.16498344.SI<SquareMeter>()),
-							CrossWindCorrectionMode.NoCorrection)
-				},
-				AxleGearData = new AxleGearData { AxleGear = new GearData { Ratio = 2.3 } },
-				EngineData = new CombustionEngineData {
-					IdleSpeed = 560.RPMtoRad(),
-					FullLoadCurves = new Dictionary<uint, EngineFullLoadCurve> {
-						{ 0, fullLoadCurve },
-						{ 1, fullLoadCurve },
-						{ 2, fullLoadCurve },
-						{ 3, fullLoadCurve }
-					}
-				},
-				GearboxData = new GearboxData {
-					Gears = new Dictionary<uint, GearData> {
-						{ 1, new GearData { Ratio = 6.696 } },
-						{ 2, new GearData { Ratio = 3.806 } },
-						{ 3, new GearData { Ratio = 2.289 } }
-					},
-					StartSpeed = 2.SI<MeterPerSecond>()
-				},
-				Retarder = new RetarderData()
-			};
-
-			// call builder (actual test)
-			var builder = new PowertrainBuilder(new MockModalDataContainer());
-			var jobContainer = builder.Build(data);
-		}
-
-		private static void RunJob(string jobFile, string expectedModFile, string actualModFile, string expectedSumFile,
-			string actualSumFile, bool actualModData = false)
-		{
-			var fileWriter = new FileOutputWriter(jobFile);
-			var sumWriter = new SummaryDataContainer(fileWriter);
-			var jobContainer = new JobContainer(sumWriter);
-
-			var inputData = JSONInputDataFactory.ReadJsonJob(jobFile);
-			var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter);
-			runsFactory.ActualModalData = actualModData;
-			runsFactory.WriteModalResults = true;
-
-			jobContainer.AddRuns(runsFactory);
-			jobContainer.Execute();
-
-			jobContainer.WaitFinished();
-
-			Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException)));
-
-			ResultFileHelper.TestModFile(expectedModFile, actualModFile);
-			ResultFileHelper.TestSumFile(expectedSumFile, actualSumFile);
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeed.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeed_MeasuredSpeed.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeed_MeasuredSpeed.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeed.vsum", @"TestData\MeasuredSpeed\MeasuredSpeed.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeedAux_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedAux.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedAux_MeasuredSpeedAux.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedAux_MeasuredSpeedAux.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedAux.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedAux.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeedVair_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVair.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVair_MeasuredSpeedVair.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedVair_MeasuredSpeedVair.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVair.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVair.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeedVair_WindFromFront_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairFront.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairFront_MeasuredSpeedVairFront.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedVairFront_MeasuredSpeedVairFront.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairFront.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVairFront.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeedVair_WindFromBack_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairBack.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairBack_MeasuredSpeedVairBack.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedVairBack_MeasuredSpeedVairBack.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairBack.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVairBack.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeedVair_NoWind_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairNoWind.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairNoWind_MeasuredSpeedVairNoWind.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedVairNoWind_MeasuredSpeedVairNoWind.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairNoWind.vsum",
-				@"TestData\MeasuredSpeed\MeasuredSpeedVairNoWind.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeedVairAux_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairAux.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairAux_MeasuredSpeedVairAux.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedVairAux_MeasuredSpeedVairAux.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairAux.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVairAux.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGear.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_MeasuredSpeed_Gear_Rural.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGear_MeasuredSpeed_Gear_Rural.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGear.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_TractionInterruption_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGear_TractionInterruption.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_TractionInterruption_MeasuredSpeed_Gear_Rural_TractionInterruption.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGear_TractionInterruption_MeasuredSpeed_Gear_Rural_TractionInterruption.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_TractionInterruption.vsum",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGear_TractionInterruption.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_Aux_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAux.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAux_MeasuredSpeed_Gear_Rural_Aux.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearAux_MeasuredSpeed_Gear_Rural_Aux.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAux.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGearAux.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_Vair_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearVair.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVair_MeasuredSpeed_Gear_Rural_Vair.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearVair_MeasuredSpeed_Gear_Rural_Vair.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVair.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGearVair.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_VairAux_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearVairAux.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVairAux_MeasuredSpeed_Gear_Rural_VairAux.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearVairAux_MeasuredSpeed_Gear_Rural_VairAux.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVairAux.vsum",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearVairAux.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_AT_PS_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS.vsum",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vsum");
-		}
-
-		[TestMethod]
-		public void MeasuredSpeed_Gear_AT_Ser_Run()
-		{
-			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vecto",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod",
-				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser.vsum",
-				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vsum");
-		}
-
-		[TestMethod]
-		public void VcdbTest()
-		{
-			var tbl = VectoCSVFile.Read(@"TestData/MeasuredSpeed/VairBetaFull.vcdb");
-
-			var dataBus = new MockVehicleContainer();
-
-			var vairbeta = new CrosswindCorrectionVAirBeta(5.SI<SquareMeter>(),
-				CrossWindCorrectionCurveReader.ReadCdxABetaTable(tbl));
-			vairbeta.SetDataBus(dataBus);
-
-			var cycleEntry = new DrivingCycleData.DrivingCycleEntry() {
-				AirSpeedRelativeToVehicle = 20.KMPHtoMeterPerSecond(),
-				WindYawAngle = 0
-			};
-			dataBus.CycleData = new CycleData() { LeftSample = cycleEntry };
-
-			var pAvg =
-				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 20.KMPHtoMeterPerSecond()).Value();
-			Assert.AreEqual(509.259, pAvg, 1e-3);
-
-			pAvg =
-				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 21.KMPHtoMeterPerSecond()).Value();
-			Assert.AreEqual(521.990, pAvg, 1e-3);
-
-			pAvg =
-				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 30.KMPHtoMeterPerSecond()).Value();
-			Assert.AreEqual(636.574, pAvg, 1e-3);
-
-			cycleEntry.WindYawAngle = 20;
-
-			pAvg =
-				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 20.KMPHtoMeterPerSecond()).Value();
-			Assert.AreEqual(829.074, pAvg, 1e-3);
-
-			pAvg =
-				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 30.KMPHtoMeterPerSecond()).Value();
-			Assert.AreEqual(1036.343, pAvg, 1e-3);
-
-			cycleEntry.WindYawAngle = -120;
-
-			pAvg =
-				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 20.KMPHtoMeterPerSecond()).Value();
-			Assert.AreEqual(-1019.5370, pAvg, 1e-3);
-		}
-	}
+							  4  ,10.5768,-0.049730127,3.520827362";
+
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.ToStream(), CycleType.MeasuredSpeed, "", false);
+
+			var fuelConsumption = new DataTable();
+			fuelConsumption.Columns.Add("");
+			fuelConsumption.Columns.Add("");
+			fuelConsumption.Columns.Add("");
+			fuelConsumption.Rows.Add("1", "1", "1");
+			fuelConsumption.Rows.Add("2", "2", "2");
+			fuelConsumption.Rows.Add("3", "3", "3");
+
+			var fullLoad = new DataTable();
+			fullLoad.Columns.Add("Engine speed");
+			fullLoad.Columns.Add("max torque");
+			fullLoad.Columns.Add("drag torque");
+			fullLoad.Columns.Add("PT1");
+			fullLoad.Rows.Add("0", "5000", "-5000", "0");
+			fullLoad.Rows.Add("3000", "5000", "-5000", "0");
+
+			var fullLoadCurve = FullLoadCurveReader.Create(fullLoad);
+			var data = new VectoRunData {
+				Cycle = drivingCycle,
+				VehicleData =
+					new VehicleData {
+						VehicleCategory = VehicleCategory.RigidTruck,
+						WheelsInertia = 2.SI<KilogramSquareMeter>(),
+						DynamicTyreRadius = 0.85.SI<Meter>(),
+					},
+				AirdragData = new AirdragData() {
+					CrossWindCorrectionCurve =
+						new CrosswindCorrectionCdxALookup(6.16498344.SI<SquareMeter>(),
+							CrossWindCorrectionCurveReader.GetNoCorrectionCurve(6.16498344.SI<SquareMeter>()),
+							CrossWindCorrectionMode.NoCorrection)
+				},
+				AxleGearData = new AxleGearData { AxleGear = new GearData { Ratio = 2.3 } },
+				EngineData = new CombustionEngineData {
+					IdleSpeed = 560.RPMtoRad(),
+					FullLoadCurves = new Dictionary<uint, EngineFullLoadCurve> {
+						{ 0, fullLoadCurve },
+						{ 1, fullLoadCurve },
+						{ 2, fullLoadCurve },
+						{ 3, fullLoadCurve }
+					}
+				},
+				GearboxData = new GearboxData {
+					Gears = new Dictionary<uint, GearData> {
+						{ 1, new GearData { Ratio = 6.696 } },
+						{ 2, new GearData { Ratio = 3.806 } },
+						{ 3, new GearData { Ratio = 2.289 } }
+					},
+					StartSpeed = 2.SI<MeterPerSecond>()
+				},
+				Retarder = new RetarderData()
+			};
+
+			// call builder (actual test)
+			var builder = new PowertrainBuilder(new MockModalDataContainer());
+			var jobContainer = builder.Build(data);
+		}
+
+		private static void RunJob(string jobFile, string expectedModFile, string actualModFile, string expectedSumFile,
+			string actualSumFile, bool actualModData = false)
+		{
+			var fileWriter = new FileOutputWriter(jobFile);
+			var sumWriter = new SummaryDataContainer(fileWriter);
+			var jobContainer = new JobContainer(sumWriter);
+
+			var inputData = JSONInputDataFactory.ReadJsonJob(jobFile);
+			var runsFactory = new SimulatorFactory(ExecutionMode.Engineering, inputData, fileWriter);
+			runsFactory.ActualModalData = actualModData;
+			runsFactory.WriteModalResults = true;
+
+			jobContainer.AddRuns(runsFactory);
+			jobContainer.Execute();
+
+			jobContainer.WaitFinished();
+
+			Assert.IsTrue(jobContainer.Runs.All(r => r.Success), string.Concat(jobContainer.Runs.Select(r => r.ExecException)));
+
+			ResultFileHelper.TestModFile(expectedModFile, actualModFile);
+			ResultFileHelper.TestSumFile(expectedSumFile, actualSumFile);
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeed.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeed_MeasuredSpeed.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeed_MeasuredSpeed.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeed.vsum", @"TestData\MeasuredSpeed\MeasuredSpeed.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeedAux_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedAux.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedAux_MeasuredSpeedAux.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedAux_MeasuredSpeedAux.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedAux.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedAux.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeedVair_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVair.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVair_MeasuredSpeedVair.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedVair_MeasuredSpeedVair.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVair.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVair.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeedVair_WindFromFront_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairFront.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairFront_MeasuredSpeedVairFront.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedVairFront_MeasuredSpeedVairFront.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairFront.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVairFront.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeedVair_WindFromBack_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairBack.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairBack_MeasuredSpeedVairBack.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedVairBack_MeasuredSpeedVairBack.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairBack.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVairBack.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeedVair_NoWind_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairNoWind.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairNoWind_MeasuredSpeedVairNoWind.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedVairNoWind_MeasuredSpeedVairNoWind.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairNoWind.vsum",
+				@"TestData\MeasuredSpeed\MeasuredSpeedVairNoWind.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeedVairAux_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedVairAux.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairAux_MeasuredSpeedVairAux.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedVairAux_MeasuredSpeedVairAux.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedVairAux.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedVairAux.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGear.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_MeasuredSpeed_Gear_Rural.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGear_MeasuredSpeed_Gear_Rural.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGear.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_TractionInterruption_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGear_TractionInterruption.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_TractionInterruption_MeasuredSpeed_Gear_Rural_TractionInterruption.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGear_TractionInterruption_MeasuredSpeed_Gear_Rural_TractionInterruption.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGear_TractionInterruption.vsum",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGear_TractionInterruption.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_Aux_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAux.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAux_MeasuredSpeed_Gear_Rural_Aux.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearAux_MeasuredSpeed_Gear_Rural_Aux.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAux.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGearAux.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_Vair_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearVair.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVair_MeasuredSpeed_Gear_Rural_Vair.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearVair_MeasuredSpeed_Gear_Rural_Vair.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVair.vsum", @"TestData\MeasuredSpeed\MeasuredSpeedGearVair.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_VairAux_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearVairAux.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVairAux_MeasuredSpeed_Gear_Rural_VairAux.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearVairAux_MeasuredSpeed_Gear_Rural_VairAux.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearVairAux.vsum",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearVairAux.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_AT_PS_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS_MeasuredSpeedGear_AT-PS.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-PS.vsum",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-PS.vsum");
+		}
+
+		[TestMethod]
+		public void MeasuredSpeed_Gear_AT_Ser_Run()
+		{
+			RunJob(@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vecto",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser_MeasuredSpeedGear_AT-Ser.vmod",
+				@"TestData\MeasuredSpeed\Results\MeasuredSpeedGearAT-Ser.vsum",
+				@"TestData\MeasuredSpeed\MeasuredSpeedGearAT-Ser.vsum");
+		}
+
+		[TestMethod]
+		public void VcdbTest()
+		{
+			var tbl = VectoCSVFile.Read(@"TestData/MeasuredSpeed/VairBetaFull.vcdb");
+
+			var dataBus = new MockVehicleContainer();
+
+			var vairbeta = new CrosswindCorrectionVAirBeta(5.SI<SquareMeter>(),
+				CrossWindCorrectionCurveReader.ReadCdxABetaTable(tbl));
+			vairbeta.SetDataBus(dataBus);
+
+			var cycleEntry = new DrivingCycleData.DrivingCycleEntry() {
+				AirSpeedRelativeToVehicle = 20.KMPHtoMeterPerSecond(),
+				WindYawAngle = 0
+			};
+			dataBus.CycleData = new CycleData() { LeftSample = cycleEntry };
+
+			var pAvg =
+				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 20.KMPHtoMeterPerSecond(), Physics.AirDensity).Value();
+			Assert.AreEqual(509.259, pAvg, 1e-3);
+
+			pAvg =
+				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 21.KMPHtoMeterPerSecond(), Physics.AirDensity).Value();
+			Assert.AreEqual(521.990, pAvg, 1e-3);
+
+			pAvg =
+				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 30.KMPHtoMeterPerSecond(), Physics.AirDensity).Value();
+			Assert.AreEqual(636.574, pAvg, 1e-3);
+
+			cycleEntry.WindYawAngle = 20;
+
+			pAvg =
+				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 20.KMPHtoMeterPerSecond(), Physics.AirDensity).Value();
+			Assert.AreEqual(829.074, pAvg, 1e-3);
+
+			pAvg =
+				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 30.KMPHtoMeterPerSecond(), Physics.AirDensity).Value();
+			Assert.AreEqual(1036.343, pAvg, 1e-3);
+
+			cycleEntry.WindYawAngle = -120;
+
+			pAvg =
+				vairbeta.AverageAirDragPowerLoss(20.KMPHtoMeterPerSecond(), 20.KMPHtoMeterPerSecond(), Physics.AirDensity).Value();
+			Assert.AreEqual(-1019.5370, pAvg, 1e-3);
+		}
+	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
index 377c893758a0806862a08f05e77843f56596f6f0..b2d47b097db56f02d9b3fdfbf3f2346612d370c4 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		public void DriverCoastingTest()
 		{
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile, 1);
-			
+
 			var vehicleData = CreateVehicleData(33000.SI<Kilogram>());
 			var airdragData = CreateAirdragData();
 			vehicleData.DynamicTyreRadius = 0.026372213.SI<Meter>(); // take into account axle ratio, gear ratio
@@ -398,7 +398,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			};
 			return new VehicleData {
 				AxleConfiguration = AxleConfiguration.AxleConfig_4x2,
-				
+				AirDensity = DeclarationData.AirDensity,
 				CurbWeight = 15700.SI<Kilogram>(),
 				Loading = loading,
 				DynamicTyreRadius = 0.52.SI<Meter>(),