diff --git a/VECTO/Input Files/cMAP.vb b/VECTO/Input Files/cMAP.vb
index f2ecc200596fc52ef0b12bc61856a66a85e48cba..3e0e97e4399a75b492ed946bae94b5c4720d96bd 100644
--- a/VECTO/Input Files/cMAP.vb	
+++ b/VECTO/Input Files/cMAP.vb	
@@ -10,6 +10,7 @@
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
 Imports System.Collections.Generic
 Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.Configuration
 Imports VectoAuxiliaries
 
 Public Class cMAP
@@ -188,10 +189,10 @@ lbEr:
 
 #End Region
 
-	Public Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As Double) As KilogramPerSecond _
+	Public Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As PerSecond) As KilogramPerSecond _
 		Implements IFuelConsumptionMap.GetFuelConsumption
 		'MQ: TODO: check units!
-		Return (fFCdelaunay_Intp(angularVelocity, torque.Value()) / 3600).SI(Of KilogramPerSecond)()
+		Return (fFCdelaunay_Intp(angularVelocity.Value() / Constants.RPMToRad, torque.Value()) / 3600).SI(Of KilogramPerSecond)()
 	End Function
 End Class
 
diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb
index bbff12df6a5dff4991a5214154aac52cff4cbd18..e1c8e498a03a705b8493da6a960fc407eeea5d17 100644
--- a/VECTO/MODcalc/cPower.vb
+++ b/VECTO/MODcalc/cPower.vb
@@ -1556,7 +1556,8 @@ lb_nOK:
 				End If
 
 				mAAUX_Global.EngineDrivelineTorque = nPeToM(nU, P) - (((Paux) * 1000) / (EngineSpeed / 9.55))
-				mAAUX_Global.advancedAuxModel.Signals.EngineDrivelineTorque = mAAUX_Global.EngineDrivelineTorque
+				mAAUX_Global.advancedAuxModel.Signals.EngineDrivelineTorque =
+					mAAUX_Global.EngineDrivelineTorque.SI(Of NewtonMeter)()
 
 
 				advancedAuxModel.CycleStep(1.SI(Of Second), message)
@@ -2747,15 +2748,16 @@ lb10:
 			Try
 
 				mAAUX_Global.advancedAuxModel.Signals.ClutchEngaged = mAAUX_Global.ClutchEngaged
-				mAAUX_Global.advancedAuxModel.Signals.EngineDrivelinePower = mAAUX_Global.EngineDrivelinePower
-				mAAUX_Global.advancedAuxModel.Signals.EngineDrivelineTorque = mAAUX_Global.EngineDrivelineTorque
-				mAAUX_Global.advancedAuxModel.Signals.EngineMotoringPower = mAAUX_Global.EngineMotoringPower
-				mAAUX_Global.advancedAuxModel.Signals.EngineSpeed = mAAUX_Global.EngineSpeed
-				mAAUX_Global.advancedAuxModel.Signals.PreExistingAuxPower = mAAUX_Global.PreExistingAuxPower
+				mAAUX_Global.advancedAuxModel.Signals.EngineDrivelinePower = (mAAUX_Global.EngineDrivelinePower * 1000).SI(Of Watt)()
+				mAAUX_Global.advancedAuxModel.Signals.EngineDrivelineTorque =
+					mAAUX_Global.EngineDrivelineTorque.SI(Of NewtonMeter)()
+				mAAUX_Global.advancedAuxModel.Signals.EngineMotoringPower = (mAAUX_Global.EngineMotoringPower * 1000).SI(Of Watt)()
+				mAAUX_Global.advancedAuxModel.Signals.EngineSpeed = mAAUX_Global.EngineSpeed.RPMtoRad()
+				mAAUX_Global.advancedAuxModel.Signals.PreExistingAuxPower = (mAAUX_Global.PreExistingAuxPower * 1000).SI(Of Watt)()
 				mAAUX_Global.advancedAuxModel.Signals.Idle = mAAUX_Global.Idle
 				mAAUX_Global.advancedAuxModel.Signals.InNeutral = mAAUX_Global.InNeutral
 				mAAUX_Global.advancedAuxModel.Signals.RunningCalc = mAAUX_Global.RunningCalc
-				mAAUX_Global.advancedAuxModel.Signals.Internal_Engine_Power = mAAUX_Global.Internal_Engine_Power
+				mAAUX_Global.advancedAuxModel.Signals.InternalEnginePower = (mAAUX_Global.Internal_Engine_Power * 1000).SI(Of Watt)()
 
 				'Power coming out of Advanced Model is in Watts.
 				power = (advancedAuxModel.AuxiliaryPowerAtCrankWatts().Value() / 1000)
diff --git a/VECTO/mAAUX_Global.vb b/VECTO/mAAUX_Global.vb
index 76cad83e19a3b5a99b9a13cd8cf37502a44c77ad..19a2d421c3fd64c677a869af82083f1690c8a08d 100644
--- a/VECTO/mAAUX_Global.vb
+++ b/VECTO/mAAUX_Global.vb
@@ -67,7 +67,7 @@ Module mAAUX_Global
 
 					'Set Signals
 					advancedAuxModel.Signals.TotalCycleTimeSeconds = CycleTimeInSeconds
-					advancedAuxModel.Signals.EngineIdleSpeed = ENG.Nidle
+					advancedAuxModel.Signals.EngineIdleSpeed = ENG.Nidle.RPMtoRad()
 					advancedAuxModel.RunStart(aauxFile, VEC.FilePath)
 
 
diff --git a/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb b/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
index d7f3d83ceab362ade3cd56ec93732da3fb6b1ab6..3f95ec9bf666ca24d28037ec069e532b0c76b704 100644
--- a/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/AuxiliaryConfig.vb
@@ -41,6 +41,7 @@ Public Class AuxiliaryConfig
 	Public Property HvacUserInputsConfig As IHVACUserInputsConfig Implements IAuxiliaryConfig.HvacUserInputsConfig
 
 	'Vecto Signals
+	<JsonIgnore>
 	Public Property Signals As ISignals
 
 	'Constructors
@@ -84,9 +85,10 @@ Public Class AuxiliaryConfig
 	'Set Default Values
 	Private Sub setDefaults()
 
-		Dim tmp As VectoInputs = New VectoInputs With {.Cycle = "Urban", .VehicleWeightKG = 16500.SI(Of Kilogram)(), .PowerNetVoltage = 28.3.SI(Of Volt)()}
+		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}
+		Signals = New Signals With {.EngineSpeed = 2000.RPMtoRad(), .TotalCycleTimeSeconds = 3114, .ClutchEngaged = False}
 
 		'Pneumatics set deault values
 		PneumaticUserInputsConfig = New PneumaticUserInputsConfig(True)
diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M11.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M11.vb
index 504dac2b530a3501c971b17d373246bda7ae24b1..c14e8c4462fb30c9d6de2e3268a588f5b535e585 100644
--- a/VECTOAux/VectoAuxiliaries/DownstreamModules/M11.vb
+++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M11.vb
@@ -45,11 +45,11 @@ Namespace DownstreamModules
 
 
 		'Staging Calculations
-		Private Function Sum0(ByVal rpm As Double) As PerSecond
+		Private Function Sum0(ByVal rpm As PerSecond) As PerSecond
 
-			If rpm < 1 Then rpm = 1
+			If rpm < 1 Then rpm = 1.RPMtoRad()
 
-			Return rpm.RPMtoRad()	' / RPM_to_RadiansPerSecond
+			Return rpm	' / RPM_to_RadiansPerSecond
 		End Function
 
 		Private ReadOnly Property Sum1 As Watt
@@ -113,8 +113,8 @@ Namespace DownstreamModules
 			Get
 
 				Return _
-					signals.EngineDrivelineTorque.SI(Of NewtonMeter)() +
-					((signals.PreExistingAuxPower * 1000).SI(Of Watt)() / Sum0(signals.EngineSpeed))
+					signals.EngineDrivelineTorque +
+					(signals.PreExistingAuxPower / Sum0(signals.EngineSpeed))
 			End Get
 		End Property
 
@@ -228,7 +228,7 @@ Namespace DownstreamModules
 				'MQ: No longer needed - already per Second 'These need to be divided by 3600 as the Fuel Map output is in Grams/Second.
 				AG4 += (Sum7 * stepTimeInSeconds)  '/ 3600
 				AG5 += (Sum8 * stepTimeInSeconds) ' / 3600
-				AG7 += (Sum12 * stepTimeInSeconds)				 '/ 3600
+				AG7 += (Sum12 * stepTimeInSeconds)				   '/ 3600
 			End If
 		End Sub
 
diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb
index 0ef0fea22a4b747455ff4e0f3e1e5e41d1a66633..0748fc3fa57d993b4a163bdfc99860083fc98c41 100644
--- a/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb
+++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb
@@ -166,9 +166,8 @@ Namespace DownstreamModules
 
 		Public ReadOnly Property Sum3 As Watt
 			Get
-
-				Return (_signals.EngineMotoringPower * 1000).SI(Of Watt)() +
-						(_signals.Internal_Engine_Power * 1000).SI(Of Watt)() +
+				Return (_signals.EngineMotoringPower) +
+						(_signals.InternalEnginePower) +
 						Sum2
 			End Get
 		End Property
diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M9.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M9.vb
index 238a9b1eb20b229af5b4c3ba3469fac0281dd230..bb5c089ad316ae83ed041b4bcad9c4578c56ae73 100644
--- a/VECTOAux/VectoAuxiliaries/DownstreamModules/M9.vb
+++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M9.vb
@@ -78,11 +78,11 @@ Namespace DownstreamModules
 #End Region
 
 		'Staging Calculations
-		Private Function S0(ByVal rpm As Double) As PerSecond
+		Private Function S0(ByVal rpm As PerSecond) As PerSecond
 
-			If rpm < 1 Then rpm = 1
+			If rpm < 1 Then rpm = 1.RPMtoRad()
 
-			Return rpm.RPMtoRad()  ' / RPM_TO_RADS_PER_SECOND
+			Return rpm	' / RPM_TO_RADS_PER_SECOND
 		End Function
 
 		Private ReadOnly Property S1 As Watt
@@ -180,10 +180,9 @@ Namespace DownstreamModules
 
 		Private ReadOnly Property S14 As NewtonMeter
 			Get
-
 				Return _
-					SIBase(Of NewtonMeter).Create(Signals.EngineDrivelineTorque) +
-					(SIBase(Of Watt).Create(Signals.PreExistingAuxPower * 1000) / S0(Signals.EngineSpeed))
+					Signals.EngineDrivelineTorque +
+					Signals.PreExistingAuxPower / S0(Signals.EngineSpeed)
 			End Get
 		End Property
 
diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/cMAP.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/cMAP.vb
index ce28e88848736b2a0fa6e5b1c5eff9199d186385..c1ebf4fe23d4d5f186545206f12575a7e1d22e45 100644
--- a/VECTOAux/VectoAuxiliaries/DownstreamModules/cMAP.vb
+++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/cMAP.vb
@@ -184,10 +184,10 @@ lbEr:
 
 #End Region
 
-	Public Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As Double) As KilogramPerSecond _
+	Public Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As PerSecond) As KilogramPerSecond _
 		Implements IFuelConsumptionMap.GetFuelConsumption
 		Return _
-			(fFCdelaunay_Intp(CType(angularVelocity, Single), CType(torque.Value(), Single)) / 3600.0 / 1000.0).SI(Of KilogramPerSecond)()
+			(fFCdelaunay_Intp(CType(angularVelocity.AsRPM, Single), CType(torque.Value(), Single)) / 3600.0 / 1000.0).SI(Of KilogramPerSecond)()
 	End Function
 End Class
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb b/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb
index 8edc83c6447d7689ca8f0fc9a881921751c992c0..c516b3c7b9ec26f40587525fe1bfb80aa32b2ca7 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M0_5_SmartAlternatorSetEfficiency.vb
@@ -71,7 +71,7 @@ Namespace Electrics
 		Public ReadOnly Property AlternatorsEfficiencyIdleResultCard() As Double _
 			Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyIdleResultCard
 			Get
-				Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartIdleCurrent()).Efficiency
+				Return _alternatorMap.GetEfficiency(_signals.EngineSpeed.AsRPM, SmartIdleCurrent()).Efficiency
 			End Get
 		End Property
 
@@ -85,7 +85,7 @@ Namespace Electrics
 		Public ReadOnly Property AlternatorsEfficiencyTractionOnResultCard() As Double _
 			Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyTractionOnResultCard
 			Get
-				Return _alternatorMap.GetEfficiency(CType(_signals.EngineSpeed, Single), SmartTractionCurrent()).Efficiency
+				Return _alternatorMap.GetEfficiency(CType(_signals.EngineSpeed.AsRPM, Single), SmartTractionCurrent()).Efficiency
 			End Get
 		End Property
 
@@ -99,7 +99,7 @@ Namespace Electrics
 		Public ReadOnly Property AlternatorsEfficiencyOverrunResultCard() As Double _
 			Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyOverrunResultCard
 			Get
