diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs
index f44fbd9dbff8d0496834daf46be738072d08f30f..ad1a7418d088abac5d742807435179f3ffa6d99b 100644
--- a/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs
+++ b/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs
@@ -100,6 +100,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 				? data.AirDragAreaRigidTruck
 				: data.AirDragArea;
 
+			retVal.CrossWindCorrectionMode = data.CrossWindCorrectionMode;
 			retVal.CrossWindCorrectionCurve = GetDeclarationAirResistanceCurve(retVal.VehicleCategory, aerodynamicDragAera);
 			var axles = data.Axles;
 			if (axles.Count < mission.AxleWeightDistribution.Length) {
diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
index cd874d2cff7e856f261e9ba16dff093f0194a8ce..d07e06f2eeacc855edb563fad11b645cebef41eb 100644
--- a/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
+++ b/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
@@ -58,6 +58,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 			retVal.CurbWeigthExtra = data.CurbWeightExtra;
 			retVal.Loading = data.Loading;
 			retVal.DynamicTyreRadius = data.DynamicTyreRadius;
+			retVal.CrossWindCorrectionMode = data.CrossWindCorrectionMode;
 			switch (data.CrossWindCorrectionMode) {
 				case CrossWindCorrectionMode.NoCorrection:
 					retVal.CrossWindCorrectionCurve = CrossWindCorrectionCurve.GetNoCorrectionCurve(data.AirDragArea);
diff --git a/VectoCore/InputData/Reader/DrivingCycleDataReader.cs b/VectoCore/InputData/Reader/DrivingCycleDataReader.cs
index a7dee40f9cd611a8e58b7a76fccba5a9ecf51524..1a4f90c5e848155d5c933342c009d0a8f04dd79b 100644
--- a/VectoCore/InputData/Reader/DrivingCycleDataReader.cs
+++ b/VectoCore/InputData/Reader/DrivingCycleDataReader.cs
@@ -100,13 +100,14 @@ namespace TUGraz.VectoCore.InputData.Reader
 		/// </summary>
 		/// <param name="fileName">Name of the file.</param>
 		/// <param name="type">The type.</param>
+		/// <param name="crossWindRequired"></param>
 		/// <returns></returns>
 		/// <exception cref="VectoException">ERROR while reading DrivingCycle File:  + ex.Message</exception>
-		public static DrivingCycleData ReadFromFile(string fileName, CycleType type)
+		public static DrivingCycleData ReadFromFile(string fileName, CycleType type, bool crossWindRequired)
 		{
 			try {
 				var stream = File.OpenRead(fileName);
-				return ReadFromStream(stream, type, Path.GetFileNameWithoutExtension(fileName));
+				return ReadFromStream(stream, type, Path.GetFileNameWithoutExtension(fileName), crossWindRequired);
 			} catch (Exception ex) {
 				throw new VectoException("ERROR while opening DrivingCycle File: " + ex.Message);
 			}
@@ -117,12 +118,13 @@ namespace TUGraz.VectoCore.InputData.Reader
 		/// </summary>
 		/// <param name="stream">The stream.</param>
 		/// <param name="type">The type.</param>
+		/// <param name="crossWindRequired"></param>
 		/// <param name="name">the name of the cycle</param>
 		/// <returns></returns>
-		public static DrivingCycleData ReadFromStream(Stream stream, CycleType type, string name = null)
+		public static DrivingCycleData ReadFromStream(Stream stream, CycleType type, string name, bool crossWindRequired)
 		{
 			try {
-				return ReadFromDataTable(VectoCSVFile.ReadStream(stream), type, name);
+				return ReadFromDataTable(VectoCSVFile.ReadStream(stream), type, name, crossWindRequired);
 			} catch (Exception ex) {
 				throw new VectoException("ERROR while reading DrivingCycle Stream: " + ex.Message);
 			}
@@ -133,14 +135,15 @@ namespace TUGraz.VectoCore.InputData.Reader
 		/// </summary>
 		/// <param name="data">The cycle data.</param>
 		/// <param name="name">The name.</param>
+		/// <param name="crossWindRequired"></param>
 		/// <returns></returns>
-		public static DrivingCycleData ReadFromDataTable(DataTable data, string name)
+		public static DrivingCycleData ReadFromDataTable(DataTable data, string name, bool crossWindRequired)
 		{
 			if (data == null) {
 				Logger<DistanceBasedCycleDataParser>().Warn("Invalid data for DrivingCycle -- dataTable is null");
 				throw new VectoException("Invalid data for DrivingCycle -- dataTable is null");
 			}
-			return ReadFromDataTable(data, GetCycleType(data), name);
+			return ReadFromDataTable(data, GetCycleType(data), name, crossWindRequired);
 		}
 
 		/// <summary>
@@ -149,14 +152,15 @@ namespace TUGraz.VectoCore.InputData.Reader
 		/// <param name="data">The cycle data.</param>
 		/// <param name="type">The type.</param>
 		/// <param name="name">The name.</param>
+		/// <param name="crossWindRequired"></param>
 		/// <returns></returns>
-		public static DrivingCycleData ReadFromDataTable(DataTable data, CycleType type, string name)
+		public static DrivingCycleData ReadFromDataTable(DataTable data, CycleType type, string name, bool crossWindRequired)
 		{
 			if (data == null) {
 				Logger<DistanceBasedCycleDataParser>().Warn("Invalid data for DrivingCycle -- dataTable is null");
 				throw new VectoException("Invalid data for DrivingCycle -- dataTable is null");
 			}
-			var entries = GetDataParser(type).Parse(data).ToList();
+			var entries = GetDataParser(type).Parse(data, crossWindRequired).ToList();
 
 			if (type == CycleType.DistanceBased) {
 				entries = FilterDrivingCycleEntries(entries);
@@ -293,7 +297,13 @@ namespace TUGraz.VectoCore.InputData.Reader
 
 		private interface ICycleDataParser
 		{
-			IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table);
+			/// <summary>
+			/// Parses a datatable to a list of drivingcycleentries for the current implementation.
+			/// </summary>
+			/// <param name="table"></param>
+			/// <param name="crossWindRequired"></param>
+			/// <returns></returns>
+			IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired);
 		}
 
 		private abstract class AbstractCycleDataParser : ICycleDataParser
@@ -336,12 +346,12 @@ namespace TUGraz.VectoCore.InputData.Reader
 				return true;
 			}
 
-			public abstract IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table);
+			public abstract IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired);
 		}
 
 		private class DistanceBasedCycleDataParser : AbstractCycleDataParser
 		{
-			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table)
+			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired)
 			{
 				ValidateHeader(table.Columns.Cast<DataColumn>().Select(col => col.ColumnName).ToArray());
 
@@ -354,8 +364,9 @@ namespace TUGraz.VectoCore.InputData.Reader
 					AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
 					AngularVelocity = row.ParseDoubleOrGetDefault(Fields.EngineSpeed).RPMtoRad(),
 					Gear = (uint)row.ParseDoubleOrGetDefault(Fields.Gear),
-					AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond(),
-					WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle),
+					AirSpeedRelativeToVehicle =
+						crossWindRequired ? row.ParseDouble(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond() : null,
+					WindYawAngle = crossWindRequired ? row.ParseDoubleOrGetDefault(Fields.WindYawAngle) : 0,
 					AuxiliarySupplyPower = row.GetAuxiliaries()
 				});
 			}
