diff --git a/VECTO.sln.DotSettings b/VECTO.sln.DotSettings
index 5adda17e090802935ac3a546d7d9bd9549bd32a0..63179ca8314c9ff7e13fb4d58810a6d369ee0ba9 100644
--- a/VECTO.sln.DotSettings
+++ b/VECTO.sln.DotSettings
@@ -33,6 +33,7 @@
 	<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=SI/@EntryIndexedValue">SI</s:String>
 	<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=WHTC/@EntryIndexedValue">WHTC</s:String>
 	<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=XML/@EntryIndexedValue">XML</s:String>
+	<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=XSD/@EntryIndexedValue">XSD</s:String>
 	<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FCONSTANT/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
 	<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FVARIABLE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
 	<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FCONSTRUCTOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs
index 702b48516202017c610f5db17d6c1db4e18e305f..3641ab2a9f69758c1fcc0bb78daa80927c9722c0 100644
--- a/VectoCore/VectoCore/Configuration/Constants.cs
+++ b/VectoCore/VectoCore/Configuration/Constants.cs
@@ -137,9 +137,9 @@ namespace TUGraz.VectoCore.Configuration
 
 			public static readonly MeterPerSecond ATGearboxDisengageWhenHaltingSpeed = 5.KMPHtoMeterPerSecond();
 
-			public static Meter DriverActionDistanceTolerance = 0.25.SI<Meter>();
+			public static readonly Meter DriverActionDistanceTolerance = 0.25.SI<Meter>();
 
-			public static MeterPerSecond VehicleSpeedHaltTolerance = 1e-3.SI<MeterPerSecond>();
+			public static readonly MeterPerSecond VehicleSpeedHaltTolerance = 1e-3.SI<MeterPerSecond>();
 
 			/// <summary>
 			/// The initial search interval for the operating point search in the driver.
@@ -153,8 +153,8 @@ namespace TUGraz.VectoCore.Configuration
 
 			public static readonly Meter GearboxLookaheadForAccelerationEstimation = 100.SI<Meter>();
 
-			public static Kilogram MaximumGrossVehicleWeight = 40000.SI<Kilogram>();
-			public static Kilogram MaximumGrossVehicleWeightEMS = 60000.SI<Kilogram>();
+			public static readonly Kilogram MaximumGrossVehicleWeight = 40000.SI<Kilogram>();
+			public static readonly Kilogram MaximumGrossVehicleWeightEMS = 60000.SI<Kilogram>();
 		}
 
 		public static class XML
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index c1d0b8718d109a2f2c948677a850e7f794efdfcd..90a1b7ae8e3c65dbe313b11051d1d3957b767244 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -128,11 +128,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		protected readonly IGearboxEngineeringInputData Gearbox;
 		protected readonly IAxleGearInputData AxleGear;
 		protected readonly ITorqueConverterEngineeringInputData TorqueConverter;
-		protected IAngledriveInputData Angledrive;
+		protected readonly IAngledriveInputData Angledrive;
 		protected readonly IEngineEngineeringInputData Engine;