-				Return _alternatorMap.GetEfficiency(CType(_signals.EngineSpeed, Single), SmartOverrunCurrent()).Efficiency
+				Return _alternatorMap.GetEfficiency(CType(_signals.EngineSpeed.AsRPM, Single), SmartOverrunCurrent()).Efficiency
 			End Get
 		End Property
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb b/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb
index f59b541c296474c28b9441f4cc4d4d983edb091c..0d24142c6b4ddea2538a8635a823124663f719f8 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M0_NonSmart_AlternatorsSetEfficiency.vb
@@ -57,7 +57,7 @@ Namespace Electrics
 				Dim baseCurrentDemandAmps As Ampere = _electricalConsumersList.GetTotalAverageDemandAmps(False) _
 				' ElectricConstants.StoredEnergyEfficiency
 				Dim totalDemandAmps As Ampere = baseCurrentDemandAmps + GetHVACElectricalPowerDemandAmps
-				Return _alternatorEfficiencyMap.GetEfficiency(_signals.EngineSpeed, totalDemandAmps).Efficiency
+				Return _alternatorEfficiencyMap.GetEfficiency(_signals.EngineSpeed.AsRPM, totalDemandAmps).Efficiency
 			End Get
 		End Property
 
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/M3_AveragePneumaticLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/M3_AveragePneumaticLoadDemand.vb
index 7275513accffe1c36419fd41066d7fd13e0744b3..dea3a4e6b81a494ef0552ef294bb76d63e2f6345 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/M3_AveragePneumaticLoadDemand.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/M3_AveragePneumaticLoadDemand.vb
@@ -45,7 +45,7 @@ Namespace Pneumatics
 				Return _
 					Sum2 +
 					_pneumaticsCompressorFlowRateMap.GetPowerCompressorOff(
-						_signals.EngineSpeed * _pneumaticUserInputsConfig.CompressorGearRatio)
+						_signals.EngineSpeed.AsRPM * _pneumaticUserInputsConfig.CompressorGearRatio)
 			End Get
 		End Property
 
@@ -64,7 +64,8 @@ Namespace Pneumatics
 		Private ReadOnly Property Sum6 As NormLiterPerSecond
 			Get
 				Return _
-					_pneumaticsCompressorFlowRateMap.GetFlowRate(_signals.EngineSpeed * _pneumaticUserInputsConfig.CompressorGearRatio) /
+					_pneumaticsCompressorFlowRateMap.GetFlowRate(
+						_signals.EngineSpeed.AsRPM * _pneumaticUserInputsConfig.CompressorGearRatio) /
 					60
 			End Get
 		End Property
@@ -74,10 +75,10 @@ Namespace Pneumatics
 
 				Dim pon As Watt =
 						_pneumaticsCompressorFlowRateMap.GetPowerCompressorOn(
-							_signals.EngineSpeed * _pneumaticUserInputsConfig.CompressorGearRatio)
+							_signals.EngineSpeed.AsRPM * _pneumaticUserInputsConfig.CompressorGearRatio)
 				Dim poff As Watt =
 						_pneumaticsCompressorFlowRateMap.GetPowerCompressorOff(
-							_signals.EngineSpeed * _pneumaticUserInputsConfig.CompressorGearRatio)
+							_signals.EngineSpeed.AsRPM * _pneumaticUserInputsConfig.CompressorGearRatio)
 				Dim diff As Watt = pon - poff
 				Return diff
 			End Get
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
index cf62c41f41c59913de98b435a850a451b0107855..8184910f54757e14c91a55b801abdad58b74e0aa 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
@@ -111,7 +111,7 @@ Namespace Pneumatics
 		''' <returns></returns>
 		''' <remarks></remarks>
 		Public Function GetFlowRate() As NormLiterPerSecond Implements IM4_AirCompressor.GetFlowRate
-			Dim compressorRpm As Double = _signals.EngineSpeed * PulleyGearRatio
+			Dim compressorRpm As Double = _signals.EngineSpeed.AsRPM * PulleyGearRatio
 
 			''Flow Rate in the map is Litres/min so divide by 60 to get Units per second.
 			Return _map.GetFlowRate(compressorRpm) / 60
@@ -153,7 +153,7 @@ Namespace Pneumatics
 		''' <returns></returns>
 		''' <remarks></remarks>
 		Private Function GetCompressorPower(ByVal compressorOn As Boolean) As Watt
-			Dim compressorRpm As Double = _signals.EngineSpeed * PulleyGearRatio
+			Dim compressorRpm As Double = _signals.EngineSpeed.AsRPM * PulleyGearRatio
 			If compressorOn Then
 				Return _map.GetPowerCompressorOn(compressorRpm)
 			Else
diff --git a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
index d0830d37155bb9783db0a4e2bd492dc4f5223b82..64636bb7cbcc3a98544d05bcb178c23798c53689 100644
--- a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
+++ b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
@@ -30,21 +30,21 @@ Namespace IntegrationTests
 
 
 			aux.Signals.TotalCycleTimeSeconds = 15000