@@ -387,7 +398,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 
 		private class TimeBasedCycleDataParser : DistanceBasedCycleDataParser
 		{
-			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table)
+			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired)
 			{
 				ValidateHeader(table.Columns.Cast<DataColumn>().Select(col => col.ColumnName).ToArray());
 
@@ -399,8 +410,9 @@ namespace TUGraz.VectoCore.InputData.Reader
 					AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
 					Gear = (uint)row.ParseDoubleOrGetDefault(Fields.Gear),
 					AngularVelocity = row.ParseDoubleOrGetDefault(Fields.EngineSpeed).RPMtoRad(),
-					AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond(),
-					WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle),
+					AirSpeedRelativeToVehicle =
+						crossWindRequired ? row.ParseDouble(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond() : null,
+					WindYawAngle = crossWindRequired ? row.ParseDouble(Fields.WindYawAngle) : 0,
 					AuxiliarySupplyPower = row.GetAuxiliaries()
 				}).ToArray();
 
@@ -431,7 +443,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 
 		private class EngineOnlyCycleDataParser : AbstractCycleDataParser
 		{
-			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table)
+			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired)
 			{
 				ValidateHeader(table.Columns.Cast<DataColumn>().Select(col => col.ColumnName).ToArray());
 
@@ -505,7 +517,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 		// <t>, <Pwheel>, <Gear>, <n>, <Padd>
 		private class PWheelCycleDataParser : AbstractCycleDataParser
 		{
-			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table)
+			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired)
 			{
 				ValidateHeader(table.Columns.Cast<DataColumn>().Select(col => col.ColumnName).ToArray());
 
@@ -541,7 +553,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 		// <t>, <v>, <grad>, <Padd>[, <vair_res>, <vair_beta>][, Aux_...]
 		private class MeasuredSpeedDataParser : AbstractCycleDataParser
 		{
-			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table)
+			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired)
 			{
 				ValidateHeader(table.Columns.Cast<DataColumn>().Select(col => col.ColumnName).ToArray());
 
@@ -550,8 +562,10 @@ namespace TUGraz.VectoCore.InputData.Reader
 					VehicleTargetSpeed = row.ParseDouble(Fields.VehicleSpeed).KMPHtoMeterPerSecond(),
 					RoadGradient = VectoMath.InclinationToAngle(row.ParseDoubleOrGetDefault(Fields.RoadGradient) / 100.0),
 					AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
-					AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond(),
-					WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle),
+					// todo mk-2016-02-25 decide if null or 0.SI<MeterPerSecond>()?
+					AirSpeedRelativeToVehicle =
+						crossWindRequired ? row.ParseDouble(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond() : null,
+					WindYawAngle = crossWindRequired ? row.ParseDouble(Fields.WindYawAngle) : 0,
 					AuxiliarySupplyPower = row.GetAuxiliaries()
 				}).ToArray();
 
