diff --git a/VECTO/Configuration.vb b/VECTO/Configuration.vb
index f4a18ed4ef2b193f1770165b08bb5ca9330648c1..315694210f274230eddce3bce6230cd0acb550f0 100644
--- a/VECTO/Configuration.vb
+++ b/VECTO/Configuration.vb
@@ -12,8 +12,10 @@ Imports System.Collections.Generic
 Imports System.IO
 Imports Newtonsoft.Json
 Imports Newtonsoft.Json.Linq
+Imports TUGraz.VectoCommon.Models
 Imports TUGraz.VectoCore.InputData.FileIO.JSON
 Imports TUGraz.VectoCore.Models.Declaration
+Imports TUGraz.VectoCore.Utils
 
 Public Class Configuration
 	Public FilePath As String
@@ -28,6 +30,8 @@ Public Class Configuration
 	Public FirstRun As Boolean
 	Public DeclMode As Boolean
 
+	Public Const DefaultFuelType As FuelType = FuelType.DieselCI
+
 	Private Const FormatVersion As Short = 2
 
 	Public Sub New()
@@ -35,9 +39,9 @@ Public Class Configuration
 	End Sub
 
 	Public Sub DeclInit()
-		AirDensity = DeclarationData.Physics.AirDensity.Value()	' cDeclaration.AirDensity
-		FuelDens = DeclarationData.Physics.FuelDensity.Value()	' cDeclaration.FuelDens
-		CO2perFC = DeclarationData.Physics.CO2PerFuelWeight		' cDeclaration.CO2perFC
+		AirDensity = Physics.AirDensity.Value()	' cDeclaration.AirDensity
+		FuelDens = DeclarationData.FuelData.Lookup(DefaultFuelType).FuelDensity.Value()	' cDeclaration.FuelDens
+		Co2PerFc = DeclarationData.FuelData.Lookup(DefaultFuelType).CO2PerFuelWeight		' cDeclaration.CO2perFC
 	End Sub
 
 	Public Sub SetDefault()
@@ -47,8 +51,8 @@ Public Class Configuration
 		AirDensity = 1.2
 		OpenCmd = "notepad"
 		OpenCmdName = "Notepad"
-		FuelDens = DeclarationData.Physics.FuelDensity.Value()
-		CO2perFC = DeclarationData.Physics.CO2PerFuelWeight
+		FuelDens = DeclarationData.FuelData.Lookup(DefaultFuelType).FuelDensity.Value()
+		Co2PerFc = DeclarationData.FuelData.Lookup(DefaultFuelType).CO2PerFuelWeight
 		FirstRun = True
 		DeclMode = True
 	End Sub
diff --git a/VECTO/GUI/EngineForm.vb b/VECTO/GUI/EngineForm.vb
index 8d9e87efaa1bbcf7242953d89cf58974694dc0f6..84c1ff1abc7a18b8eba041078327f717e80e259c 100644
--- a/VECTO/GUI/EngineForm.vb
+++ b/VECTO/GUI/EngineForm.vb
@@ -55,7 +55,7 @@ Public Class EngineForm
 		cbFuelType.ValueMember = "Value"
 		cbFuelType.DisplayMember = "Label"
 		cbFuelType.DataSource =