-			aux.Signals.EngineIdleSpeed = 560
+			aux.Signals.EngineIdleSpeed = 560.RPMtoRad()
 
 			aux.Initialise(Path.GetFileName(auxFilePath), Path.GetDirectoryName(Path.GetFullPath(auxFilePath)) + "\")
 
 			aux.Signals.ClutchEngaged = True
-			aux.Signals.EngineDrivelinePower = driveLinePower 'kW
-			aux.Signals.EngineSpeed = engineSpeed 'rpm
-			aux.Signals.EngineDrivelineTorque = driveLinePower * 1000 / (engineSpeed * 2 * Math.PI / 60)
-			aux.Signals.EngineMotoringPower = 24 'kW - has to be positive
+			aux.Signals.EngineDrivelinePower = (driveLinePower * 1000).SI(Of Watt)()  'kW
+			aux.Signals.EngineSpeed = engineSpeed.RPMtoRad() 'rpm
+			aux.Signals.EngineDrivelineTorque = (driveLinePower * 1000).SI(Of Watt)() / (engineSpeed.RPMtoRad())
+			aux.Signals.EngineMotoringPower = (24 * 1000).SI(Of Watt)()	  'kW - has to be positive
 
-			aux.Signals.PreExistingAuxPower = 6.1
+			aux.Signals.PreExistingAuxPower = (6.1 * 1000).SI(Of Watt)()
 			aux.Signals.Idle = False
 			aux.Signals.InNeutral = False
 			aux.Signals.RunningCalc = True
-			aux.Signals.Internal_Engine_Power = internalPower	'kW
+			aux.Signals.InternalEnginePower = (internalPower * 1000).SI(Of Watt)()		'kW
 
 			Dim power As Watt = aux.AuxiliaryPowerAtCrankWatts()
 
@@ -76,21 +76,21 @@ Namespace IntegrationTests
 
 
 			aux.Signals.TotalCycleTimeSeconds = 15000
-			aux.Signals.EngineIdleSpeed = 560
+			aux.Signals.EngineIdleSpeed = 560.RPMtoRad()
 
 			aux.Initialise(Path.GetFileName(auxFilePath), Path.GetDirectoryName(Path.GetFullPath(auxFilePath)) + "\")
 
 			aux.Signals.ClutchEngaged = True
-			aux.Signals.EngineDrivelinePower = driveLinePower 'kW
-			aux.Signals.EngineSpeed = engineSpeed 'rpm
-			aux.Signals.EngineDrivelineTorque = driveLinePower * 1000 / (1256 * 2 * Math.PI / 60)
-			aux.Signals.EngineMotoringPower = 24 'kW - has to be positive
+			aux.Signals.EngineDrivelinePower = (driveLinePower * 1000).SI(Of Watt)() 'kW
+			aux.Signals.EngineSpeed = engineSpeed.RPMtoRad() 'rpm
+			aux.Signals.EngineDrivelineTorque = (driveLinePower * 1000).SI(Of Watt)() / (1256.RPMtoRad())
+			aux.Signals.EngineMotoringPower = (24 * 1000).SI(Of Watt)()	 'kW - has to be positive
 
-			aux.Signals.PreExistingAuxPower = 0
+			aux.Signals.PreExistingAuxPower = 0.SI(Of Watt)()
 			aux.Signals.Idle = False
 			aux.Signals.InNeutral = False
 			aux.Signals.RunningCalc = True
-			aux.Signals.Internal_Engine_Power = internalPower	'kW
+			aux.Signals.InternalEnginePower = (internalPower * 1000).SI(Of Watt)()	   'kW
 
 			Dim msg As String = String.Empty
 			For i As Integer = 0 To 9
@@ -101,9 +101,9 @@ Namespace IntegrationTests
 
 			Assert.AreEqual(79.303.SI().Gramm.Value(), aux.AA_TotalCycleFC_Grams().Value(), 0.0001)
 
-			aux.Signals.EngineDrivelinePower = -15
-			aux.Signals.EngineDrivelineTorque = aux.Signals.EngineDrivelinePower * 1000 / (1256 * 2 * Math.PI / 60)
-			aux.Signals.Internal_Engine_Power = -50
+			aux.Signals.EngineDrivelinePower = (-15 * 1000).SI(Of Watt)()
+			aux.Signals.EngineDrivelineTorque = aux.Signals.EngineDrivelinePower / (1256.RPMtoRad())
+			aux.Signals.InternalEnginePower = (-50 * 1000).SI(Of Watt)()
 
 			For i As Integer = 0 To 9
 				Assert.AreEqual(8954.1435, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
@@ -113,9 +113,9 @@ Namespace IntegrationTests
 
 			Assert.AreEqual(82.5783.SI().Gramm.Value(), aux.AA_TotalCycleFC_Grams().Value(), 0.0001)
 
-			aux.Signals.EngineDrivelinePower = driveLinePower
-			aux.Signals.EngineDrivelineTorque = aux.Signals.EngineDrivelinePower * 1000 / (1256 * 2 * Math.PI / 60)
-			aux.Signals.Internal_Engine_Power = internalPower
+			aux.Signals.EngineDrivelinePower = (driveLinePower * 1000).SI(Of Watt)()
+			aux.Signals.EngineDrivelineTorque = aux.Signals.EngineDrivelinePower / (1256.RPMtoRad())
+			aux.Signals.InternalEnginePower = (internalPower * 1000).SI(Of Watt)()	   'kW
 
 			For i As Integer = 0 To 9
 				Assert.AreEqual(6087.0317, aux.AuxiliaryPowerAtCrankWatts().Value(), 0.001)
diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/MockFuel50PC.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/MockFuel50PC.vb
index c481c5cf136e8c2ed13e117b2dcbd2388efd6bbf..0c46f104e4bd1bb1d10426391ed241842553ee99 100644
--- a/VECTOAux/VectoAuxiliariesTests/Mocks/MockFuel50PC.vb
+++ b/VECTOAux/VectoAuxiliariesTests/Mocks/MockFuel50PC.vb
@@ -15,9 +15,9 @@ Public Class MockFuel50PC
 	End Function
 
 
-	Public Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As Double) As KilogramPerSecond _
+	Public Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As PerSecond) As KilogramPerSecond _
 		Implements IFuelConsumptionMap.GetFuelConsumption
-		Return (fFCdelaunay_Intp(angularVelocity, torque.Value()) / 3600 / 1000).SI(Of KilogramPerSecond)()
+		Return (fFCdelaunay_Intp(angularVelocity.AsRPM, torque.Value()) / 3600 / 1000).SI(Of KilogramPerSecond)()
 	End Function
 End Class
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
index d83fa84603499901f66009ca3394ce2d829b875e..d001e7c1ede54fc76758b484351f8cee1c0705ad 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
@@ -26,8 +26,7 @@ Namespace UnitTests
 
 
 		Public Sub New()
-
-			_signals.EngineSpeed = 100
+			_signals.EngineSpeed = 100.RPMtoRad()
 		End Sub
 
 
@@ -52,7 +51,7 @@ Namespace UnitTests
 		<Test()>
 		Public Sub CreateNewJustPathTest()
 			Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
-			_signals.EngineSpeed = 100
+			_signals.EngineSpeed = 100.RPMtoRad()
 			Dim target As M4_AirCompressor = New M4_AirCompressor(map, 2, 0.8, _signals)
 			Assert.IsNotNull(target)
 		End Sub
@@ -68,7 +67,7 @@ Namespace UnitTests
 		<Test()>
 		Public Sub InitialiseTest()
 			Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
-			_signals.EngineSpeed = 100
+			_signals.EngineSpeed = 100.RPMtoRad()
 			Dim target As M4_AirCompressor = New M4_AirCompressor(map, 2, 0.8, _signals)
 			Assert.IsTrue(target.Initialise())
 		End Sub
@@ -76,7 +75,7 @@ Namespace UnitTests
 		<Test(), ExpectedException("System.ArgumentException")>
 		Public Sub InitialiseInvalidMapTest()
 			Dim map As ICompressorMap = GetFailingCompressorMapMock()
-			_signals.EngineSpeed = 100
+			_signals.EngineSpeed = 100.RPMtoRad()
 			Dim target As M4_AirCompressor = New M4_AirCompressor(map, 2, 0.8, _signals)
 			target.Initialise()
 		End Sub
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
index 3c173461cb210d6bff410a912ecfcdee5aee3b93..f21248343a08496c1201f51952d344b8ba921688 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb
@@ -47,7 +47,7 @@ Namespace UnitTests
 
 			_Signals.TotalCycleTimeSeconds = 3114
 
-			_Signals.EngineSpeed = 3000
+			_Signals.EngineSpeed = 3000.RPMtoRad()
 		End Sub
 
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
index c95a2a6effc2badff8273dd9514d4fa3af05aba3..c8bb4610d3731cae15c7d1756ffd1ad56faf3c03 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_5_SmartAlternatorSetEfficiencyTests.vb
@@ -43,7 +43,7 @@ Namespace UnitTests
 			alternatoMap.Initialise()
 
 			Dim signals = New Signals()
-			signals.EngineSpeed = 2000
+			signals.EngineSpeed = 2000.RPMtoRad()
 
 			Dim m0 As New M0_NonSmart_AlternatorsSetEfficiency(elecConsumers, alternatoMap, 26.3.SI(Of Volt), signals, ssm)
 
@@ -57,7 +57,7 @@ Namespace UnitTests
 			Dim overrunResult As New ResultCard(readings)
 
 
-			signals.EngineSpeed = 2000
+			signals.EngineSpeed = 2000.RPMtoRad()
 			target = New M0_5_SmartAlternatorSetEfficiency(m0, elecConsumers, alternatoMap, idleResult, tractionResult,
 															overrunResult, signals)
 		End Sub
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
index 86e950a2d2e290c09da36f7782bb4569bdc5c1c3..d4a8990c6523d47000ad8cf13958fda2ac2bf4e0 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M0_NonSmart_AlternatorsSetEfficiencyTests.vb
@@ -32,7 +32,7 @@ Namespace UnitTests
 
 		Public Sub New()
 
-			signals.EngineSpeed = 2000
+			signals.EngineSpeed = 2000.RPMtoRad()
 
 			'Setup consumers and HVAC ( 1 Consumer in Test Category )
 			elecConsumers = CType(New ElectricalConsumerList(0.096, 26.3), IElectricalConsumerList)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb
index 8f3437b768770f233b5dfa1eb89147b4cee0e017..349ad34dfb3110030d042cc90b08fe14163dd2da 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M11Tests.vb
@@ -44,10 +44,11 @@ Namespace UnitTests
 			m6Mock.Setup(Function(x) x.OverrunFlag).Returns(IP1)
 			m8Mock.Setup(Function(x) x.SmartElectricalAlternatorPowerGenAtCrank).Returns(IP2.SI(Of Watt))
 			m6Mock.Setup(Function(x) x.AvgPowerDemandAtCrankFromElectricsIncHVAC).Returns(IP3.SI(Of Watt))
-			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP4)
+			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP4.SI(Of NewtonMeter))
+			sgnlsMock.Setup(Function(x) x.PreExistingAuxPower).Returns(0.SI(Of Watt))
 			m3Mock.Setup(Function(x) x.GetAveragePowerDemandAtCrankFromPneumatics).Returns(IP5.SI(Of Watt))
 			m1Mock.Setup(Function(x) x.AveragePowerDemandAtCrankFromHVACMechanicalsWatts).Returns(IP6.SI(Of Watt))
