diff --git a/VECTO/mAAUX_Global.vb b/VECTO/mAAUX_Global.vb
index 1eb3e26e569b7043e27eff5c55ea4c974d61b591..76cad83e19a3b5a99b9a13cd8cf37502a44c77ad 100644
--- a/VECTO/mAAUX_Global.vb
+++ b/VECTO/mAAUX_Global.vb
@@ -1,6 +1,7 @@
 Imports System.Collections.Generic
 Imports VectoAuxiliaries
 Imports System.IO
+Imports TUGraz.VectoCommon.Utils
 
 Module mAAUX_Global
 	Public ClutchEngaged As Boolean
@@ -60,9 +61,9 @@ Module mAAUX_Global
 
 					'Set Statics
 					advancedAuxModel.VectoInputs.Cycle = DetermineCycleNameFromCurrentFile()
-					advancedAuxModel.VectoInputs.VehicleWeightKG = VEH.Mass
+					advancedAuxModel.VectoInputs.VehicleWeightKG = VEH.Mass.SI(Of Kilogram)()
 					advancedAuxModel.VectoInputs.FuelMap = fuelMap 'ENG.FuelMapFullPath
-					advancedAuxModel.VectoInputs.FuelDensity = Cfg.FuelDens
+					advancedAuxModel.VectoInputs.FuelDensity = CType(Cfg.FuelDens, Double).SI().Kilo.Gramm.Per.Liter
 
 					'Set Signals
 					advancedAuxModel.Signals.TotalCycleTimeSeconds = CycleTimeInSeconds
diff --git a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb
index 14f62188b501ad4e1425e11de57136c9f360ee57..d7c2bc0f999f09385b584e7b55e4acac3b5593f5 100644
--- a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb
+++ b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb
@@ -169,7 +169,7 @@ Public Class AdvancedAuxiliaries
 												auxConfig.PneumaticAuxillariesConfig,
 												actuationsMap,
 												compressorMap,
-												VectoInputs.VehicleWeightKG.SI(Of Kilogram),
+												VectoInputs.VehicleWeightKG,
 												VectoInputs.Cycle,
 												Signals)
 
diff --git a/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb b/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
index dc5c160b7300d49fea22f4fcc2c9ed5c8c3d024d..d7f3d83ceab362ade3cd56ec93732da3fb6b1ab6 100644
--- a/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
@@ -84,7 +84,7 @@ Public Class AuxiliaryConfig
 	'Set Default Values
 	Private Sub setDefaults()
 
-		Dim tmp As VectoInputs = New VectoInputs With {.Cycle = "Urban", .VehicleWeightKG = 16500, .PowerNetVoltage = 28.3}
+		Dim tmp As VectoInputs = New VectoInputs With {.Cycle = "Urban", .VehicleWeightKG = 16500.SI(Of Kilogram)(), .PowerNetVoltage = 28.3.SI(Of Volt)()}
 		VectoInputs = tmp
 		Signals = New Signals With {.EngineSpeed = 2000, .TotalCycleTimeSeconds = 3114, .ClutchEngaged = False}
 
diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M14.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M14.vb
index a3b4ec87cbb5515780c379eee66da7d29d00ed66..db250383b942c7720c088547a7371874f15b8e9d 100644
--- a/VECTOAux/VectoAuxiliaries/DownstreamModules/M14.vb
+++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M14.vb
@@ -30,7 +30,7 @@ Namespace DownstreamModules
 		'Staging Calculations
 		Private ReadOnly Property S1 As Joule
 			Get
-				Return (m13.WHTCTotalCycleFuelConsumptionGrams.Value * constants.DieselGCVJperGram * 1000).SI(Of Joule)()
+				Return m13.WHTCTotalCycleFuelConsumptionGrams * constants.DieselGCVJperGram
 			End Get
 		End Property
 
@@ -62,7 +62,7 @@ Namespace DownstreamModules
 			Get
 				'Return (S5.Value() * ssm.FuelPerHBaseAsjusted(S4.Value() / 1000) / 3600 * (constants.FuelDensity)).SI(Of Kilogram)()
 				Return _
-					(S5 * ssm.FuelPerHBaseAsjusted(S4.Value() / 1000).SI().Liter.Per.Hour * constants.FuelDensity.SI().Gramm.Per.Liter).
+					(S5 * ssm.FuelPerHBaseAsjusted(S4.Value() / 1000).SI().Liter.Per.Hour * constants.FuelDensity).
 						Cast(Of Kilogram)()
 			End Get
 		End Property