-			[Enum].GetValues(GetType(FuelType)).Cast(Of FuelType).Select(
+			[Enum].GetValues(GetType(TUGraz.VectoCommon.Models.FuelType)).Cast(Of TUGraz.VectoCommon.Models.FuelType).Select(
 				Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
 
 		_changed = False
@@ -257,7 +257,7 @@ Public Class EngineForm
 		engine.ratedSpeedInput = tbRatedSpeed.Text.ToDouble(0).RPMtoRad()
 		engine.maxTorqueInput = tbMaxTorque.Text.ToDouble(0).SI(Of NewtonMeter)()
 
-		engine.FuelTypeInput = CType(cbFuelType.SelectedValue, FuelType)
+		engine.FuelTypeInput = CType(cbFuelType.SelectedValue, TUGraz.VectoCommon.Models.FuelType)
 
 		If Not engine.SaveFile Then
 			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb
index 962da7988165033ceb590d36653b2b0894dbdb5f..3a3e4c08a0d9dd5c43064a414bb14e018463bd07 100644
--- a/VECTO/GUI/MainForm.vb
+++ b/VECTO/GUI/MainForm.vb
@@ -983,11 +983,6 @@ lbFound:
 			mode = ExecutionMode.Declaration
 		Else
 			mode = ExecutionMode.Engineering
-			Physics.FuelDensity = Cfg.FuelDens.SI(Of KilogramPerCubicMeter)() _
-			'New SI(Cfg.FuelDens).Kilo.Gramm.Per.Cubic.Dezi.Meter.Cast(Of KilogramPerCubicMeter)()
-			Physics.AirDensity = Cfg.AirDensity.SI(Of KilogramPerCubicMeter)() _
-			'New SI(Cfg.AirDensity).Kilo.Gramm.Per.Cubic.Meter.Cast(Of KilogramPerCubicMeter)()
-			Physics.CO2PerFuelWeight = Cfg.Co2PerFc
 		End If
 
 		'dictionary of run-identifiers to fileWriters (used for output directory of modfile)
diff --git a/VECTO/GUI/Settings.Designer.vb b/VECTO/GUI/Settings.Designer.vb
index 685f298f867138fc4eef5455c43f4e5b18ff0aff..4f608afb081f05291e02ca786b63e355d778567d 100644
--- a/VECTO/GUI/Settings.Designer.vb
+++ b/VECTO/GUI/Settings.Designer.vb
@@ -192,6 +192,7 @@ Partial Class Settings
 		Me.GrCalc.TabIndex = 1
 		Me.GrCalc.TabStop = False
 		Me.GrCalc.Text = "Calculation"
+		Me.GrCalc.Visible = False
 		'
 		'Label11
 		'
diff --git a/VectoCommon/VectoCommon/Models/FuelType.cs b/VectoCommon/VectoCommon/Models/FuelType.cs
index 0c68df4ff65adc2c7001a82ff217da205a2e3d56..36cd69a93f76dee2d6d3746a25ba4b6f2d9747a7 100644
--- a/VectoCommon/VectoCommon/Models/FuelType.cs
+++ b/VectoCommon/VectoCommon/Models/FuelType.cs
@@ -1,5 +1,4 @@
 using System;
-using System.Diagnostics.CodeAnalysis;
 
 namespace TUGraz.VectoCommon.Models
 {
@@ -11,7 +10,7 @@ namespace TUGraz.VectoCommon.Models
 		PetrolPI,
 		EthanolPI,
 		LPG,
-		NG
+		NG,
 		// ReSharper restore InconsistentNaming
 	}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
index 80e49d0a0ac37fb7df02a821790d9d4ff38b435b..19e10be48d8d939f20ab10c37723e0037f3fc06c 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
@@ -37,6 +37,7 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
@@ -121,6 +122,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				RatedPowerDeclared = data.RatedPowerDeclared,
 				RatedSpeedDeclared = data.RatedSpeedDeclared,
 				MaxTorqueDeclared = data.MaxTorqueDeclared,
+				FuelType = data.FuelType
 			};
 			return retVal;
 		}
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 3c1bd0a69e27d71ae1c0a6e630f1693cf2dd9203..c9cd23536a493c489e5512ab4562302639c0a21e 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -29,7 +29,6 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
@@ -54,6 +53,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		public static readonly Segments Segments = new Segments();
 		public static readonly Wheels Wheels = new Wheels();
 		public static readonly PT1 PT1 = new PT1();
+		public static readonly FuelData FuelData = FuelData.Instance();
 		public static readonly ElectricSystem ElectricSystem = new ElectricSystem();
 		public static readonly Fan Fan = new Fan();
 
@@ -96,29 +96,6 @@ namespace TUGraz.VectoCore.Models.Declaration
 			return 1;
 		}
 