-			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP7)
+			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP7.RPMtoRad())
 			sgnlsMock.Setup(Function(x) x.EngineStopped).Returns(IP8)
 
 
@@ -100,10 +101,10 @@ Namespace UnitTests
 			m6Mock.Setup(Function(x) x.OverrunFlag).Returns(IP1)
 			m8Mock.Setup(Function(x) x.SmartElectricalAlternatorPowerGenAtCrank).Returns(IP2.SI(Of Watt))
 			m6Mock.Setup(Function(x) x.AvgPowerDemandAtCrankFromElectricsIncHVAC).Returns(IP3.SI(Of Watt))
-			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP4)
+			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP4.SI(Of NewtonMeter))
 			m3Mock.Setup(Function(x) x.GetAveragePowerDemandAtCrankFromPneumatics).Returns(IP5.SI(Of Watt))
 			m1Mock.Setup(Function(x) x.AveragePowerDemandAtCrankFromHVACMechanicalsWatts).Returns(IP6.SI(Of Watt))
-			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP7)
+			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP7.RPMtoRad())
 			sgnlsMock.Setup(Function(x) x.EngineStopped).Returns(IP8)
 
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb
index 17b5dc2e47fafd01e0b6f8bdbf0ce816cdf78aef..02251b0ee0c4d5e00c763385c5da3df17519c670 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M1_AverageHVACLoadDemandTests.vb
@@ -13,7 +13,7 @@ Namespace UnitTests
 		Private Const _SSMMAP As String = "TestFiles\ssm.Ahsm"
 		Private Const _BusDatabase As String = "TestFiles\BusDatabase.abdb"
 
-		Private signals As ISignals = New Signals With {.EngineSpeed = 2000}
+		Private signals As ISignals = New Signals With {.EngineSpeed = 2000.RPMtoRad()}
 		Private powernetVoltage As Double = 26.3
 		Private ssm As ISSMTOOL = New SSMTOOL(_SSMMAP, New HVACConstants())
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
index d2b4ed7e5ee76fb3cc5b5a7c5d133ce7fafcd7b4..4aba3ace562def96f5a1c8d23dc12f7eafe5e290 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb
@@ -33,7 +33,7 @@ Namespace UnitTests
 
 		Private Function GetAverageElectricalDemandInstance() As M2_AverageElectricalLoadDemand
 