@@ -588,7 +602,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 		// <t>, <v>, <grad>, <Padd>, <n>, <gear>[, <vair_res>, <vair_beta>][, Aux_...]
 		private class MeasuredSpeedGearDataParser : AbstractCycleDataParser
 		{
-			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table)
+			public override IEnumerable<DrivingCycleData.DrivingCycleEntry> Parse(DataTable table, bool crossWindRequired)
 			{
 				ValidateHeader(table.Columns.Cast<DataColumn>().Select(col => col.ColumnName).ToArray());
 
@@ -599,8 +613,9 @@ namespace TUGraz.VectoCore.InputData.Reader
 					AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
 					AngularVelocity = row.ParseDouble(Fields.EngineSpeed).RPMtoRad(),
 					Gear = (uint)row.ParseDouble(Fields.Gear),
-					AirSpeedRelativeToVehicle = row.ParseDoubleOrGetDefault(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond(),
-					WindYawAngle = row.ParseDoubleOrGetDefault(Fields.WindYawAngle),
+					AirSpeedRelativeToVehicle =
+						crossWindRequired ? row.ParseDouble(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond() : null,
+					WindYawAngle = crossWindRequired ? row.ParseDoubleOrGetDefault(Fields.WindYawAngle) : 0,
 					AuxiliarySupplyPower = row.GetAuxiliaries()
 				}).ToArray();
 
diff --git a/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
index f1eeeae1033295696eee35362a96534ecca2e465..2311aa3cd76f6772b7e781d1187babf09217f686 100644
--- a/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
+++ b/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				if (CyclesCache.ContainsKey(mission.MissionType)) {
 					cycle = CyclesCache[mission.MissionType];
 				} else {
-					cycle = DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased);
+					cycle = DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false);
 					CyclesCache.Add(mission.MissionType, cycle);
 				}
 				foreach (var loading in mission.Loadings) {
diff --git a/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs b/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
index a46bb5ece40732737b40e23c690d907b20785320..37876ecd56f68e7552673e39490c94215f1e0e5e 100644
--- a/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
+++ b/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
@@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				var simulationRunData = new VectoRunData {
 					JobName = InputDataProvider.JobInputData().JobName,
 					EngineData = dao.CreateEngineData(InputDataProvider.EngineInputData),
-					Cycle = DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, CycleType.EngineOnly, cycle.Name),
+					Cycle = DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, CycleType.EngineOnly, cycle.Name, false),
 					IsEngineOnly = IsEngineOnly
 				};
 				yield return simulationRunData;
diff --git a/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index 2bf77413797628976dcbd3935e27da47e6e433e9..a80dccffa5d19204ac41e78bb7598f5bad8a774a 100644
--- a/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -62,16 +62,20 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			var driver = dao.CreateDriverData(InputDataProvider.DriverInputData);
 			var engineData = dao.CreateEngineData(InputDataProvider.EngineInputData);
 