-		protected IVehicleEngineeringInputData VehicleData;
-		protected IRetarderInputData Retarder;
-		protected IPTOTransmissionInputData PTOTransmission;
+		protected readonly IVehicleEngineeringInputData VehicleData;
+		protected readonly IRetarderInputData Retarder;
+		protected readonly IPTOTransmissionInputData PTOTransmission;
 
 		private readonly string _jobname;
 		protected internal IAirdragEngineeringInputData AirdragData;
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/AbstractDeclarationXMLComponentDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/AbstractDeclarationXMLComponentDataProvider.cs
index 057e3de639db737d29229ab6597beadc7c0765cc..479a93f1ab839308aa5141e4ba1a3784d25505ee 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/AbstractDeclarationXMLComponentDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/AbstractDeclarationXMLComponentDataProvider.cs
@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
 		{
 			InputData = xmlInputDataProvider;
 			Navigator = xmlInputDataProvider.Document.CreateNavigator();
-			Manager = new XmlNamespaceManager(Navigator.NameTable);
+			Manager = new XmlNamespaceManager(Navigator.NameTable ?? new NameTable());
 			Helper = new XPathHelper(ExecutionMode.Declaration);
 			Helper.AddNamespaces(Manager);
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationInputDataProvider.cs
index 9da4b9b423c9c0ebd737d6f5e1ea116bddec7866..f0efac2e7f92d84b7fa686bf1a4bdd8f84bef534 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationInputDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationInputDataProvider.cs
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
 {
 	public class XMLDeclarationInputDataProvider : IDeclarationInputDataProvider
 	{
-		internal XPathDocument Document;
+		internal readonly XPathDocument Document;
 
 		private readonly IAuxiliariesDeclarationInputData XMLAuxiliaryData;
 		private readonly IDriverDeclarationInputData XMLDriverData;
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/AbstractEngineeringXMLComponentDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/AbstractEngineeringXMLComponentDataProvider.cs
index 3b65dec88b989684409648212bd396adc9d4b82e..e6095be978448cdb88ae04a31493b0de3fd3ebe0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/AbstractEngineeringXMLComponentDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/AbstractEngineeringXMLComponentDataProvider.cs
@@ -50,9 +50,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering
 
 		protected readonly XPathDocument XMLDocument;
 
-		//protected const string VehiclePath = "/VectoInputEngineering/Vehicle";
-
-		public AbstractEngineeringXMLComponentDataProvider(XMLEngineeringInputDataProvider xmlEngineeringJobInputDataProvider,
+		protected AbstractEngineeringXMLComponentDataProvider(
+			XMLEngineeringInputDataProvider xmlEngineeringJobInputDataProvider,
 			XPathDocument document, string xmlBasePath, string fsBasePath)
 		{
 			XMLDocument = document;
@@ -60,7 +59,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering
 			FSBasePath = fsBasePath;
 			InputData = xmlEngineeringJobInputDataProvider;
 			Navigator = document.CreateNavigator();
-			Manager = new XmlNamespaceManager(Navigator.NameTable);
+			Manager = new XmlNamespaceManager(Navigator.NameTable ?? new NameTable());
 			Helper = new XPathHelper(ExecutionMode.Engineering);
 			Helper.AddNamespaces(Manager);
 
@@ -84,7 +83,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering
 			get { return GetElementValue(XMLNames.Component_Model); }
 		}
 
-		
+
 		public override string Date
 		{
 			get { return GetElementValue(XMLNames.Component_Date); }
@@ -102,10 +101,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering
 
 		public override CertificationMethod CertificationMethod
 		{
-			get {  return CertificationMethod.NotCertified;}
+			get { return CertificationMethod.NotCertified; }
 		}
 
-		
+
 		protected TableData ReadCSVResourceFile(string relPath)
 		{
 			if (!ElementExists(Helper.Query(relPath, ExtCsvResourceTag))) {
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index c97c1685c752fa068f9dbc68d58ded642386d570..bb171f162efe4b97dfff0a91dd79020303431b83 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -398,7 +398,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				var cdASum = 0.SI<SquareMeter>();
 
 				for (var heightPercent = startHeightPercent; heightPercent < maxHeightPercent; heightPercent += heightPercentStep) {
-					var height = (heightPercent / 100.0) * vehicleHeight;
+					var height = heightPercent / 100.0 * vehicleHeight;
 					var vWind = Physics.BaseWindSpeed * Math.Pow(height / Physics.BaseWindHeight, Physics.HellmannExponent);
 
 					for (var alpha = 0; alpha <= maxAlpha; alpha += alphaStep) {
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
index 4b5eb1a8618484a142264da52d13b04a3bc75467..90e0ed91e6f1a3c844f46fe7821e33aa600dacea 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs
@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 		private static readonly Dictionary<MissionType, DrivingCycleData> CyclesCache =
 			new Dictionary<MissionType, DrivingCycleData>();
 
-		protected IDeclarationInputDataProvider InputDataProvider;
+		protected readonly IDeclarationInputDataProvider InputDataProvider;
 
 		protected IDeclarationReport Report;
 		private DeclarationDataAdapter _dao;
@@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 				InitializeReport();
 			}
 		}
-		
+
 		private void Initialize()
 		{
 			_dao = new DeclarationDataAdapter();
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index ad566d84908c2995154cb0b59625870f3355eac5..f16c058a67a08083728de558d540c4457639851b 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -75,8 +75,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			var ptoTransmissionData = dao.CreatePTOTransmissionData(InputDataProvider.PTOTransmissionInputData);
 
 			return InputDataProvider.JobInputData().Cycles.Select(cycle => {
-				DrivingCycleData drivingCycle;
-				drivingCycle = CyclesCache.ContainsKey(cycle.CycleData.Source)
+				var drivingCycle = CyclesCache.ContainsKey(cycle.CycleData.Source)
 					? CyclesCache[cycle.CycleData.Source]
 					: DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired);
 				return new VectoRunData {
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 694195235ba6c57bf46fca43fc37803ae1953bee..633b2fc76fe3e3a398f9719b29c982ac89ba918e 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -382,9 +382,9 @@ namespace TUGraz.VectoCore.Models.Declaration
 			public static readonly MeterPerSquareSecond CLUpshiftMinAcceleration = 0.1.SI<MeterPerSquareSecond>();
 			public static readonly MeterPerSquareSecond CCUpshiftMinAcceleration = 0.1.SI<MeterPerSquareSecond>();
 
-			private static PerSecond DownshiftPRM = 700.RPMtoRad();
-			private static PerSecond UpshiftLowRPM = 900.RPMtoRad();
-			private static PerSecond UpshiftHighRPM = 1150.RPMtoRad();
+			private static readonly PerSecond DownshiftPRM = 700.RPMtoRad();
+			private static readonly PerSecond UpshiftLowRPM = 900.RPMtoRad();
+			private static readonly PerSecond UpshiftHighRPM = 1150.RPMtoRad();
 
 			public static ShiftPolygon ComputeShiftPolygon(EngineFullLoadCurve fullLoadCurve, bool first = false,
 				bool last = false)
@@ -411,7 +411,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 
 			public static IEnumerable<TorqueConverterEntry> GetTorqueConverterDragCurve(double ratio)
 			{
-				var resourceId = DeclarationData.DeclarationDataResourcePrefix + ".TorqueConverter.csv";
+				var resourceId = DeclarationDataResourcePrefix + ".TorqueConverter.csv";
 				var data = VectoCSVFile.ReadStream(RessourceHelper.ReadStream(resourceId), source: resourceId);
 				var characteristicTorque = (from DataRow row in data.Rows
 					select
diff --git a/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs b/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
index 8c66898676d76c4c737461ba8a5b37b9014e08d2..17d45656832cf8d89a9abed2ec4b8befa260d126 100644
--- a/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
+++ b/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
@@ -40,12 +40,12 @@ namespace TUGraz.VectoCore.Models.Declaration
 {
 	public sealed class StandardBody
 	{
-		public Kilogram CurbWeight;
-		public Kilogram GrossVehicleWeight;
-		public SquareMeter[] DeltaCrossWindArea;
-		public string Name;
-		public List<Wheels.Entry> Wheels;
-		public CubicMeter CargoVolume;
+		public readonly Kilogram CurbWeight;
+		public readonly Kilogram GrossVehicleWeight;
+		public readonly SquareMeter[] DeltaCrossWindArea;
+		public readonly string Name;
+		public readonly List<Wheels.Entry> Wheels;
+		public readonly CubicMeter CargoVolume;
 
 		public Kilogram MaxPayLoad
 		{
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
index 18457f1e613782a0392e5daa9e51d6b16bbc5d99..c77ea5e0687a545e42922e45b451ef2146d2de32 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
@@ -76,7 +76,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 		{
 			return
 				Runs.Select(
-						r => new CycleTypeDescription { Name = r.Run.CycleName, CycleType = r.Run.GetContainer().RunData.Cycle.CycleType })
+					r => new CycleTypeDescription { Name = r.Run.CycleName, CycleType = r.Run.GetContainer().RunData.Cycle.CycleType })
 					.Distinct();
 		}
 
@@ -195,7 +195,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			public bool Canceled;
 			public double ExecTime;
 			public Exception ExecException;
-			public Task RunTask;
+			public readonly Task RunTask;
 
 			public RunEntry()
 			{
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs
index 95d82da586774d375452ce0a986420fe37457b45..d775142198097a738bd32fd62cab239242987819 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs
@@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			} else {
 				index = _entries.FindIndex(x => x.Key > key);
 				if (index <= 0) {
-					index = (key > _entries[0].Key) ? _entries.Count - 1 : 1;
+					index = key > _entries[0].Key ? _entries.Count - 1 : 1;
 				}
 			}
 			return index;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/CrosswindCorrectionCdxALookup.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/CrosswindCorrectionCdxALookup.cs
index 074097fdddfe827f92036747c4daf9705cefae3b..60bd9b1f464a20efd6ac0d385466936127616ecf 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/CrosswindCorrectionCdxALookup.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/CrosswindCorrectionCdxALookup.cs
@@ -41,7 +41,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 {
 	public class CrosswindCorrectionCdxALookup : LoggingObject, ICrossWindCorrection
 	{
-		protected List<CrossWindCorrectionCurveReader.CrossWindCorrectionEntry> Entries;
+		protected readonly List<CrossWindCorrectionCurveReader.CrossWindCorrectionEntry> Entries;
 
 		public CrosswindCorrectionCdxALookup(SquareMeter airDragArea,
 			List<CrossWindCorrectionCurveReader.CrossWindCorrectionEntry> entries,
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/EngineFullLoadCurve.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/EngineFullLoadCurve.cs
index 09bf6a89cd6ddf409a477424eaeb177d03baaf6d..f5550f9978c5c08ebd27ecade94b495056f880e2 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/EngineFullLoadCurve.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/EngineFullLoadCurve.cs
@@ -58,11 +58,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 		private PerSecond _n95hSpeed; // 95% of Pmax
 		private PerSecond _n80hSpeed; // 80% of Pmax
 
-		[Required, ValidateObject] readonly internal List<FullLoadCurveEntry> FullLoadEntries;
+		[Required, ValidateObject] internal readonly List<FullLoadCurveEntry> FullLoadEntries;
 
 		private SortedList<PerSecond, int> _quickLookup;
 
-		[Required] readonly internal LookupData<PerSecond, PT1.PT1Result> PT1Data;
+		[Required] internal readonly LookupData<PerSecond, PT1.PT1Result> PT1Data;
 
 		internal EngineFullLoadCurve(List<FullLoadCurveEntry> entries, LookupData<PerSecond, PT1.PT1Result> pt1Data)
 		{
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs
index 2ed53294a82f32ac92f68924c8add9ef99c0d150..eab0e66a3e956350ffda779bfce63e4063890d54 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategy.cs
@@ -43,8 +43,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 	/// </summary>
 	public class AMTShiftStrategy : ShiftStrategy
 	{
-		protected uint MaxStartGear;
-		protected uint _nextGear { get; set; }
+		protected readonly uint MaxStartGear;
+		protected uint _nextGear;
 
 		public AMTShiftStrategy(VectoRunData runData, IDataBus dataBus) : base(runData.GearboxData, dataBus)
 		{
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs
index ff8fc30a4160e679ca79e5fe155fc2b4ffb75388..c7ca8e5ec71df0e7ff4005468f130b06b2854bdb 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATGearbox.cs
@@ -49,7 +49,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		private readonly IShiftStrategy _strategy;
 		protected internal readonly TorqueConverter TorqueConverter;
 		private IIdleController _idleController;
-		protected bool _requestAfterGearshift;
+		protected bool RequestAfterGearshift;
 
 		public bool TorqueConverterLocked
 		{
@@ -201,7 +201,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			IResponse retVal;
 			var count = 0;
 			var loop = false;
-			if (_requestAfterGearshift) {
+			if (RequestAfterGearshift) {
 				LastShift = absTime;
 				Gear = _strategy.Engage(absTime, dt, outTorque, outAngularVelocity);
 				CurrentState.PowershiftLossEnergy = ComputeShiftLosses(outTorque, outAngularVelocity);
@@ -227,7 +227,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 							GearboxPowerRequest =
 								outTorque * (PreviousState.OutAngularVelocity + outAngularVelocity) / 2.0
 						};
-						_requestAfterGearshift = true;
+						RequestAfterGearshift = true;
 						LastShift = absTime;
 					} else {
 						loop = true;
@@ -391,7 +391,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 						ModelData.Gears[Gear].Ratio);
 				}
 			}
-			_requestAfterGearshift = false;
+			RequestAfterGearshift = false;
 
 			if (DataBus.VehicleStopped) {
 				CurrentState.Disengaged = true;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs
index a169a68106f9bd7522e07b6a618c46fcaa53773e..2044fa57df3ace8be88d5fc9276363db12f2c0d9 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AxleGear.cs
@@ -60,7 +60,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public Watt AxlegearLoss()
 		{
-			return PreviousState.TorqueLoss * PreviousState.InAngularVelocity;
+			return PreviousState.TorqueLossResult.Value * PreviousState.InAngularVelocity;
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index 114e359f2dd78eac0775c43b9cfadcb647da2e86..b8336024bb8591483a8ff6b90c9d72793c791aee 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -45,11 +45,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 {
 	public class BusAuxiliariesAdapter : LoggingObject, IAuxInProvider, IAuxPort
 	{
-		protected IDataBus DataBus;
+		protected readonly IDataBus DataBus;
 		protected internal BusAuxState CurrentState;
 		protected internal BusAuxState PreviousState;
 
-		protected internal IAuxPort AdditionalAux;
+		protected internal readonly IAuxPort AdditionalAux;
 
 		protected IAdvancedAuxiliaries Auxiliaries;
 		private readonly FuelConsumptionAdapter _fcMapAdapter;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
index f547e7f470117e1b7e248b56c09909811604973e..61febfe04e2865a4c4543040cb9e297f94f07a91 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs
@@ -436,7 +436,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					var powerRatio = (PreviousState.EnginePower / stationaryFullLoadPower).Value();
 					var tStarPrev = pt1 * Math.Log(1.0 / (1 - powerRatio), Math.E).SI<Second>();
 					var tStar = tStarPrev + PreviousState.dt;
-					dynFullPowerCalculated = stationaryFullLoadPower * (pt1.IsEqual(0) ? 1 : (1 - Math.Exp((-tStar / pt1).Value())));
+					dynFullPowerCalculated = stationaryFullLoadPower * (pt1.IsEqual(0) ? 1 : 1 - Math.Exp((-tStar / pt1).Value()));
 				} catch (VectoException e) {
 					Log.Warn("PT1 calculation failed (dryRun: {0}): {1}", dryRun, e.Message);
 					if (dryRun) {
@@ -492,8 +492,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		protected class CombustionEngineIdleController : LoggingObject, IIdleController
 		{
-			private readonly double PeDropSlope = -5;
-			private readonly double PeDropOffset = 1.0;
+			private const double PeDropSlope = -5;
+			private const double PeDropOffset = 1.0;
 
 			private readonly CombustionEngine _engine;
 			private readonly IDataBus _dataBus;
@@ -550,7 +550,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					: (_engineTargetSpeed - _engine.PreviousState.EngineSpeed) /
 					(_dataBus.TractionInterruption - (absTime - _idleStart));
 
-				var nextAngularSpeed = (velocitySlope * dt + _engine.PreviousState.EngineSpeed);
+				var nextAngularSpeed = velocitySlope * dt + _engine.PreviousState.EngineSpeed;
 
 				var engineMaxSpeed = VectoMath.Min(_dataBus.GetGearData(_dataBus.NextGear.Gear).MaxSpeed,
 					_engine.ModelData.FullLoadCurves[0].N95hSpeed);
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs
index 54884eff4050d13fdc9c4fdf56a9cb294bad15bd..4be4328c236fe9d573c70511f031368323d4287b 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs
@@ -248,7 +248,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				return dryRunResponse;
 			}
 
-			CurrentState.TransmissionTorqueLoss = inTorque * effectiveRatio - (outTorque);
+			CurrentState.TransmissionTorqueLoss = inTorque * effectiveRatio - outTorque;
 
 
 			CurrentState.SetState(inTorque, inAngularVelocity, outTorque, outAngularVelocity);
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
index 3ec8fcafdff0c0ef11fbbf2f2051f8e7ccf961c2..8585880d0192206d1b9f28dbb5727d20e37d32ad 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
@@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		protected internal DrivingMode CurrentDrivingMode;
 
-		protected Dictionary<DrivingMode, IDriverMode> DrivingModes = new Dictionary<DrivingMode, IDriverMode>();
+		protected readonly Dictionary<DrivingMode, IDriverMode> DrivingModes = new Dictionary<DrivingMode, IDriverMode>();
 
 		public DefaultDriverStrategy()
 		{
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
index c634c5d5b716647c76ce8cd119eaa5f7dce52610..af47c836347a4de6f8d284e37f0486b88229fd9b 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DistanceBasedDrivingCycle.cs
@@ -54,7 +54,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		IDrivingCycle, ISimulationOutPort, IDrivingCycleInPort, IDisposable
 	{
 		private const double LookaheadTimeSafetyMargin = 1.5;
-		internal readonly IDrivingCycleData _data;
+		internal readonly IDrivingCycleData Data;
 		internal readonly DrivingCycleEnumerator CycleIntervalIterator;
 		private bool _intervalProlonged;
 		internal IdleControllerSwitcher IdleController;
@@ -71,11 +71,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public DistanceBasedDrivingCycle(IVehicleContainer container, IDrivingCycleData cycle) : base(container)
 		{
-			_data = cycle;
-			CycleIntervalIterator = new DrivingCycleEnumerator(_data);
-			CycleStartDistance = _data.Entries.Count > 0 ? _data.Entries.First().Distance : 0.SI<Meter>();
+			Data = cycle;
+			CycleIntervalIterator = new DrivingCycleEnumerator(Data);
+			CycleStartDistance = Data.Entries.Count > 0 ? Data.Entries.First().Distance : 0.SI<Meter>();
 
-			var first = _data.Entries.First();
+			var first = Data.Entries.First();
 			PreviousState = new DrivingCycleState {
 				AbsTime = 0.SI<Second>(),
 				WaitTime = 0.SI<Second>(),
@@ -391,9 +391,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		public double Progress
 		{
 			get {
-				return _data.Entries.Count > 0
-					? (CurrentState.Distance.Value() - _data.Entries.First().Distance.Value()) /
-					(_data.Entries.Last().Distance.Value() - _data.Entries.First().Distance.Value())
+				return Data.Entries.Count > 0
+					? (CurrentState.Distance.Value() - Data.Entries.First().Distance.Value()) /
+					(Data.Entries.Last().Distance.Value() - Data.Entries.First().Distance.Value())
 					: 0;
 			}
 		}
@@ -442,7 +442,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public void FinishSimulation()
 		{
-			_data.Finish();
+			Data.Finish();
 		}
 
 		public CycleData CycleData
@@ -464,8 +464,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var absDistance = CurrentState.Distance + distance;
 			var myIterator = CycleIntervalIterator.Clone();
 
-			if (absDistance > _data.Entries.Last().Distance) {
-				return ExtrapolateCycleEntry(absDistance, _data.Entries.Last());
+			if (absDistance > Data.Entries.Last().Distance) {
+				return ExtrapolateCycleEntry(absDistance, Data.Entries.Last());
 			}
 			while (myIterator.RightSample.Distance < absDistance) {
 				myIterator.MoveNext();
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
index f962ee57850afb9becc7033702a3c97bc48e15a3..a26fd8719e955d0535bf5b8e98277f0f854f2c34 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs
@@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 	{
 		public DriverData DriverData { get; protected set; }
 
-		protected IDriverStrategy DriverStrategy;
+		protected readonly IDriverStrategy DriverStrategy;
 		public string CurrentAction = "";
 
 		public Driver(IVehicleContainer container, DriverData driverData, IDriverStrategy strategy) : base(container)
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
index 87046f9ace667c8b34d9946bbd19761fa329a4ef..a3368effb0d3756d230a1eb7d67bac13d4b79668 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
@@ -132,7 +132,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		public NewtonMeter TorqueDemand(Second absTime, Second dt, NewtonMeter torquePowerTrain, NewtonMeter torqueEngine,
 			PerSecond angularSpeed, bool dryRun = false)
 		{
-			var avgAngularSpeed = (PreviousState.AngularSpeed != null)
+			var avgAngularSpeed = PreviousState.AngularSpeed != null
 				? (angularSpeed + PreviousState.AngularSpeed) / 2.0
 				: angularSpeed;
 			if (!dryRun) {
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
index 25f6ed90f2f3f52f25998f38409a485e06001967..2cd520163f3576e13b747a9768eceec1385f70ec 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Gearbox.cs
@@ -238,7 +238,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var shiftTimeExceeded = absTime.IsSmaller(_engageTime) &&
 									_engageTime.IsSmaller(absTime + dt, Constants.SimulationSettings.LowerBoundTimeInterval);
 			// allow 5% tolerance of shift time
-			if (shiftTimeExceeded && (_engageTime - absTime) > Constants.SimulationSettings.LowerBoundTimeInterval / 2) {
+			if (shiftTimeExceeded && _engageTime - absTime > Constants.SimulationSettings.LowerBoundTimeInterval / 2) {
 				return new ResponseFailTimeInterval {
 					Source = this,
 					DeltaT = _engageTime - absTime,
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PWheelCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PWheelCycle.cs
index a00c01d0700f5fdd1b97fa86880f6a7f8f425eb2..a4c05cbf38165b325f6bd28e9a269e4c030dc03f 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PWheelCycle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PWheelCycle.cs
@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 	/// </summary>
 	public class PWheelCycle : PowertrainDrivingCycle, IDriverInfo, IVehicleInfo
 	{
-		private VehicleData _vehicleData;
+		private readonly VehicleData _vehicleData;
 
 		/// <summary>
 		/// Initializes a new instance of the <see cref="PWheelCycle"/> class.
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TransmissionComponent.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TransmissionComponent.cs
index 4053d8c0ee5958fc90606c7c7cfc843dfb6d87a1..8c435e0c39559b6ba730a64c23b4a3790386a76c 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/TransmissionComponent.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/TransmissionComponent.cs
@@ -48,7 +48,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		public class TransmissionState : SimpleComponentState
 		{
 			public TransmissionLossMap.LossMapResult TorqueLossResult;
-			public NewtonMeter TorqueLoss = 0.SI<NewtonMeter>();
+			//public NewtonMeter TorqueLoss = 0.SI<NewtonMeter>();
 		}
 
 		protected TransmissionComponent(IVehicleContainer container, TransmissionData modelData) : base(container)
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
index d6ab6d75a9206b6de0b0b962527a341380c2c70f..94d7d85c572eb0fe970ff8164c908b4cf2169350 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
@@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 	{
 		internal readonly VehicleData ModelData;
 
-		public AirdragData AirdragData;
+		public readonly AirdragData AirdragData;
 
 
 		public Vehicle(IVehicleContainer container, VehicleData modelData, AirdragData airdrag) : base(container)
diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index 3c02ee5f910afc12e8a69b78b866c3e3ab31a70a..2d4f167fded504e27a27b62632a18a22632bb96b 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -258,7 +258,7 @@ namespace TUGraz.VectoCore.OutputData
 		{
 			var max = data.Max<Meter>(ModalResultField.dist);
 			var min = data.Min<Meter>(ModalResultField.dist);
-			return max == null || min == null ? null : (max - min);
+			return max == null || min == null ? null : max - min;
 		}
 
 		public static WattSecond WorkTotalMechanicalBrake(this IModalDataContainer data)
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index ae7b6eca0b150c5d490956e6db6a6b79bfbac936..46c1d5b677ca1224925c046682e2e4212d371ee3 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -182,7 +182,7 @@ namespace TUGraz.VectoCore.OutputData
 
 		// ReSharper restore InconsistentNaming
 
-		internal readonly DataTable _table;
+		internal readonly DataTable Table;
 		private readonly ISummaryWriter _sumWriter;
 
 
@@ -196,9 +196,9 @@ namespace TUGraz.VectoCore.OutputData
 		{
 			_sumWriter = writer;
 
-			_table = new DataTable();
+			Table = new DataTable();
 
-			_table.Columns.AddRange(new[] {
+			Table.Columns.AddRange(new[] {
 				Tuple.Create(SORT, typeof(int)),
 				Tuple.Create(JOB, typeof(string)),
 				Tuple.Create(INPUTFILE, typeof(string)),
@@ -252,7 +252,7 @@ namespace TUGraz.VectoCore.OutputData
 				Tuple.Create(string.Format(AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.ElectricSystem), typeof(string)),
 			}.Select(x => new DataColumn(x.Item1, x.Item2)).ToArray());
 
-			_table.Columns.AddRange(new[] {
+			Table.Columns.AddRange(new[] {
 				CARGO_VOLUME,
 				TIME, DISTANCE,
 				SPEED, ALTITUDE_DELTA,
@@ -279,7 +279,7 @@ namespace TUGraz.VectoCore.OutputData
 		public virtual void Finish()
 		{
 			if (_sumWriter != null) {
-				var view = new DataView(_table, "", SORT, DataViewRowState.CurrentRows).ToTable();
+				var view = new DataView(Table, "", SORT, DataViewRowState.CurrentRows).ToTable();
 				var toRemove =
 					view.Columns.Cast<DataColumn>().Where(column => column.ColumnName.StartsWith(INTERNAL_PREFIX)).ToList();
 				foreach (var dataColumn in toRemove) {
@@ -297,8 +297,8 @@ namespace TUGraz.VectoCore.OutputData
 		//	Kilogram vehicleMass, Kilogram vehicleLoading, CubicMeter cargoVolume, uint gearCount)
 		public virtual void Write(IModalDataContainer modData, int jobNr, int runNr, VectoRunData runData)
 		{
-			var row = _table.NewRow();
-			_table.Rows.Add(row);
+			var row = Table.NewRow();
+			Table.Rows.Add(row);
 
 			row[SORT] = jobNr * 1000 + runNr;
 			row[JOB] = string.Format("{0}-{1}", jobNr, runNr); //ReplaceNotAllowedCharacters(current);
@@ -398,16 +398,15 @@ namespace TUGraz.VectoCore.OutputData
 				row[AXLE_RATIO] = runData.AxleGearData.AxleGear.Ratio.SI<Scalar>();
 
 				foreach (var aux in runData.Aux) {
-					string colName;
 					if (aux.ID == Constants.Auxiliaries.IDs.PTOConsumer || aux.ID == Constants.Auxiliaries.IDs.PTOTransmission) {
 						continue;
 					}
-					colName = string.Format(AUX_TECH_FORMAT, aux.ID);
+					var colName = string.Format(AUX_TECH_FORMAT, aux.ID);
 
-					if (!_table.Columns.Contains(colName)) {
-						var col = _table.Columns.Add(colName, typeof(string));
+					if (!Table.Columns.Contains(colName)) {
+						var col = Table.Columns.Add(colName, typeof(string));
 						// move the new column to correct position
-						col.SetOrdinal(_table.Columns[CARGO_VOLUME].Ordinal);
+						col.SetOrdinal(Table.Columns[CARGO_VOLUME].Ordinal);
 					}
 
 					row[colName] = aux.Technology == null ? "" : string.Join("; ", aux.Technology);
@@ -495,10 +494,10 @@ namespace TUGraz.VectoCore.OutputData
 					colName = string.Format(E_AUX_FORMAT, aux.Key);
 				}
 
-				if (!_table.Columns.Contains(colName)) {
-					var col = _table.Columns.Add(colName, typeof(SI));
+				if (!Table.Columns.Contains(colName)) {
+					var col = Table.Columns.Add(colName, typeof(SI));
 					// move the new column to correct position
-					col.SetOrdinal(_table.Columns[E_AUX].Ordinal);
+					col.SetOrdinal(Table.Columns[E_AUX].Ordinal);
 				}
 
 				row[colName] = modData.AuxiliaryWork(aux.Value).ConvertTo().Kilo.Watt.Hour;
@@ -555,8 +554,8 @@ namespace TUGraz.VectoCore.OutputData
 
 			for (uint i = 0; i <= gearCount; i++) {
 				var colName = string.Format(TIME_SHARE_PER_GEAR_FORMAT, i);
-				if (!_table.Columns.Contains(colName)) {
-					_table.Columns.Add(colName, typeof(SI));
+				if (!Table.Columns.Contains(colName)) {
+					Table.Columns.Add(colName, typeof(SI));
 				}
 				row[colName] = timeSharePerGear[i];
 			}
@@ -586,7 +585,7 @@ namespace TUGraz.VectoCore.OutputData
 		protected void Dispose(bool disposing)
 		{
 			if (disposing) {
-				_table.Dispose();
+				Table.Dispose();
 			}
 		}
 	}
diff --git a/VectoCore/VectoCore/OutputData/XML/AbstractXMLWriter.cs b/VectoCore/VectoCore/OutputData/XML/AbstractXMLWriter.cs
index 607adb784bc693047c1366257ebca829b96ddda7..d3f9e47c777be109ea39e95b377dfdf1c0f46295 100644
--- a/VectoCore/VectoCore/OutputData/XML/AbstractXMLWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/AbstractXMLWriter.cs
@@ -47,7 +47,7 @@ namespace TUGraz.IVT.VectoXML.Writer
 
 		protected XNamespace tns;
 		protected XNamespace rootNamespace;
-		protected XNamespace di;
+		protected readonly XNamespace di;
 
 		protected const string Creator = "TU Graz, IVT-EM XML Exporter";
 		protected readonly string Vendor;
diff --git a/VectoCore/VectoCore/OutputData/XML/AttributeMappings.cs b/VectoCore/VectoCore/OutputData/XML/AttributeMappings.cs
index f60976175b8e282c58183d7c0c57ac06f5e8a509..6228900cc45804344e55c1721a3a232eb1eb08ba 100644
--- a/VectoCore/VectoCore/OutputData/XML/AttributeMappings.cs
+++ b/VectoCore/VectoCore/OutputData/XML/AttributeMappings.cs
@@ -38,7 +38,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
 
 namespace TUGraz.IVT.VectoXML
 {
-	static internal class AttributeMappings
+	internal static class AttributeMappings
 	{
 		public static readonly Dictionary<string, string> FuelConsumptionMapMapping = new Dictionary<string, string> {
 			{ FuelConsumptionMapReader.Fields.EngineSpeed, XMLNames.Engine_FuelConsumptionMap_EngineSpeed_Attr },
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs
index 7eb67d882a11b67a9d729635055176ac722cb3dc..55eba7eecef958f9e78e599d7a7dbbf1299e0b3d 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs
@@ -49,14 +49,14 @@ namespace TUGraz.VectoCore.OutputData.XML
 {
 	public class XMLCustomerReport
 	{
-		protected XElement VehiclePart;
+		protected readonly XElement VehiclePart;
 
 		protected XElement InputDataIntegrity;
 
-		protected XElement Results;
+		protected readonly XElement Results;
 
-		protected XNamespace tns;
-		protected XNamespace di;
+		protected readonly XNamespace tns;
+		protected readonly XNamespace di;
 		private bool allSuccess = true;
 
 		public XMLCustomerReport()
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
index 32f2845e5a6a141c766f3fa81d83e27cdae709ef..1ddd0d5df61b949d7356a2732a157792fcd6e6e7 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs
@@ -45,10 +45,10 @@ namespace TUGraz.VectoCore.OutputData.XML
 {
 	public class XMLDeclarationReport : DeclarationReport<XMLDeclarationReport.ResultEntry>
 	{
-		private XMLFullReport _fullReport;
-		private XMLCustomerReport _customerReport;
+		private readonly XMLFullReport _fullReport;
+		private readonly XMLCustomerReport _customerReport;
 
-		private IOutputDataWriter Writer;
+		private readonly IOutputDataWriter _writer;
 
 		public class ResultEntry
 		{
@@ -120,7 +120,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 			_customerReport = new XMLCustomerReport();
 			//CustomerReport = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
 
-			Writer = writer;
+			_writer = writer;
 		}
 
 		public XDocument FullReport
@@ -150,15 +150,15 @@ namespace TUGraz.VectoCore.OutputData.XML
 			var fullReportHash = GetSignature(_fullReport.Report);
 			_customerReport.GenerateReport(fullReportHash);
 
-			if (Writer != null) {
-				using (var xmlWriter = new XmlTextWriter(Writer.WriteStream(ReportType.DeclarationReportXMLFulll), Encoding.UTF8)) {
+			if (_writer != null) {
+				using (var xmlWriter = new XmlTextWriter(_writer.WriteStream(ReportType.DeclarationReportXMLFulll), Encoding.UTF8)) {
 					xmlWriter.Formatting = Formatting.Indented;
 					_fullReport.Report.WriteTo(xmlWriter);
 					xmlWriter.Flush();
 					xmlWriter.Close();
 				}
 
-				using (var xmlWriter = new XmlTextWriter(Writer.WriteStream(ReportType.DeclarationReportXMLCOC), Encoding.UTF8)) {
+				using (var xmlWriter = new XmlTextWriter(_writer.WriteStream(ReportType.DeclarationReportXMLCOC), Encoding.UTF8)) {
 					xmlWriter.Formatting = Formatting.Indented;
 					_customerReport.Report.WriteTo(xmlWriter);
 					xmlWriter.Flush();
diff --git a/VectoCore/VectoCore/Utils/DelaunayMap.cs b/VectoCore/VectoCore/Utils/DelaunayMap.cs
index 27a3a265f55a023a0b8c85d7ff0fe4b2c38e71c5..45f763af4c6e8c0ce7fd328ef1ac467ee4a1872b 100644
--- a/VectoCore/VectoCore/Utils/DelaunayMap.cs
+++ b/VectoCore/VectoCore/Utils/DelaunayMap.cs
@@ -68,8 +68,7 @@ namespace TUGraz.VectoCore.Utils
 
 		public IReadOnlyCollection<Point> Entries
 		{
-			get
-			{
+			get {
 				var retVal = new Point[_points.Count];
 				var i = 0;
 				foreach (var pt in _points) {
diff --git a/VectoCore/VectoCore/Utils/VectoCSVFile.cs b/VectoCore/VectoCore/Utils/VectoCSVFile.cs
index d24b079902dd0878541aa7fe72f55aa449684608..ca960de6edf4c774ab180278af384cb732649950 100644
--- a/VectoCore/VectoCore/Utils/VectoCSVFile.cs
+++ b/VectoCore/VectoCore/Utils/VectoCSVFile.cs
@@ -152,7 +152,7 @@ namespace TUGraz.VectoCore.Utils
 
 			var lineNumber = 1;
 			do {
-				string[] cells = {};
+				string[] cells = { };
 				if (firstLineIsData) {
 					cells = colsWithoutComment;
 				} else {
diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
index 80d112a09396bda56075181dd57fa67645315de3..870259374d7fcfb0aaa7a2ff710c6c768dc7f208 100644
--- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
@@ -110,7 +110,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 			var modData = new List<Tuple<ModalResults, Meter>>();
 			foreach (var run in jobContainer.Runs) {
 				modData.Add(Tuple.Create(((ModalDataContainer)run.Run.GetContainer().ModalData).Data,
-					((DistanceBasedDrivingCycle)((VehicleContainer)run.Run.GetContainer()).DrivingCycle)._data.Entries.Last()
+					((DistanceBasedDrivingCycle)((VehicleContainer)run.Run.GetContainer()).DrivingCycle).Data.Entries.Last()
 						.Distance));
 			}
 			var auxKeys =
@@ -134,19 +134,19 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 		private static void AssertSumDataIntegrity(SummaryDataContainer sumData, ExecutionMode mode)
 		{
-			Assert.IsTrue(sumData._table.Rows.Count > 0);
+			Assert.IsTrue(sumData.Table.Rows.Count > 0);
 
 			var ptoTransmissionColumn =
-				sumData._table.Columns.Contains(string.Format(SummaryDataContainer.E_FORMAT,
+				sumData.Table.Columns.Contains(string.Format(SummaryDataContainer.E_FORMAT,
 					Constants.Auxiliaries.IDs.PTOTransmission))
 					? string.Format(SummaryDataContainer.E_FORMAT, Constants.Auxiliaries.IDs.PTOTransmission)
 					: null;
 			var ptoConsumerColumn =
-				sumData._table.Columns.Contains(string.Format(SummaryDataContainer.E_FORMAT, Constants.Auxiliaries.IDs.PTOConsumer))
+				sumData.Table.Columns.Contains(string.Format(SummaryDataContainer.E_FORMAT, Constants.Auxiliaries.IDs.PTOConsumer))
 					? string.Format(SummaryDataContainer.E_FORMAT, Constants.Auxiliaries.IDs.PTOConsumer)
 					: null;
 
-			foreach (DataRow row in sumData._table.Rows) {
+			foreach (DataRow row in sumData.Table.Rows) {
 				var inputFile = row[SummaryDataContainer.INPUTFILE].ToString();
 				var cycle = row[SummaryDataContainer.CYCLE].ToString();
 				var loading = row[SummaryDataContainer.LOADING].ToString();
@@ -354,7 +354,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 			var modData = new List<Tuple<ModalResults, Meter>>();
 			foreach (var run in jobContainer.Runs) {
 				modData.Add(Tuple.Create(((ModalDataContainer)run.Run.GetContainer().ModalData).Data,
-					((DistanceBasedDrivingCycle)((VehicleContainer)run.Run.GetContainer()).DrivingCycle)._data.Entries.Last()
+					((DistanceBasedDrivingCycle)((VehicleContainer)run.Run.GetContainer()).DrivingCycle).Data.Entries.Last()
 						.Distance));
 			}
 			var auxKeys =