-			signals.EngineSpeed = 2000
+			signals.EngineSpeed = 2000.RPMtoRad()
 
 
 			Dim consumers As IElectricalConsumerList = CType(New ElectricalConsumerList(26.3, 0.096, True), 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
index cf312c5c89277067be0b9f155abf2e2cf6978e78..42fe64dcda9c37dd5e04504b1aef96ddf016d2e7 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
@@ -40,7 +40,7 @@ Namespace UnitTests
 
 		Private Sub Initialise()
 
-			_signals.EngineSpeed = 2000
+			_signals.EngineSpeed = 2000.RPMtoRad()
 
 			Dim elecConsumers As New ElectricalConsumerList(_powerNetVoltage, 0.096, True)
 
@@ -61,7 +61,7 @@ Namespace UnitTests
 			Dim overrunResult As New ResultCard(readings)
 
 			Dim signals As ISignals = New Signals
-			signals.EngineSpeed = 2000
+			signals.EngineSpeed = 2000.RPMtoRad()
 
 			_m05 = New M0_5_SmartAlternatorSetEfficiency(m0, elecConsumers, alternatoMap, idleResult, tractionResult,
 														overrunResult, signals)
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb
index bdfb63952c0ae793e7c73587e9e44eefbbfc1916..b3dc1caa4129040d077e3beaa3eb9cef74ea9374 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M6Tests.vb
@@ -30,9 +30,9 @@ Namespace UnitTests
 
 		Public Sub New()
 
-			Signals.EngineMotoringPower = 100
-			Signals.EngineDrivelinePower = 150
-			Signals.PreExistingAuxPower = 30
+			Signals.EngineMotoringPower = 100000.SI(Of Watt)()
+			Signals.EngineDrivelinePower = 150000.SI(Of Watt)()
+			Signals.PreExistingAuxPower = 30000.SI(Of Watt)()
 		End Sub
 
 		<Test()>
@@ -46,8 +46,12 @@ Namespace UnitTests
 
 		'Test Cases Supplied by Mike Preston.
 		<Test()> _
-		<TestCase(100, 100, 100, 100, 20, 20, 40, 100, 100, 100, 0.1F, -0.55, False, False, False, 0, 20, 0, 100, 20, 200, False)> _
-		<TestCase(100, 100, 100, 100, 20, 20, 40, 100, 100, 100, 100, -550, True, False, False, 0, 20, 0, 100, 20, 200, False)>
+		<
+			TestCase _
+				(100, 100, 100, 100, 20, 20, 40, 100, 100, 100, 0.1F, -0.55, False, False, False, 0, 20, 0, 100, 20, 200, False)> _
+		<
+			TestCase _
+				(100, 100, 100, 100, 20, 20, 40, 100, 100, 100, 100, -550, True, False, False, 0, 20, 0, 100, 20, 200, False)>
 		Public Sub MikesConditionsTest(M1_1 As Double,
 										M1_2 As Double,
 										M2_1 As Double,
@@ -92,9 +96,10 @@ Namespace UnitTests
 			M5._AlternatorsGenerationPowerAtCrankOverrunWatts = M5_2.SI(Of Watt)()
 
 
-			signals.EngineMotoringPower = EMP
-			signals.PreExistingAuxPower = AUX
-			signals.EngineDrivelinePower = EDP
+			signals.EngineMotoringPower = (EMP * 1000).SI(Of Watt)()
+			signals.InternalEnginePower = 0.SI(Of Watt)()
+			signals.PreExistingAuxPower = (AUX * 1000).SI(Of Watt)()
+			signals.EngineDrivelinePower = (EDP * 1000).SI(Of Watt)()
 			signals.SmartElectrics = SM
 
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb
index f87c43e7eb24da191e38bc911681113ddc9abf68..a984dacfe80db2fdb52f0d0c8197fffc5f4b4ed6 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M7Tests.vb
@@ -73,6 +73,8 @@ Namespace UnitTests
 			M6._OverrunFlag = IP4
 			Signals.ClutchEngaged = IP5
 			Signals.InNeutral = IP6
+			Signals.EngineSpeed = 0.RPMtoRad()
+			Signals.EngineIdleSpeed = 0.RPMtoRad()
 			M6._SmartElecAndPneumaticAltPowerGenAtCrank = IP7.SI(Of Watt)()
 			M6._SmartElecAndPneumaticAirCompPowerGenAtCrank = IP8.SI(Of Watt)()
 			M6._SmartElecOnlyAltPowerGenAtCrank = IP9.SI(Of Watt)()
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
index 08211892dc8f6cfdba219fdd594c697aa6de0e5e..9a6c23400a93ffbc1b2044909ce96d85ced4872e 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb
@@ -44,8 +44,9 @@ Namespace UnitTests
 			m1Mock.Setup(Function(x) x.AveragePowerDemandAtCrankFromHVACMechanicalsWatts).Returns(IP2.SI(Of Watt))
 			m4Mock.Setup(Function(x) x.GetPowerCompressorOn).Returns(IP3.SI(Of Watt))
 			m4Mock.Setup(Function(x) x.GetPowerCompressorOff).Returns(IP4.SI(Of Watt))
-			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP5)
-			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP6)
+			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP5.SI(Of NewtonMeter))
+			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP6.RPMtoRad())
+			sgnlsMock.Setup(Function(x) x.PreExistingAuxPower).Returns(0.SI(Of Watt))
 			m4Mock.Setup(Function(x) x.GetFlowRate).Returns(IP7.SI(Of NormLiterPerSecond))
 			m6Mock.Setup(Function(x) x.OverrunFlag).Returns(IP8)
 			m8Mock.Setup(Function(x) x.CompressorFlag).Returns(IP9)
@@ -91,14 +92,15 @@ Namespace UnitTests
 			Dim sgnlsMock As New Mock(Of ISignals)
 			Dim psac As New Mock(Of IPneumaticsAuxilliariesConfig)
 
-			fMapMock.Setup(Function(x) x.GetFuelConsumption(1.SI(Of NewtonMeter), 1)).Returns(
+			fMapMock.Setup(Function(x) x.GetFuelConsumption(1.SI(Of NewtonMeter), 1.RPMtoRad())).Returns(
 				(-1 / 1000).SI(Of KilogramPerSecond)())
 			m6Mock.Setup(Function(x) x.AvgPowerDemandAtCrankFromElectricsIncHVAC).Returns(IP1.SI(Of Watt))
 			m1Mock.Setup(Function(x) x.AveragePowerDemandAtCrankFromHVACMechanicalsWatts).Returns(IP2.SI(Of Watt))
 			m4Mock.Setup(Function(x) x.GetPowerCompressorOn).Returns(IP3.SI(Of Watt))
 			m4Mock.Setup(Function(x) x.GetPowerCompressorOff).Returns(IP4.SI(Of Watt))
-			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP5)
-			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP6)
+			sgnlsMock.Setup(Function(x) x.EngineDrivelineTorque).Returns(IP5.SI(Of NewtonMeter))
+			sgnlsMock.Setup(Function(x) x.EngineSpeed).Returns(IP6.RPMtoRad())
+			sgnlsMock.Setup(Function(x) x.PreExistingAuxPower).Returns(0.SI(Of Watt))
 			m4Mock.Setup(Function(x) x.GetFlowRate).Returns(IP7.SI(Of NormLiterPerSecond))
 			m6Mock.Setup(Function(x) x.OverrunFlag).Returns(IP8)
 			m8Mock.Setup(Function(x) x.CompressorFlag).Returns(IP9)
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/IFuelConsumptionMap.vb b/VectoCommon/AdvancedAuxiliaryInterfaces/IFuelConsumptionMap.vb
index 8b21811128dde5389105fdc0b94e70f8bc972de1..3d5d0a3e3e2e64748680372c98ac37128e6804b1 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/IFuelConsumptionMap.vb
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/IFuelConsumptionMap.vb
@@ -8,5 +8,5 @@ Public Interface IFuelConsumptionMap
 	''' <param name="angularVelocity"></param>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As Double) As KilogramPerSecond
+	Function GetFuelConsumption(torque As NewtonMeter, angularVelocity As PerSecond) As KilogramPerSecond
 End Interface
\ No newline at end of file
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/ISignals.vb b/VectoCommon/AdvancedAuxiliaryInterfaces/ISignals.vb
index 4d56a11c93e9f787fa54bb8877f6f097b6bada0a..c1c6f361faaf10d2d4025b100b1e49f919a2d86a 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/ISignals.vb
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/ISignals.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 ISignals
 	''' <summary>