+			var vehicleInputData = InputDataProvider.VehicleInputData;
+
 			return InputDataProvider.JobInputData().Cycles.Select(cycle => new VectoRunData {
 				JobName = InputDataProvider.JobInputData().JobName,
 				EngineData = engineData,
 				GearboxData = dao.CreateGearboxData(InputDataProvider.GearboxInputData, engineData),
 				AxleGearData = dao.CreateAxleGearData(InputDataProvider.AxleGearInputData),
-				VehicleData = dao.CreateVehicleData(InputDataProvider.VehicleInputData),
+				VehicleData = dao.CreateVehicleData(vehicleInputData),
 				DriverData = driver,
 				Aux = dao.CreateAuxiliaryData(InputDataProvider.AuxiliaryInputData()),
 				Retarder = dao.CreateRetarderData(InputDataProvider.RetarderInputData, InputDataProvider.VehicleInputData),
-				Cycle = DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name),
+				Cycle =
+					DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name,
+						vehicleInputData.CrossWindCorrectionMode == CrossWindCorrectionMode.VAirBetaLookupTable),
 				IsEngineOnly = InputDataProvider.JobInputData().EngineOnlyMode
 			});
 		}
diff --git a/VectoCore/Models/SimulationComponent/Data/ICrossWindCorrection.cs b/VectoCore/Models/SimulationComponent/Data/ICrossWindCorrection.cs
index 14172405038ac534ad816546052338e1a569ad5d..8256920ed72e795337652b56e14194f9689fb0fd 100644
--- a/VectoCore/Models/SimulationComponent/Data/ICrossWindCorrection.cs
+++ b/VectoCore/Models/SimulationComponent/Data/ICrossWindCorrection.cs
@@ -1,3 +1,34 @@
+/*
+* This file is part of VECTO.
+*
+* Copyright © 2012-2016 European Union
+*
+* Developed by Graz University of Technology,
+*              Institute of Internal Combustion Engines and Thermodynamics,
+*              Institute of Technical Informatics
+*
+* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
+* by the European Commission - subsequent versions of the EUPL (the "Licence");
+* You may not use VECTO except in compliance with the Licence.
+* You may obtain a copy of the Licence at:
+*
+* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
+*
+* Unless required by applicable law or agreed to in writing, VECTO
+* distributed under the Licence is distributed on an "AS IS" basis,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the Licence for the specific language governing permissions and
+* limitations under the Licence.
+*
+* Authors:
+*   Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
+*   Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
+*   Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
+*   Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
+*   Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
+*   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
+*/
+
 using System.Dynamic;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Utils;
diff --git a/VectoCore/Models/SimulationComponent/Data/VAirBetaCrosswindCorrection.cs b/VectoCore/Models/SimulationComponent/Data/VAirBetaCrosswindCorrection.cs
index 91d92679f6b5fb1274c38eaeb2edb8151abe716d..fd95db64efd7efd59401c5cf1e11f59d2a608e60 100644
--- a/VectoCore/Models/SimulationComponent/Data/VAirBetaCrosswindCorrection.cs
+++ b/VectoCore/Models/SimulationComponent/Data/VAirBetaCrosswindCorrection.cs
@@ -1,3 +1,34 @@
+/*
+* This file is part of VECTO.
+*
+* Copyright © 2012-2016 European Union
+*
+* Developed by Graz University of Technology,
+*              Institute of Internal Combustion Engines and Thermodynamics,
+*              Institute of Technical Informatics
+*
+* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
+* by the European Commission - subsequent versions of the EUPL (the "Licence");
+* You may not use VECTO except in compliance with the Licence.
+* You may obtain a copy of the Licence at:
+*
+* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
+*
+* Unless required by applicable law or agreed to in writing, VECTO
+* distributed under the Licence is distributed on an "AS IS" basis,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the Licence for the specific language governing permissions and
+* limitations under the Licence.
+*
+* Authors:
+*   Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
+*   Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
+*   Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
+*   Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
+*   Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
+*   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
+*/
+
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
diff --git a/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
index 5e4391c0df92a868ad5cd456d425067c33392721..0a03f0997633cba4e2b834c087e0741e85dc0546 100644
--- a/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
+++ b/VectoCore/Models/SimulationComponent/Data/VehicleData.cs
@@ -72,6 +72,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		// public Kilogram ReducedMassWheels { get; private set; }
 		public string Rim { get; internal set; }
 		public double TotalRollResistanceCoefficient { get; private set; }