-		public static class Physics
-		{
-			/// <summary>
-			/// The standard acceleration for gravity on earth.
-			/// http://physics.nist.gov/Pubs/SP330/sp330.pdf (page 52)
-			/// </summary>
-			public static readonly MeterPerSquareSecond GravityAccelleration = 9.80665.SI<MeterPerSquareSecond>();
-
-			/// <summary>
-			/// Density of air.
-			/// </summary>
-			public static readonly KilogramPerCubicMeter AirDensity = 1.188.SI<KilogramPerCubicMeter>();
-
-			/// <summary>
-			/// Density of fuel.
-			/// </summary>
-			public static readonly KilogramPerCubicMeter FuelDensity = 832.SI<KilogramPerCubicMeter>();
-
-			/// <summary>
-			/// fuel[kg] => co2[kg]. Factor to convert from fuel weight to co2 weight.
-			/// </summary>
-			public static readonly double CO2PerFuelWeight = 3.16;
-		}
 
 		public static class Driver
 		{
diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs
index 3dab5addb3e133ce22f5fbba724b99d41c8040c2..6c0870d42d307b9afa02c1c15a82f0a7ec59a461 100644
--- a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs
+++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs
@@ -31,6 +31,7 @@
 
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.SimulationComponent;
 
 namespace TUGraz.VectoCore.Models.Simulation.DataBus
@@ -43,6 +44,8 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus
 	{
 		ExecutionMode ExecutionMode { get; }
 
+		FuelType FuelType { get; }
+
 		Second AbsTime { get; set; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
index 048c4413ce7c7a186d788d48bffc7fe8fb045cf4..593a4fad173211d0541a58c33583da66f4ed598f 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
@@ -181,7 +181,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 						throw new ArgumentOutOfRangeException("CycleType unknown:" + data.Cycle.CycleType);
 				}
 
-				var validationErrors = run.Validate(_mode, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type, data.Mission != null && data.Mission.MissionType.IsEMS());
+				var validationErrors = run.Validate(_mode, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type,
+					data.Mission != null && data.Mission.MissionType.IsEMS());
 				if (validationErrors.Any()) {
 					throw new VectoException("Validation of Run-Data Failed: " +
 											string.Join("\n", validationErrors.Select(r => r.ErrorMessage + string.Join("; ", r.MemberNames))));
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
index 9be939e92d0f2316fee043ba3cc7dd62b1b7c0d8..1d1973519930249980441a770ed8aa81a890fd2d 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
@@ -37,6 +37,7 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.Connector.Ports;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.SimulationComponent;
@@ -263,6 +264,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			return Cycle;
 		}
 
+		public FuelType FuelType { get { return ModData.FuelData.FuelType; } }
+
 		public Second AbsTime { get; set; }
 
 		public void AddComponent(VectoSimulationComponent component)
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs
index e7770538f299b2bad01c4c6c5c404110a747f0f7..f9a305a769d63e9b290f5e0280f80499c970381a 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs
@@ -35,6 +35,7 @@ using System.ComponentModel.DataAnnotations;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Data
@@ -75,7 +76,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		[Required, Range(double.MinValue, double.MaxValue)]
 		public double CorrectionFactorNCV { get; internal set; }
 
-		public double FuelConsumptionCorrectionFactor {get; internal set; }
+		public double FuelConsumptionCorrectionFactor { get; internal set; }
 
 		public PerSecond RatedSpeedDeclared { get; internal set; }
 
@@ -112,6 +113,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 				RatedPowerDeclared = RatedPowerDeclared,
 				RatedSpeedDeclared = RatedSpeedDeclared,
 				MaxTorqueDeclared = MaxTorqueDeclared,
+				FuelType = FuelType
 			};
 		}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index bbe1a721caf5440fff41610113a89dfdc05074aa..9901d0c982528a9007ab69f06b5052abe5afcdbd 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -33,6 +33,7 @@ using System;
 using System.IO;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
@@ -79,7 +80,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 			_fcMapAdapter = new FuelConsumptionAdapter() { FcMap = fcMap };
 			tmpAux.VectoInputs.FuelMap = _fcMapAdapter;
-			tmpAux.VectoInputs.FuelDensity = Physics.FuelDensity;
+			tmpAux.VectoInputs.FuelDensity = FuelData.Instance().Lookup(container.FuelType).FuelDensity;
 
 			//'Set Signals
 			tmpAux.Signals.EngineIdleSpeed = engineIdleSpeed;
diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
index d49000c659aba5afbc86cf91021e0f3989f7eed6..afdd105cf6390fd6ac3d71bd8401d775461f051f 100644
--- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs
@@ -106,7 +106,7 @@ namespace TUGraz.VectoCore.OutputData
 		/// <summary>
 		/// The full load curve.
 		/// </summary>
-		internal  Dictionary<uint, EngineFullLoadCurve> Flc { get; set; }
+		internal Dictionary<uint, EngineFullLoadCurve> Flc { get; set; }
 
 		/// <summary>
 		/// The declaration segment from the segment table
diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index a145fe66d5b97424e8731305c27ba514ca0af67d..9e9eea705d8a3aef9a58f3d0ad2e53dee0a62711 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -35,6 +35,7 @@ using System.Data;
 using System.Linq;
 using System.Runtime.Remoting.Metadata.W3cXsd2001;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.Simulation.Impl;
@@ -71,6 +72,8 @@ namespace TUGraz.VectoCore.OutputData
 		/// </summary>
 		void CommitSimulationStep();
 
+		FuelData.Entry FuelData { get; }
+
 		VectoRun.Status RunStatus { get; }
 
 		/// <summary>
@@ -379,7 +382,7 @@ namespace TUGraz.VectoCore.OutputData
 				return null;
 			}
 
-			var fcVolumePerMeter = fuelConsumptionFinal / Physics.FuelDensity;
+			var fcVolumePerMeter = fuelConsumptionFinal / data.FuelData.FuelDensity;
 			return fcVolumePerMeter.ConvertTo().Cubic.Dezi.Meter * 100.SI().Kilo.Meter;
 		}
 
@@ -389,7 +392,7 @@ namespace TUGraz.VectoCore.OutputData
 			if (distance == null || distance.IsEqual(0)) {
 				return null;
 			}
-			return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) * Physics.CO2PerFuelWeight / distance;
+			return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) * data.FuelData.CO2PerFuelWeight / distance;
 		}
 
 		public static KilogramPerSecond FCMapPerSecond(this IModalDataContainer data)
diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
index e4bad04e093b0b6fcb906a06bd12a1ba0298e491..b0fe385de20a410e935fa35a46b3c5265f1f3daf 100644
--- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs
@@ -35,7 +35,9 @@ using System.Data;
 using System.Globalization;
 using System.Linq;
 using System.Runtime.CompilerServices;
+using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 
@@ -61,14 +63,14 @@ namespace TUGraz.VectoCore.OutputData
 
 		public bool WriteAdvancedAux { get; set; }
 
-		public ModalDataContainer(string runName, IModalDataWriter writer, bool writeEngineOnly = false)
-			: this(runName, "", "", writer, _ => { }, writeEngineOnly) {}
+		public ModalDataContainer(string runName, FuelType fuel, IModalDataWriter writer, bool writeEngineOnly = false)
+			: this(runName, "",fuel, "", writer, _ => { }, writeEngineOnly) {}
 
 		public ModalDataContainer(VectoRunData runData, IModalDataWriter writer, Action<ModalDataContainer> addReportResult,
 			bool writeEngineOnly, params IModalDataFilter[] filter)
-			: this(runData.JobName, runData.Cycle.Name, runData.ModFileSuffix, writer, addReportResult, writeEngineOnly, filter) {}
+			: this(runData.JobName, runData.Cycle.Name, runData.EngineData.FuelType, runData.ModFileSuffix, writer, addReportResult, writeEngineOnly, filter) {}
 