@@ -75,7 +75,7 @@ Namespace DownstreamModules
 
 		Private ReadOnly Property S8 As Liter
 			Get
-				Return (S7 / (constants.FuelDensity.SI().Gramm.Per.Liter)).Cast(Of Liter)()
+				Return (S7 / (constants.FuelDensity)).Cast(Of Liter)()
 			End Get
 		End Property
 
@@ -92,3 +92,4 @@ Namespace DownstreamModules
 		End Property
 	End Class
 End Namespace
+
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb b/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb
index dc75e5465a0f5690bbb567b64b4dd096cd51b25e..6ccffb23e7ba00ab224c3726aa5ca4eabaa60a4d 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/ElectricsUserInputsConfig.vb
@@ -9,6 +9,7 @@
 '
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
 
+Imports TUGraz.VectoCommon.Utils
 Imports VectoAuxiliaries.Electrics
 
 Namespace Electrics
@@ -41,7 +42,7 @@ Namespace Electrics
 			DoorActuationTimeSecond = 4
 			StoredEnergyEfficiency = 0.935
 			AlternatorGearEfficiency = 0.92
-			PowerNetVoltage = vectoInputs.PowerNetVoltage
+			PowerNetVoltage = vectoInputs.PowerNetVoltage.Value()
 			ResultCardIdle = New ResultCard(New List(Of SmartResult))
 			ResultCardOverrun = New ResultCard(New List(Of SmartResult))
 			ResultCardTraction = New ResultCard(New List(Of SmartResult))
diff --git a/VECTOAux/VectoAuxiliaries/Hvac/HVACConstants.vb b/VECTOAux/VectoAuxiliaries/Hvac/HVACConstants.vb
index 29a76fdd1182ff01c6cc6db50f720abf7fd2722d..dbe43d9244320fbcc9578f7b805116e8ea5977ed 100644
--- a/VECTOAux/VectoAuxiliaries/Hvac/HVACConstants.vb
+++ b/VECTOAux/VectoAuxiliaries/Hvac/HVACConstants.vb
@@ -14,27 +14,33 @@ Namespace Hvac
 	Public Class HVACConstants
 		Implements IHVACConstants
 
-		Private _fuelDensity As Double
+		Private _fuelDensity As KilogramPerCubicMeter
 
 		Public Sub New()
-			_fuelDensity = 0.832
+			_fuelDensity = 835.SI(Of KilogramPerCubicMeter)()
 		End Sub
 
-		Public Sub New(fuelDensitySingle As Double)
+		Public Sub New(fuelDensitySingle As KilogramPerCubicMeter)
 			_fuelDensity = fuelDensitySingle
 		End Sub
 
-		Public ReadOnly Property DieselGCVJperGram As Double Implements IHVACConstants.DieselGCVJperGram
+		Public ReadOnly Property DieselGCVJperGram As JoulePerKilogramm Implements IHVACConstants.DieselGCVJperGram
 			Get
-				Return 44800
+				Return 44800.SI().Joule.Per.Gramm.Cast(Of JoulePerKilogramm)()
 			End Get
 		End Property
 
-		Public ReadOnly Property FuelDensity As Double Implements IHVACConstants.FuelDensity
+		Public ReadOnly Property FuelDensity As KilogramPerCubicMeter Implements IHVACConstants.FuelDensity
 			Get
 				Return _fuelDensity
 			End Get
 		End Property
+
+		Public ReadOnly Property FuelDensityAsGramPerLiter As Double Implements IHVACConstants.FuelDensityAsGramPerLiter
+			Get
+				Return _fuelDensity.Value() * 1000
+			End Get
+		End Property
 	End Class
 End Namespace
 
diff --git a/VECTOAux/VectoAuxiliaries/Hvac/IHVACConstants.vb b/VECTOAux/VectoAuxiliaries/Hvac/IHVACConstants.vb
index 4b93b7b9d354f5c69748278f45a2b29beefe09b9..7748f5a9c39d26793239dfbc9f5f63986b427cbf 100644
--- a/VECTOAux/VectoAuxiliaries/Hvac/IHVACConstants.vb
+++ b/VECTOAux/VectoAuxiliaries/Hvac/IHVACConstants.vb
@@ -8,7 +8,7 @@ Namespace Hvac
 		''' <value></value>
 		''' <returns></returns>
 		''' <remarks></remarks>
-		ReadOnly Property DieselGCVJperGram As Double
+		ReadOnly Property DieselGCVJperGram As JoulePerKilogramm
 
 		''' <summary>
 		''' 835  [g/l]
@@ -16,7 +16,9 @@ Namespace Hvac
 		''' <value></value>
 		''' <returns></returns>
 		''' <remarks></remarks>