+		public CrossWindCorrectionMode CrossWindCorrectionMode { get; set; }
 
 		public Kilogram TotalVehicleWeight()
 		{
diff --git a/VectoCore/Utils/VectoCSVFile.cs b/VectoCore/Utils/VectoCSVFile.cs
index 0d5b91b61f84dd7f39b3de7c371e6887eed32dad..8bf819c42ab44c563e29f9cb37147f979f0b7cb6 100644
--- a/VectoCore/Utils/VectoCSVFile.cs
+++ b/VectoCore/Utils/VectoCSVFile.cs
@@ -36,7 +36,6 @@ using System.Diagnostics.Contracts;
 using System.Globalization;
 using System.IO;
 using System.Linq;
-using System.Text;
 using System.Text.RegularExpressions;
 using TUGraz.VectoCore.Exceptions;
 using TUGraz.VectoCore.Models;
diff --git a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
index 310a0d320b361672a4f8bd49474d19f8cdba27bc..7689bfd216603ea5b0fb44086149820f3f520339 100644
--- a/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
+++ b/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
@@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 		[TestMethod]
 		public void TestEngineOnlyDrivingCycle()
 		{
-			var data = DrivingCycleDataReader.ReadFromFile(TestContext.DataRow["CycleFile"].ToString(), CycleType.EngineOnly);
+			var data = DrivingCycleDataReader.ReadFromFile(TestContext.DataRow["CycleFile"].ToString(), CycleType.EngineOnly, false);
 			var vehicle = new VehicleContainer();
 			var cycle = new MockDrivingCycle(vehicle, data);
 			var engineData =
diff --git a/VectoCoreTest/Integration/SimpleDrivingCycles.cs b/VectoCoreTest/Integration/SimpleDrivingCycles.cs
index c9158ff82c8bbe1f3f5a495f6fe44188db5eeef1..6fb684c05e0b50389a42eb7fe28832d034f38943 100644
--- a/VectoCoreTest/Integration/SimpleDrivingCycles.cs
+++ b/VectoCoreTest/Integration/SimpleDrivingCycles.cs
@@ -44,11 +44,9 @@ namespace TUGraz.VectoCore.Tests.Integration
 		public static DrivingCycleData CreateCycleData(string[] entries)
 		{
 			var cycleData = InputDataHelper.InputDataAsStream("<s>,<v>,<grad>,<stop>", entries);
-			return DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased);
+			return DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased, "", false);
 		}
 
-
-
 		#region Accelerate
 
 		public static readonly string[] CycleAccelerate_20_60_Level = {
@@ -685,7 +683,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 		public static DrivingCycleData ReadDeclarationCycle(string missionType)
 		{
 			var cycleData = RessourceHelper.ReadStream(RessourceHelper.Namespace + "MissionCycles." + missionType + ".vdri");
-			var cycle = DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased);
+			var cycle = DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased, "", false);
 			return cycle;
 		}
 	}
diff --git a/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
index e2f63e54689013c7b47c7582e7f01022aaa7636c..c976b1c617ce8b7105898d52ae6353dd78ec0d9b 100644
--- a/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
@@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var container = new VehicleContainer(modData);
 
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile);
-			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFile, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFile, CycleType.DistanceBased, false);
 			var axleGearData = CreateAxleGearData();
 			var gearboxData = CreateSimpleGearboxData();
 			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
@@ -134,7 +134,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var container = new VehicleContainer(modData);
 
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile);
-			var cycleData = DrivingCycleDataReader.ReadFromFile(CoachCycleFile, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(CoachCycleFile, CycleType.DistanceBased, false);
 			var axleGearData = CreateAxleGearData();
 			var gearboxData = CreateGearboxData();
 			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
@@ -208,7 +208,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var container = new VehicleContainer(modData);
 
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile);
-			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFile, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFile, CycleType.DistanceBased, false);
 			var axleGearData = CreateAxleGearData();
 			var gearboxData = CreateGearboxData();
 			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
diff --git a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
index f8555351fecee3fbd764f0ab976738ce99b8422e..d933eb49dd3c82c603daea63b5ed5061da1662f4 100644
--- a/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
+++ b/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
@@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 		public void TestWheelsAndEngine()
 		{
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile);
-			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFile, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFile, CycleType.DistanceBased, false);
 
 			var axleGearData = CreateAxleGearData();
 