-		protected ModalDataContainer(string runName, string cycleName, string runSuffix, IModalDataWriter writer,
+		protected ModalDataContainer(string runName, string cycleName, FuelType fuelType, string runSuffix, IModalDataWriter writer,
 			Action<ModalDataContainer> addReportResult, bool writeEngineOnly, params IModalDataFilter[] filters)
 		{
 			HasTorqueConverter = false;
@@ -77,6 +79,8 @@ namespace TUGraz.VectoCore.OutputData
 			RunSuffix = runSuffix;
 			_writer = writer;
 
+			FuelData = Models.Declaration.FuelData.Instance().Lookup(fuelType);
+
 			_writeEngineOnly = writeEngineOnly;
 			_filters = filters ?? new IModalDataFilter[0];
 			_addReportResult = addReportResult ?? (x => { });
@@ -95,6 +99,8 @@ namespace TUGraz.VectoCore.OutputData
 			CurrentRow = Data.NewRow();
 		}
 
+		public FuelData.Entry FuelData { get; private set; }
+
 		public void Finish(VectoRun.Status runStatus)
 		{
 			var dataColumns = new List<ModalResultField> { ModalResultField.time };
diff --git a/VectoCore/VectoCore/Utils/Physics.cs b/VectoCore/VectoCore/Utils/Physics.cs
index 4b6edc6caafba27eaa00a93f75593338d3018b7e..ac63dd4bb2a355c97e0d8eb15277624e040a226a 100644
--- a/VectoCore/VectoCore/Utils/Physics.cs
+++ b/VectoCore/VectoCore/Utils/Physics.cs
@@ -46,10 +46,6 @@ namespace TUGraz.VectoCore.Utils
 		/// </summary>
 		public static KilogramPerCubicMeter AirDensity = 1.188.SI<KilogramPerCubicMeter>();
 
-		/// <summary>
-		/// Density of fuel.
-		/// </summary>
-		public static KilogramPerCubicMeter FuelDensity = 832.SI<KilogramPerCubicMeter>();
 
 		public const double RollResistanceExponent = 0.9;
 
@@ -67,10 +63,5 @@ namespace TUGraz.VectoCore.Utils
 		/// Hellmann Exponent for modelling of wind speed in specific heights.
 		/// </summary>
 		public const double HellmannExponent = 0.2;
-
-		/// <summary>
-		/// fuel[kg] => co2[kg]. Factor to convert from fuel weight to co2 weight.
-		/// </summary>
-		public static double CO2PerFuelWeight = 3.16;
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 459239ec801bb9c1bcbbb62c185bd93e10ba1305..4356f0f03c746fcad1202f384b880322c9aec6ef 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -166,6 +166,7 @@
     <Compile Include="Models\Connector\Ports\IFvPort.cs" />
     <Compile Include="Models\Connector\Ports\ITnPort.cs" />
     <Compile Include="InputData\Reader\ComponentData\AccelerationCurveReader.cs" />
+    <Compile Include="Models\Declaration\FuelData.cs" />
     <Compile Include="Models\Declaration\PTOTransmission.cs" />
     <Compile Include="Models\Declaration\IDeclarationAuxiliaryTable.cs" />
     <Compile Include="Models\SimulationComponent\Data\AngledriveData.cs" />
@@ -431,6 +432,7 @@
     </EmbeddedResource>
     <EmbeddedResource Include="Resources\Declaration\MissionCycles\MunicipalUtility_PTO_generic.vptoc" />
     <EmbeddedResource Include="Resources\Declaration\MissionCycles\MunicipalUtility_PTO_generic.vptol" />
+    <EmbeddedResource Include="Resources\Declaration\FuelTypes.csv" />
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Resources\Declaration\Report\4x2r.png" />
diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
index f390dd5768051c08e26a637637394588d8739ce6..3797a8a9bd9524a252db97c0adcfee5203243e72 100644
--- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
@@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			bool overspeed = false, KilogramSquareMeter gearBoxInertia = null)
 		{
 			var fileWriter = new FileOutputWriter(modFileName);
-			var modData = new ModalDataContainer(modFileName, fileWriter) {
+			var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) {
 				WriteModalResults = true,
 				HasTorqueConverter = true
 			};
diff --git a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs
index 91912d7232e8e315eafa511bf5ae7025b42f18c5..9527cbd03c9500669c6811c4610387f1d26bd065 100644
--- a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs
@@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries
 			var engineFLDFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vfld";
 			var engineFCMapFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vmap";
 
-			var vehicle = new VehicleContainer(ExecutionMode.Engineering);
+			var vehicle = new VehicleContainer(ExecutionMode.Engineering, new MockModalDataContainer());
 			var fcMap = FuelConsumptionMapReader.ReadFromFile(engineFCMapFilePath);
 			var fld = EngineFullLoadCurve.ReadFromFile(engineFLDFilePath);
 			var modelData = new CombustionEngineData() {
diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
index 79ce266962b45552cd94f2ccc5b0aff60345a9a6..3bfa4573d45f62d57319aa8790b2f89bd708a353 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
@@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			bool highEnginePower = true)
 		{
 			var fileWriter = new FileOutputWriter(modFileName);
-			var modData = new ModalDataContainer(modFileName, fileWriter) { WriteAdvancedAux = true, WriteModalResults = true };
+			var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) { WriteAdvancedAux = true, WriteModalResults = true };
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData) {
 				RunData = new VectoRunData { JobName = modFileName, Cycle = cycleData }
 			};
diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
index fef70e6d68aed537b5d60b5d65e308278c0b43a6..dce0151e0f31b870125682bd639f4e7a0fb2af57 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
@@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			KilogramSquareMeter gearBoxInertia = null, bool engineHighPower = true)
 		{
 			var fileWriter = new FileOutputWriter(modFileName);
-			var modData = new ModalDataContainer(modFileName, fileWriter) { WriteModalResults = true };
+			var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) { WriteModalResults = true };
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData) {
 				RunData = new VectoRunData { JobName = modFileName, Cycle = cycleData }
 			};