@@ -16,7 +17,7 @@ Public Interface ISignals
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks>Vecto Input</remarks>
-	Property PreExistingAuxPower As Double
+	Property PreExistingAuxPower As Watt
 
 	''' <summary>
 	''' Engine Motoring Power (KW)
@@ -24,7 +25,7 @@ Public Interface ISignals
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks>Vecto Input</remarks>
-	Property EngineMotoringPower As Double
+	Property EngineMotoringPower As Watt
 
 	''' <summary>
 	''' Engine Driveline Power (KW)
@@ -32,7 +33,7 @@ Public Interface ISignals
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Property EngineDrivelinePower As Double
+	Property EngineDrivelinePower As Watt
 
 	''' <summary>
 	''' Smart Electrics
@@ -55,8 +56,8 @@ Public Interface ISignals
 	''' </summary>
 	''' <value></value>
 	''' <returns></returns>
-	''' <remarks>RPM in old money - Vecto Input</remarks>
-	Property EngineSpeed As Double
+	''' 
+	Property EngineSpeed As PerSecond
 
 	''' <summary>
 	''' Smart Pneumatics
@@ -88,7 +89,7 @@ Public Interface ISignals
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks>Vecto Input</remarks>
-	Property EngineDrivelineTorque As Double
+	Property EngineDrivelineTorque As NewtonMeter
 
 	''' <summary>
 	''' Engine Idle
@@ -144,7 +145,7 @@ Public Interface ISignals
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Property EngineIdleSpeed As Double
+	Property EngineIdleSpeed As PerSecond
 
 	''' <summary>
 	''' Pneumatic Overrun Utilisation
@@ -176,5 +177,5 @@ Public Interface ISignals
 	''' <value></value>
 	''' <returns></returns>
 	''' <remarks></remarks>
-	Property Internal_Engine_Power As Single
+	Property InternalEnginePower As Watt
 End Interface
diff --git a/VectoCommon/AdvancedAuxiliaryInterfaces/Signals.vb b/VectoCommon/AdvancedAuxiliaryInterfaces/Signals.vb
index 5ee6450f5ea808dc336b15236f031c8753d1176b..e90d59cb8b4ec87dc85bef713914994adae1b7c4 100644
--- a/VectoCommon/AdvancedAuxiliaryInterfaces/Signals.vb
+++ b/VectoCommon/AdvancedAuxiliaryInterfaces/Signals.vb
@@ -8,7 +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 Class Signals
 	Implements ISignals
@@ -18,10 +18,10 @@ Public Class Signals
 	Private _smartElectrics As Boolean
 
 	Public Property ClutchEngaged As Boolean Implements ISignals.ClutchEngaged
-	Public Property EngineDrivelinePower As Double Implements ISignals.EngineDrivelinePower
-	Public Property EngineDrivelineTorque As Double Implements ISignals.EngineDrivelineTorque
-	Public Property EngineMotoringPower As Double Implements ISignals.EngineMotoringPower
-	Public Property EngineSpeed As Double Implements ISignals.EngineSpeed
+	Public Property EngineDrivelinePower As Watt Implements ISignals.EngineDrivelinePower
+	Public Property EngineDrivelineTorque As NewtonMeter Implements ISignals.EngineDrivelineTorque
+	Public Property EngineMotoringPower As Watt Implements ISignals.EngineMotoringPower
+	Public Property EngineSpeed As PerSecond Implements ISignals.EngineSpeed
 
 	Public Property SmartElectrics As Boolean Implements ISignals.SmartElectrics
 		Get
@@ -35,7 +35,7 @@ Public Class Signals
 	Public Property SmartPneumatics As Boolean Implements ISignals.SmartPneumatics
 	Public Property TotalCycleTimeSeconds As Integer Implements ISignals.TotalCycleTimeSeconds
 	Public Property CurrentCycleTimeInSeconds As Double Implements ISignals.CurrentCycleTimeInSeconds
-	Public Property PreExistingAuxPower As Double Implements ISignals.PreExistingAuxPower
+	Public Property PreExistingAuxPower As Watt Implements ISignals.PreExistingAuxPower
 	Public Property Idle As Boolean Implements ISignals.Idle
 	Public Property InNeutral As Boolean Implements ISignals.InNeutral
 
@@ -54,11 +54,11 @@ Public Class Signals
 		End Get
 	End Property
 
-	Public Property EngineIdleSpeed As Double Implements ISignals.EngineIdleSpeed
+	Public Property EngineIdleSpeed As PerSecond Implements ISignals.EngineIdleSpeed
 	Public Property PneumaticOverrunUtilisation As Double Implements ISignals.PneumaticOverrunUtilisation
 	Public Property StoredEnergyEfficiency As Double Implements ISignals.StoredEnergyEfficiency
 	Public Property RunningCalc As Boolean Implements ISignals.RunningCalc
-	Public Property Internal_Engine_Power As Single Implements ISignals.Internal_Engine_Power
+	Public Property InternalEnginePower As Watt Implements ISignals.InternalEnginePower
 End Class
 
 
diff --git a/VectoCommon/VectoCommon/Utils/DoubleExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/DoubleExtensionMethods.cs
index 2829377e57687f7ddfb4482b0cabbd24b2d9ded3..d9329db771fad24a1dabeba6bb63b7ffcc72de10 100644
--- a/VectoCommon/VectoCommon/Utils/DoubleExtensionMethods.cs
+++ b/VectoCommon/VectoCommon/Utils/DoubleExtensionMethods.cs
@@ -152,6 +152,16 @@ namespace TUGraz.VectoCommon.Utils
 			return SI<PerSecond>(self * 2 * Math.PI / 60.0);
 		}
 