@@ -186,7 +186,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 		public void TestWheelsAndEngineLookahead()
 		{
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile);
-			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFileStop, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(CycleFileStop, CycleType.DistanceBased, false);
 
 			var axleGearData = CreateAxleGearData();
 
diff --git a/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCoreTest/Models/Simulation/AuxTests.cs
index 4988002a854d957fc6b2ac6be7b38aa7d2e46fdb..238a197802fa0a87032adc50cd833e3f08030d49 100644
--- a/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var sumWriter = new SummaryDataContainer(fileWriter);
 			var container = new VehicleContainer(modData,
 				(writer, mass, loading) => sumWriter.WriteFullPowertrain(modData, "", "", "", null, null));
-			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\LongHaul_short.vdri", CycleType.DistanceBased);
+			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\LongHaul_short.vdri", CycleType.DistanceBased, false);
 			var mockcycle = new MockDrivingCycle(container, data);
 
 			var aux = new EngineAuxiliary(container);
@@ -144,7 +144,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 		{
 			var dataWriter = new MockModalDataContainer();
 			var container = new VehicleContainer(dataWriter);
-			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased);
+			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
 			var cycle = new MockDrivingCycle(container, data);
 
 			var aux = new EngineAuxiliary(container);
@@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			dataWriter.AddAuxiliary("CONSTANT");
 
 			var container = new VehicleContainer(dataWriter);
-			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased);
+			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
 			// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
 			// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
 			// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
@@ -231,7 +231,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			dataWriter.AddAuxiliary(auxId);
 
 			var container = new VehicleContainer(dataWriter);
-			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased);
+			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
 			// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
 			// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
 			// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
@@ -280,7 +280,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 		public void AuxColumnMissing()
 		{
 			var container = new VehicleContainer();
-			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased);
+			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
 			var cycle = new MockDrivingCycle(container, data);
 
 			var aux = new EngineAuxiliary(container);
diff --git a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
index 41e7e2cc483c86e9659203b748d1bc9b5ce90352..1194256bece958642282205b72ccda3a4bc7a789 100644
--- a/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
+++ b/VectoCoreTest/Models/Simulation/DrivingCycleTests.cs
@@ -50,7 +50,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var dataWriter = new MockModalDataContainer();
 			var container = new VehicleContainer(dataWriter);
 
-			var cycleData = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach Engine Only.vdri", CycleType.EngineOnly);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach Engine Only.vdri", CycleType.EngineOnly,
+				false);
 			var cycle = new PowertrainDrivingCycle(container, cycleData);
 
 			var outPort = new MockTnOutPort();
@@ -81,7 +82,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var container = new VehicleContainer();
 
 			var cycleData = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach Engine Only Paux_var-dt.vdri",
-				CycleType.EngineOnly);
+				CycleType.EngineOnly, false);
 			var cycle = new PowertrainDrivingCycle(container, cycleData);
 
 			var outPort = new MockTnOutPort();
@@ -141,7 +142,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var container = new VehicleContainer();
 
 			var cycleData = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach First Cycle only.vdri",
-				CycleType.TimeBased);
+				CycleType.TimeBased, false);
 			var cycle = new TimeBasedDrivingCycle(container, cycleData);
 
 			var outPort = new MockDrivingCycleOutPort();
@@ -168,7 +169,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			var container = new VehicleContainer(new MockModalDataContainer());
 
 			var cycleData = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Cycle time field missing.vdri",
-				CycleType.TimeBased);
+				CycleType.TimeBased, false);
 			var cycle = new TimeBasedDrivingCycle(container, cycleData);
 
 			var outPort = new MockDrivingCycleOutPort();
diff --git a/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs b/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs
index 77f3ab2660e72a25e876f2737dac81c97f6ac92b..2bfc0d6a765a9213d93803cdd35038a4c40dd2c0 100644
--- a/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs
+++ b/VectoCoreTest/Models/Simulation/MeasuredSpeedModeTest.cs
@@ -166,7 +166,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 				var cycleTypeCalc = DrivingCycleDataReader.GetCycleType(VectoCSVFile.ReadStream(inputData.GetStream()));
 				Assert.AreEqual(cycleType, cycleTypeCalc);
 			}
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.GetStream(), cycleType);
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.GetStream(), cycleType, "", false);
 			Assert.AreEqual(cycleType, drivingCycle.CycleType);
 
 			var cycle = new MeasuredSpeedDrivingCycle(container, drivingCycle);