diff --git a/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs b/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
index d42b318eaa33afb36e2f5748be2ec101ca80fdc9..02d38767c068b1c07fd535a9f16891e75b9ffeb1 100644
--- a/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs
@@ -37,6 +37,7 @@ using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.Models.Connector.Ports.Impl;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -88,7 +89,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
 			var modFile = Path.GetFileNameWithoutExtension(modalResultFile);
 			//Path.GetFileNameWithoutExtension(Path.GetRandomFileName()); // + ".vmod";
 			var fileWriter = new FileOutputWriter(modFile);
-			var modData = new ModalDataContainer(modFile, fileWriter, true) { WriteModalResults = true };
+			var modData = new ModalDataContainer(modFile, FuelType.DieselCI, fileWriter, true) { WriteModalResults = true };
 			modData.AddAuxiliary(Constants.Auxiliaries.Cycle);
 			port.Initialize(data.Entries.First().Torque, data.Entries.First().AngularVelocity);
 			foreach (var cycleEntry in data.Entries) {
diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
index 6f2f22579bcb228ca26a45851c2fea84246a5fdc..0fe65c037d738b3b4291db961ec41e2f144774eb 100644
--- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 		public void Test_FullPowertrain_SimpleGearbox()
 		{
 			var fileWriter = new FileOutputWriter("Coach_FullPowertrain_SimpleGearbox");
-			var modData = new ModalDataContainer("Coach_FullPowertrain_SimpleGearbox", fileWriter);
+			var modData = new ModalDataContainer("Coach_FullPowertrain_SimpleGearbox", FuelType.DieselCI, fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var gearboxData = CreateSimpleGearboxData();
@@ -134,7 +134,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 		public void Test_FullPowertrain()
 		{
 			var fileWriter = new FileOutputWriter("Coach_FullPowertrain");
-			var modData = new ModalDataContainer("Coach_FullPowertrain", fileWriter);
+			var modData = new ModalDataContainer("Coach_FullPowertrain", FuelType.DieselCI, fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var gearboxData = CreateGearboxData();
@@ -212,7 +212,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 		public void Test_FullPowertrain_LowSpeed()
 		{
 			var fileWriter = new FileOutputWriter("Coach_FullPowertrain_LowSpeed");
-			var modData = new ModalDataContainer("Coach_FullPowertrain_LowSpeed", fileWriter);
+			var modData = new ModalDataContainer("Coach_FullPowertrain_LowSpeed", FuelType.DieselCI, fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var gearboxData = CreateGearboxData();
diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
index e01dbeb844036b62b37f4e15e0ae966d9d7e4e31..84d54158c3b9f5263fc9b7c5a6d9f5b1fa870078 100644
--- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs
@@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var driverData = CreateDriverData(AccelerationFile);
 
 			var fileWriter = new FileOutputWriter("Coach_MinimalPowertrainOverload");
-			var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", fileWriter);
+			var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", FuelType.DieselCI, fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var driver = new Driver(container, driverData, new DefaultDriverStrategy());
@@ -121,7 +121,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var driverData = CreateDriverData(AccelerationFile);
 
 			var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain");
-			var modData = new ModalDataContainer("Coach_MinimalPowertrain", fileWriter);
+			var modData = new ModalDataContainer("Coach_MinimalPowertrain", FuelType.DieselCI, fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
@@ -193,7 +193,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var driverData = CreateDriverData(AccelerationFile2);
 
 			var fileWriter = new FileOutputWriter("Coach_MinimalPowertrainOverload");
-			var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", fileWriter);
+			var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", FuelType.DieselCI, fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
index 428b90cdd673590c0bdfb95461cb443fbd72736f..00b8cab64b9a4195d0be1939b6303111a1d629ff 100644
--- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
@@ -85,7 +85,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 			Kilogram massExtra, Kilogram loading, bool overspeed = false, GearboxType gbxType = GearboxType.AMT)
 		{
 			var fileWriter = new FileOutputWriter(modFileName);
-			var modData = new ModalDataContainer(Path.GetFileName(modFileName), fileWriter) { WriteModalResults = true };
+			var modData = new ModalDataContainer(Path.GetFileName(modFileName), FuelType.DieselCI, fileWriter) { WriteModalResults = true };
 			var container = new VehicleContainer(ExecutionMode.Engineering, modData) {
 				RunData = new VectoRunData { JobName = modFileName, Cycle = cycleData }
 			};
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
index 4297deb76d6a35a353161b70abf06f10520f3239..b9185306ca3694b2c95254e22bb8f94b36f335c2 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -62,7 +62,9 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 		{
 			var fileWriter = new FileOutputWriter("AuxWriteModFileSumFile");
-			var modData = new ModalDataContainer("AuxWriteModFileSumFile", fileWriter) { WriteModalResults = true };
+			var modData = new ModalDataContainer("AuxWriteModFileSumFile", FuelType.DieselCI, fileWriter) {
+				WriteModalResults = true
+			};
 			modData.AddAuxiliary("FAN");
 			modData.AddAuxiliary("PS");
 			modData.AddAuxiliary("STP");
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
index 2c94ef86a3d344454f9b1959db3b4106a7b17c5e..84abb65280a6698cf8dc3293c6612c68d6d9f864 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs
@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var driverData = CreateDriverData();
 
 			var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain_Coasting");
-			var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", fileWriter);
+			var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", FuelType.DieselCI, fileWriter);
 			var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData);
 			var mockCycle = new MockDrivingCycle(vehicleContainer, null);
 
@@ -128,7 +128,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var driverData = CreateDriverData();
 
 			var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain_Coasting");
-			var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", fileWriter);
+			var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", FuelType.DieselCI, fileWriter);
 			var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData);
 			var mockCycle = new MockDrivingCycle(vehicleContainer, null);
 
@@ -190,7 +190,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var driverData = CreateDriverData();
 
 			var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain");
-			var modData = new ModalDataContainer("Coach_MinimalPowertrain", fileWriter);
+			var modData = new ModalDataContainer("Coach_MinimalPowertrain", FuelType.DieselCI, fileWriter);
 			var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData);
 
 			var cycle = new MockDrivingCycle(vehicleContainer, null);
diff --git a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs
index 442b57b3ddfd873d97662ec90674c87c33b4ed38..faaf23237f25e0a84a2f52ac30780c87781e387e 100644
--- a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs
@@ -32,6 +32,7 @@
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.Simulation.Impl;
@@ -52,7 +53,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 			var writer = new FileOutputWriter("testsumcalc_fixed");
 			var sumWriter = new SummaryDataContainer(writer);
 
-			var modData = new ModalDataContainer("testsumcalc_fixed", writer);
+			var modData = new ModalDataContainer("testsumcalc_fixed", FuelType.DieselCI, writer);
 
 			modData.AddAuxiliary("FAN");
 
@@ -108,7 +109,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 			var writer = new FileOutputWriter("testsumcalc_var");
 			var sumWriter = new SummaryDataContainer(writer);
 
-			var modData = new ModalDataContainer("testsumcalc_var", writer);
+			var modData = new ModalDataContainer("testsumcalc_var", FuelType.DieselCI, writer);
 			modData.AddAuxiliary("FAN");
 
 			var timeSteps = new[]
diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
index f0a08e3fbeb543b0c1734f503aac1bd7266f4e99..ba581dd6ec24d1d1fa64fb6bf1c5ef182c30f9f9 100644
--- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
@@ -34,6 +34,7 @@ using System.Collections.Generic;
 using System.Data;
 using System.Linq;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.OutputData;
@@ -74,6 +75,8 @@ namespace TUGraz.VectoCore.Tests.Utils
 			CurrentRow = Data.NewRow();
 		}
 
+		public FuelData.Entry FuelData { get { return VectoCore.Models.Declaration.FuelData.Diesel; } }
+
 		public VectoRun.Status RunStatus
 		{
 			get { return VectoRun.Status.Success; }
diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
index 5b94e64f13ac437b60446f17072d623aff79d5eb..344ae6fafc7d43518236130fb5ccd31de533b341 100644
--- a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
@@ -33,6 +33,7 @@ using System.Collections.Generic;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.Connector.Ports;
+using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
@@ -70,6 +71,11 @@ namespace TUGraz.VectoCore.Tests.Utils
 		public MeterPerSquareSecond StartAcceleration { get; set; }
 		public NewtonMeter GearMaxTorque { get; set; }
 
+		public FuelType FuelType
+		{
+			get { return FuelType.DieselCI; }
+		}
+
 		public Second AbsTime { get; set; }
 
 		public Watt GearboxLoss()