-		ReadOnly Property FuelDensity As Double
+		ReadOnly Property FuelDensity As KilogramPerCubicMeter
+
+		ReadOnly Property FuelDensityAsGramPerLiter As Double
 	End Interface
 End Namespace
 
diff --git a/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb b/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb
index b50292e32bfe6eb862b3b57fcd989183c5a12e9a..12b5ac6feaba175e3b03d1099b9cad394e8b699b 100644
--- a/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb
+++ b/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb
@@ -712,7 +712,8 @@ Namespace Hvac
 
 			Dim FuelLPerHBaseCurrentResult As Double =
 					(Math.Min(Math.Abs(BaseHeatingW_FuelFiredHeating / 1000), genInputs.AH_FuelFiredHeaterkW) /
-					genInputs.BC_AuxHeaterEfficiency) * (1 / (genInputs.BC_GCVDieselOrHeatingOil * ssmTOOL.HVACConstants.FuelDensity))
+					genInputs.BC_AuxHeaterEfficiency) *
+					(1 / (genInputs.BC_GCVDieselOrHeatingOil * ssmTOOL.HVACConstants.FuelDensityAsGramPerLiter))
 
 			Return FuelLPerHBaseCurrentResult * Weight
 		End Function
@@ -783,7 +784,8 @@ Namespace Hvac
 			End If
 
 			Dim FuelLPerHBaseAdjusted As Double = Math.Min(result, genInputs.AH_FuelFiredHeaterkW) /
-												genInputs.BC_AuxHeaterEfficiency * (1 / (genInputs.BC_GCVDieselOrHeatingOil * ssmTOOL.HVACConstants.FuelDensity))
+												genInputs.BC_AuxHeaterEfficiency *
+												(1 / (genInputs.BC_GCVDieselOrHeatingOil * ssmTOOL.HVACConstants.FuelDensityAsGramPerLiter))
 
 			Return FuelLPerHBaseAdjusted * Weight
 		End Function
diff --git a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
index 58f061f3c67d82830605f975a28455f8dfd1850d..d0830d37155bb9783db0a4e2bd492dc4f5223b82 100644
--- a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
+++ b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
@@ -19,8 +19,8 @@ Namespace IntegrationTests
 			Dim aux As AdvancedAuxiliaries = New AdvancedAuxiliaries
 
 			aux.VectoInputs.Cycle = "Coach"
-			aux.VectoInputs.VehicleWeightKG = vehicleWeight
-			aux.VectoInputs.FuelDensity = 0.832
+			aux.VectoInputs.VehicleWeightKG = vehicleWeight.SI(Of Kilogram)()
+			aux.VectoInputs.FuelDensity = 0.832.SI().Kilo.Gramm.Per.Liter.Cast(Of KilogramPerCubicMeter)()
 			Dim fuelMap As cMAP = New cMAP()
 			fuelMap.FilePath = engineFCMapFilePath
 			fuelMap.ReadFile(False)
@@ -65,8 +65,8 @@ Namespace IntegrationTests
 			Dim aux As AdvancedAuxiliaries = New AdvancedAuxiliaries
 
 			aux.VectoInputs.Cycle = "Coach"
-			aux.VectoInputs.VehicleWeightKG = 12000
-			aux.VectoInputs.FuelDensity = 0.832
+			aux.VectoInputs.VehicleWeightKG = 12000.SI(Of Kilogram)()
+			aux.VectoInputs.FuelDensity = 0.832.SI().Kilo.Gramm.Per.Liter.Cast(Of KilogramPerCubicMeter)()
 			Dim fuelMap As cMAP = New cMAP()
 			fuelMap.FilePath = engineFCMapFilePath
 			fuelMap.ReadFile(False)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb
index 32cc2b7e9c78abd4d91dda3d9930697c8efa577e..f5f7f3ad65a1c03005cd74d36d83e0fd9b2ccf5c 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M14Tests.vb
@@ -100,14 +100,14 @@ Namespace UnitTests
 			Dim ip1 As Double = 1000.0
 			Dim ip5 As Double = 3114
 