@@ -187,7 +187,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 							  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.GetStream(), CycleType.MeasuredSpeedGear);
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.GetStream(), CycleType.MeasuredSpeedGear, "",
+				false);
 
 			var fuelConsumption = new DataTable();
 			fuelConsumption.Columns.Add("");
@@ -239,7 +240,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 							  3  ,5.2782 ,-0.041207832,2.453370264
 							  4  ,10.5768,-0.049730127,3.520827362";
 
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.GetStream(), CycleType.MeasuredSpeed);
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.GetStream(), CycleType.MeasuredSpeed, "", false);
 
 			var fuelConsumption = new DataTable();
 			fuelConsumption.Columns.Add("");
diff --git a/VectoCoreTest/Models/Simulation/PwheelModeTests.cs b/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
index c37b95f53869b300ca42bd5eb852ae241e049a11..df235beeb40a2ab30e7944adc5d91ab04860b0c3 100644
--- a/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
+++ b/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
@@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
                                2,120,2,1400,0.4";
 
 			var cycleFile = new MemoryStream(Encoding.UTF8.GetBytes(inputData));
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(cycleFile, CycleType.PWheel);
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(cycleFile, CycleType.PWheel, "", false);
 
 			var gearbox = new CycleGearbox(container,
 				new GearboxData {
@@ -108,7 +108,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
                                2,  120,     2,     1400, 0.4";
 
 			var cycleFile = new MemoryStream(Encoding.UTF8.GetBytes(inputData));
-			var drivingCycle = DrivingCycleDataReader.ReadFromStream(cycleFile, CycleType.PWheel);
+			var drivingCycle = DrivingCycleDataReader.ReadFromStream(cycleFile, CycleType.PWheel, "", false);
 
 			var fuelConsumption = new DataTable();
 			fuelConsumption.Columns.Add("");
diff --git a/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs b/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs
index 58c933f85cd7ce1b8d69eb49f02771f444b20cab..edca85cdce9a2cfa2433e831ca3fdd71c98d8945 100644
--- a/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs
+++ b/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs
@@ -144,7 +144,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		[TestMethod]
 		public void TestDistanceRequest()
 		{
-			var cycleData = DrivingCycleDataReader.ReadFromFile(ShortCycle, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromFile(ShortCycle, CycleType.DistanceBased, false);
 
 			var container = new VehicleContainer();
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
diff --git a/VectoCoreTest/Models/SimulationComponentData/DistanceCycleDataTest.cs b/VectoCoreTest/Models/SimulationComponentData/DistanceCycleDataTest.cs
index 14e90870a457c17fdc2239b3ec565999a0c7b875..a82604b9ddef0f439f10583ab108162a09fcd138 100644
--- a/VectoCoreTest/Models/SimulationComponentData/DistanceCycleDataTest.cs
+++ b/VectoCoreTest/Models/SimulationComponentData/DistanceCycleDataTest.cs
@@ -129,7 +129,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
 			var missionType = "LongHaul";
 			var stream = RessourceHelper.ReadStream(ResourceNamespace + "MissionCycles." + missionType + ".vdri");
 
-			var cycleData = DrivingCycleDataReader.ReadFromStream(stream, CycleType.DistanceBased);
+			var cycleData = DrivingCycleDataReader.ReadFromStream(stream, CycleType.DistanceBased, "", false);
 			foreach (var entry in cycleData.Entries) {
 				var tmp = entry.Altitude;
 			}
diff --git a/VectoCoreTest/TestData/MeasuredSpeed/MeasuredSpeedGearVair.vecto b/VectoCoreTest/TestData/MeasuredSpeed/MeasuredSpeedGearVair.vecto
index c81eca06bbaf5c6b0a3c4ffe45b88a7dfd641f39..470dd9a9eba6fd885c66179c1cdefae828715aeb 100644
--- a/VectoCoreTest/TestData/MeasuredSpeed/MeasuredSpeedGearVair.vecto
+++ b/VectoCoreTest/TestData/MeasuredSpeed/MeasuredSpeedGearVair.vecto
@@ -12,7 +12,7 @@
     "EngineFile": "Engine.veng",
     "GearboxFile": "Gearbox.vgbx",
     "Cycles": [
-      "MeasuredSpeed_Gear_Rural_Vair.vdri"
+      "MeasuredSpeed_Gear_Rural.vdri"
     ],
     "VACC": "Driver.vacc",
     "StartStop": {