+		/// <summary>
+		/// Converts the double-value from RPM (rounds per minute) to the SI Unit PerSecond.
+		/// </summary>
+		/// <param name="self"></param>
+		/// <returns></returns>
+		public static PerSecond RPMtoRad(this float self)
+		{
+			return SI<PerSecond>(self * 2 * Math.PI / 60.0);
+		}
+
 		/// <summary>
 		/// Converts the value from rounds per minute to the SI Unit PerSecond
 		/// </summary>
diff --git a/VectoCommon/VectoCommon/Utils/SI.cs b/VectoCommon/VectoCommon/Utils/SI.cs
index 1c86329c28d3aa769a8144460f55c0896db9f84f..48a1334157e5729c022714113e6b233d166f8f75 100644
--- a/VectoCommon/VectoCommon/Utils/SI.cs
+++ b/VectoCommon/VectoCommon/Utils/SI.cs
@@ -584,6 +584,11 @@ namespace TUGraz.VectoCommon.Utils
 
 		[DebuggerHidden]
 		private PerSecond(double val) : base(val, new Unit[0], DenominatorDefault) {}
+
+		public double AsRPM
+		{
+			get { return Val * 60 / (2 * Math.PI); }
+		}
 	}
 
 	/// <summary>
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs
index 0968285e11bf72a469a6af6c6b3780e35e097b99..5022dc43883e4df637c491b45cdc75f58c8fa8ee 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs
@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 	public class FuelConsumptionMap : SimulationComponentData, IDisposable
 	{
 		[Required, ValidateObject] private readonly DelaunayMap _fuelMap = new DelaunayMap("FuelConsumptionMap");
-		
+
 		private FuelConsumptionMap() {}
 
 		public static FuelConsumptionMap ReadFromFile(string fileName)
@@ -126,7 +126,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 		{
 			// delaunay map needs is initialised with rpm, therefore the angularVelocity has to be converted.
 			return
-				_fuelMap.Interpolate(torque.Value(), angularVelocity.ConvertTo().Rounds.Per.Minute.Value(), allowExtrapolation)
+				_fuelMap.Interpolate(torque.Value(), angularVelocity.AsRPM, allowExtrapolation)
 					.SI().Kilo.Gramm.Per.Second.Cast<KilogramPerSecond>();
 		}
 
@@ -235,8 +235,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 
 		protected virtual void Dispose(bool disposing)
 		{
-			if (disposing)
+			if (disposing) {
 				_fuelMap.Dispose();
+			}
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index 4f5540a0bc0243c1d36bc5bed7651f9472348c09..a170bb82787c1d6526bea6173927398c75ff2bce 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -68,7 +68,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			tmpAux.VectoInputs.FuelDensity = Physics.FuelDensity;
 
 			//'Set Signals
-			tmpAux.Signals.EngineIdleSpeed = (float)(engineIdleSpeed.Value() / Constants.RPMToRad);
+			tmpAux.Signals.EngineIdleSpeed = engineIdleSpeed;
 			tmpAux.Initialise(Path.GetFileName(aauxFile), Path.GetDirectoryName(Path.GetFullPath(aauxFile)) + @"\");
 
 			Auxiliaries = tmpAux;
@@ -205,29 +205,27 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			_fcMapAdapter.AllowExtrapolation = true;
 
 			Auxiliaries.Signals.ClutchEngaged = DataBus.ClutchClosed(absTime);
-			Auxiliaries.Signals.EngineDrivelinePower = (float)(torquePowerTrain * angularSpeed / 1000).Value();
-			Auxiliaries.Signals.EngineDrivelineTorque = (float)torquePowerTrain.Value();
-			Auxiliaries.Signals.Internal_Engine_Power =
-				(float)((torqueEngine * angularSpeed - DataBus.BrakePower) / 1000).Value();
+			Auxiliaries.Signals.EngineDrivelinePower = torquePowerTrain * angularSpeed;
+			Auxiliaries.Signals.EngineDrivelineTorque = torquePowerTrain;
+			Auxiliaries.Signals.InternalEnginePower = torqueEngine * angularSpeed - DataBus.BrakePower;
 			if (DataBus.DriverBehavior == DrivingBehavior.Coasting) {
 				// make sure smart aux are _not_ enabled for now
 				// set internal_engine_power a little bit lower so there is no excessive power for smart aux
-				Auxiliaries.Signals.Internal_Engine_Power =
-					(float)((0.9 * torqueEngine * angularSpeed /*- DataBus.BrakePower*/) / 1000).Value();
+				Auxiliaries.Signals.InternalEnginePower = 0.9 * torqueEngine * angularSpeed /*- DataBus.BrakePower*/;
 				// if smart aux should be on during coasting use the following line
 				// set internal_engine_power to a large value (*10) so that there's excessive power for smart aux (alreadin during search operating point)
 				//(float)DataBus.EngineDragPower(angularSpeed).Value() / 100;
 			} else {
 				if (DataBus.DriverBehavior != DrivingBehavior.Braking) {
-					Auxiliaries.Signals.Internal_Engine_Power = 0;
+					Auxiliaries.Signals.InternalEnginePower = 0.SI<Watt>();
 					//(float)((0.9 * torqueEngine * angularSpeed - DataBus.BrakePower) / 1000).Value();
 				} else {
 					// smart aux should be on during braking
 				}
 			}
-			Auxiliaries.Signals.EngineMotoringPower = (float)(-DataBus.EngineDragPower(angularSpeed).Value() / 1000);
-			Auxiliaries.Signals.EngineSpeed = angularSpeed.Value() / Constants.RPMToRad;
-			Auxiliaries.Signals.PreExistingAuxPower = 0; //mAAUX_Global.PreExistingAuxPower;
+			Auxiliaries.Signals.EngineMotoringPower = -DataBus.EngineDragPower(angularSpeed);
+			Auxiliaries.Signals.EngineSpeed = angularSpeed;
+			Auxiliaries.Signals.PreExistingAuxPower = 0.SI<Watt>(); //mAAUX_Global.PreExistingAuxPower;
 			Auxiliaries.Signals.Idle = DataBus.VehicleStopped;
 			Auxiliaries.Signals.InNeutral = DataBus.Gear == 0;
 			Auxiliaries.Signals.RunningCalc = true;
@@ -244,9 +242,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 			public bool AllowExtrapolation { get; set; }
 
-			public KilogramPerSecond GetFuelConsumption(NewtonMeter torque, double angularVelocity)
+			public KilogramPerSecond GetFuelConsumption(NewtonMeter torque, PerSecond angularVelocity)
 			{
-				return FcMap.GetFuelConsumption(torque, angularVelocity.RPMtoRad(), AllowExtrapolation);
+				return FcMap.GetFuelConsumption(torque, angularVelocity, AllowExtrapolation);
 			}
 		}