-			Dim expectedOut1 As Double = 1799.3334	' 780333.4
+			Dim expectedOut1 As Double = 1799.3334	' 780333.4 
 			Dim expectedOut2 As Double = 2.13093
 
 			Dim m13 As New Mock(Of IM13)
 			Dim hvacSSM As New Mock(Of ISSMTOOL)
 			Dim signals As New Mock(Of ISignals)
 			Dim ssmMock As ISSMTOOL = New SSMToolMock()
-			Dim constants As IHVACConstants = New HVACConstants(835)
+			Dim constants As IHVACConstants = New HVACConstants(835.SI(Of KilogramPerCubicMeter))
 
 			'Moq' Arrangements
 			m13.Setup(Function(x) x.WHTCTotalCycleFuelConsumptionGrams).Returns((ip1 / 1000).SI(Of Kilogram))
@@ -119,7 +119,7 @@ Namespace UnitTests
 
 			'Assert
 			Assert.AreEqual(expectedOut1.SI().Gramm.Value(), m14.TotalCycleFCGrams.Value(), 0.1)
-			Assert.AreEqual(expectedOut2, m14.TotalCycleFCLitres.Value(), 0.00001)
+			Assert.AreEqual(expectedOut2.SI().Liter.Value(), m14.TotalCycleFCLitres.Value(), 0.00001)
 		End Sub
 	End Class
 End Namespace
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/IVectoInputs.vb b/VectoCommon/AdvancedAuxiliaryInterfaces/IVectoInputs.vb
index 4f31f2b45b341f28111e562bf3bc015216952e4c..11e637ce9ef92dd4a6b0b111de163955cc0690f6 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/IVectoInputs.vb
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/IVectoInputs.vb
@@ -8,6 +8,7 @@
 '   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 '
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports TUGraz.VectoCommon.Utils
 
 Public Interface IVectoInputs
 	''' <summary>
@@ -16,7 +17,7 @@ Public Interface IVectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Property VehicleWeightKG As Single
+	Property VehicleWeightKG As Kilogram
 
 	''' <summary>
 	''' Cycle ( Urban, Interurban etc )
@@ -32,7 +33,7 @@ Public Interface IVectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Property PowerNetVoltage As Single
+	Property PowerNetVoltage As Volt
 
 	''' <summary>
 	''' Fuel Map Used in Vecto.
@@ -50,5 +51,5 @@ Public Interface IVectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Property FuelDensity As Double
+	Property FuelDensity As KilogramPerCubicMeter
 End Interface
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/VectoInputs.vb b/VectoCommon/AdvancedAuxiliaryInterfaces/VectoInputs.vb
index e0b5b0459671531efc14dfeae6fa136ebab592a2..bf8f81c84d29c764ff0e7f974fbf9549092d1c11 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/VectoInputs.vb
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/VectoInputs.vb
@@ -9,6 +9,7 @@
 '
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
 Imports Newtonsoft.Json
+Imports TUGraz.VectoCommon.Utils
 
 Public Class VectoInputs
 	Implements IVectoInputs
@@ -27,7 +28,17 @@ Public Class VectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Public Property VehicleWeightKG As Single Implements IVectoInputs.VehicleWeightKG
+	<JsonIgnore>
+	Public Property VehicleWeightKG As Kilogram Implements IVectoInputs.VehicleWeightKG
+		Get
+			Return _vehicleWeight.SI(Of Kilogram)()
+		End Get
+		Set(value As Kilogram)
+			_vehicleWeight = value.Value()
+		End Set
+	End Property
+
+	<JsonProperty("VehicleWeightKG")> Dim _vehicleWeight As Double
 
 	''' <summary>
 	''' Powernet Voltage (V)
@@ -35,7 +46,17 @@ Public Class VectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks>This is the power voltage available in the bus - usually 26.3 Volts</remarks>
-	Public Property PowerNetVoltage As Single Implements IVectoInputs.PowerNetVoltage
+	<JsonIgnore>
+	Public Property PowerNetVoltage As Volt Implements IVectoInputs.PowerNetVoltage
+		Get
+			Return _powerNetVoltage.SI(Of Volt)()
+		End Get
+		Set(value As Volt)
+			_powerNetVoltage = value.Value()
+		End Set
+	End Property
+
+	<JsonProperty("PowerNetVoltage")> Dim _powerNetVoltage As Double
 
 	''' <summary>
 	''' Fuel Map Same One as used in Vecto.
@@ -55,6 +76,16 @@ Public Class VectoInputs
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Public Property FuelDensity As Double Implements IVectoInputs.FuelDensity
+	<JsonIgnore>
+	Public Property FuelDensity As KilogramPerCubicMeter Implements IVectoInputs.FuelDensity
+		Get
+			Return _fuelDensity.SI(Of KilogramPerCubicMeter)()
+		End Get
+		Set(value As KilogramPerCubicMeter)
+			_fuelDensity = value.Value()
+		End Set
+	End Property
+
+	<JsonProperty("FuelDensity")> Dim _fuelDensity As Double
 End Class
 
diff --git a/VectoCommon/VectoCommon/Utils/SI.cs b/VectoCommon/VectoCommon/Utils/SI.cs
index c521e02e03a034b1d09f92c95a39790106e09047..1c86329c28d3aa769a8144460f55c0896db9f84f 100644
--- a/VectoCommon/VectoCommon/Utils/SI.cs
+++ b/VectoCommon/VectoCommon/Utils/SI.cs
@@ -423,6 +423,34 @@ namespace TUGraz.VectoCommon.Utils
 		}
 	}
 
+	/// <summary>
+	/// SI Class for Kilogram Square Meter [kgm^2].
+	/// </summary>
+	public class KilogramPerCubicMeter : SIBase<KilogramPerCubicMeter>
+	{
+		private static readonly Unit[] NumeratorDefault = { Unit.k, Unit.g };
+		private static readonly Unit[] DenominatorDefault = { Unit.m, Unit.m, Unit.m };
+
+		[DebuggerHidden]
+		private KilogramPerCubicMeter(double value) : base(value, NumeratorDefault, DenominatorDefault) {}
+
+		[DebuggerHidden]
+		public static Kilogram operator *(KilogramPerCubicMeter kilogramPerCubicMeter, CubicMeter cubicMeter)
+		{
+			return SIBase<Kilogram>.Create(kilogramPerCubicMeter.Val * cubicMeter.Value());
+		}
+
+		public static Kilogram operator *(KilogramPerCubicMeter kilogramPerCubicMeter, Liter liter)
+		{
+			return SIBase<Kilogram>.Create(kilogramPerCubicMeter.Val * liter.Value() / 1000);
+		}
+
+		public static CubicMeter operator /(Kilogram kg, KilogramPerCubicMeter kgm3)
+		{
+			return SIBase<CubicMeter>.Create(kg.Value() / kgm3.Val);
+		}
+	}
+
 	/// <summary>
 	/// SI Class for Kilogramm per watt second [kg/Ws].
 	/// </summary>
@@ -532,17 +560,17 @@ namespace TUGraz.VectoCommon.Utils
 		}
 	}
 
-	public class JoulePerGram : SIBase<JoulePerGram>
+	public class JoulePerKilogramm : SIBase<JoulePerKilogramm>
 	{
-		private static readonly Unit[] NumeratorDefault = { Unit.W, Unit.s };
-		private static readonly Unit[] DenominatorDefault = { Unit.g };
+		private static readonly Unit[] NumeratorDefault = { Unit.J };
+		private static readonly Unit[] DenominatorDefault = { Unit.k, Unit.g };
 
-		private JoulePerGram(double val) : base(val, NumeratorDefault, DenominatorDefault) {}
+		private JoulePerKilogramm(double val) : base(val, NumeratorDefault, DenominatorDefault) {}
 
-		//public static Joule operator *(Gram gram, JoulePerGram jpg)
-		//{
-		//	return SIBase<Joule>.Create(gram.Value() * jpg.Val);
-		//}
+		public static Joule operator *(Kilogram kg, JoulePerKilogramm jpg)
+		{
+			return SIBase<Joule>.Create(kg.Value() * jpg.Val);
+		}
 	}
 
 
@@ -1001,6 +1029,7 @@ namespace TUGraz.VectoCommon.Utils
 			h,
 			milli,
 			t,
+			J,
 			Ampere,
 			NI, // norm liter
 			liter,
@@ -1165,12 +1194,13 @@ namespace TUGraz.VectoCommon.Utils
 		/// Casts the SI Unit to the concrete unit type (if the units allow such an cast).
 		/// </summary>
 		/// <typeparam name="T">the specialized SI unit. e.g. Watt, NewtonMeter, Second</typeparam>
-		[DebuggerHidden]
+		//[DebuggerHidden]
 		public T Cast<T>() where T : SIBase<T>
 		{
-			var t = SIBase<T>.Create(Val);
-			if (!HasEqualUnit(t)) {
-				throw new VectoException("SI Unit Conversion failed: From {0} to {1}", this, t);
+			var si = ToBasicUnits();
+			var t = SIBase<T>.Create(si.Val);
+			if (!si.HasEqualUnit(t)) {
+				throw new VectoException("SI Unit Conversion failed: From {0} to {1}", si, t);
 			}
 			return t;
 		}
@@ -1222,6 +1252,20 @@ namespace TUGraz.VectoCommon.Utils
 					numerator.Add(Unit.k);
 					numerator.Add(Unit.g);
 					break;
+				case Unit.J:
+					numerator.Add(Unit.k);
+					numerator.Add(Unit.g);
+					numerator.Add(Unit.m);
+					numerator.Add(Unit.m);
+					denominator.Add(Unit.s);
+					denominator.Add(Unit.s);
+					break;
+				case Unit.liter:
+					factor /= 1000;
+					numerator.Add(Unit.m);
+					numerator.Add(Unit.m);
+					numerator.Add(Unit.m);
+					break;
 				case Unit.min:
 					factor *= 60;
 					numerator.Add(Unit.s);
@@ -1349,7 +1393,13 @@ namespace TUGraz.VectoCommon.Utils
 		[DebuggerHidden]
 		public SI Liter
 		{
-			[DebuggerHidden] get { return new SI(this, fromUnit: Unit.liter, toUnit: Unit.liter); }
+			[DebuggerHidden] get { return new SI(this, fromUnit: Unit.liter, factor: 0.1, toUnit: Unit.m, exponent: 3); }
+		}
+
+		[DebuggerHidden]
+		public SI Joule
+		{
+			[DebuggerHidden] get { return new SI(this, fromUnit: Unit.J, toUnit: Unit.J); }
 		}
 
 		/// <summary>
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index 35626c22f165f2a341c42f8d002d68173255073a..4f5540a0bc0243c1d36bc5bed7651f9472348c09 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -62,10 +62,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 			// 'Set Statics
 			tmpAux.VectoInputs.Cycle = DetermineCycle(cycleName, tmpAux.Signals);
-			tmpAux.VectoInputs.VehicleWeightKG = (float)vehicleWeight.Value();
+			tmpAux.VectoInputs.VehicleWeightKG = vehicleWeight;
 			_fcMapAdapter = new FuelConsumptionAdapter() { FcMap = fcMap };
 			tmpAux.VectoInputs.FuelMap = _fcMapAdapter;
-			tmpAux.VectoInputs.FuelDensity = Physics.FuelDensity.Value();
+			tmpAux.VectoInputs.FuelDensity = Physics.FuelDensity;
 
 			//'Set Signals
 			tmpAux.Signals.EngineIdleSpeed = (float)(engineIdleSpeed.Value() / Constants.RPMToRad);
diff --git a/VectoCore/VectoCore/Utils/Physics.cs b/VectoCore/VectoCore/Utils/Physics.cs
index d6fc577855771f0e27495b3131326c6a690a4d48..8f5bf94c62883d108664e9ba93cb5a653f3cdb05 100644
--- a/VectoCore/VectoCore/Utils/Physics.cs
+++ b/VectoCore/VectoCore/Utils/Physics.cs
@@ -44,12 +44,12 @@ namespace TUGraz.VectoCore.Utils
 		/// <summary>
 		/// Density of air.
 		/// </summary>
-		public static SI AirDensity = 1.188.SI().Kilo.Gramm.Per.Cubic.Meter;
+		public static KilogramPerCubicMeter AirDensity = 1.188.SI<KilogramPerCubicMeter>();
 
 		/// <summary>
 		/// Density of fuel.
 		/// </summary>
-		public static SI FuelDensity = 0.832.SI().Kilo.Gramm.Per.Cubic.Dezi.Meter;
+		public static KilogramPerCubicMeter FuelDensity = 832.SI<KilogramPerCubicMeter>();
 
 		public static readonly double RollResistanceExponent = 0.9;