diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index 50c83e932ae8d57d09a891b20b1742b132e29b02..5a58c9925b2ea11bd4beac456c9060497791efec 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -163,7 +163,7 @@ Public Class Vehicle
 				vehicleData = New LorryVehicleDataAdapter().CreateVehicleData(vehicle, segment, segment.Missions.First(),
 													segment.Missions.First().Loadings.First(), True)
 				airdragData = New AirdragDataAdapter().CreateAirdragData(vehicle, segment.Missions.First(), segment)
-				retarderData = New RetarderDataAdapter().CreateRetarderData(vehicle)
+				retarderData = New RetarderDataAdapter().CreateRetarderData(vehicle, PowertrainPosition.HybridPositionNotSet)
 				angledriveData = New AngledriveDataAdapter().CreateAngledriveData(vehicle)
 				ptoData = New PTODataAdapterLorry().CreatePTOTransmissionData(vehicle, vehicle.Components.GearboxInputData)
 			Else
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs
index 995657d34f499d09c251757d5aeae66d910c89e2..b1d3dc264cd8cf38d11acdc7aad9c290c903a575 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs
@@ -103,9 +103,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Gener
 				return GearboxDataAdapter.CreateGearshiftData(axleRatio, engineIdlingSpeed, gearboxType, gearsCount);
 			}
 
-			public RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet)
+			public RetarderData CreateRetarderData(IRetarderInputData retarderData, ArchitectureID archID)
 			{
-				return _retarderDataAdapter.CreateRetarderData(retarderData, position);
+				return _retarderDataAdapter.CreateRetarderData(retarderData, archID);
 			}
 
 			public virtual IList<Tuple<PowertrainPosition, ElectricMotorData>> CreateElectricMachines(IElectricMachinesDeclarationInputData electricMachines, IDictionary<PowertrainPosition, IList<Tuple<Volt, TableData>>> torqueLimits,
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs
index 050fb5131fe1b047906568ca3a0d109e22f8a2bf..e4e8201281fa09cd9b75f27985b14745fe50598f 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs
@@ -172,9 +172,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry
 				return GearboxDataAdapter.CreateGearshiftData(axleRatio, engineIdlingSpeed, gearboxType, gearsCount);
 			}
 
-			public RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position)
+			public RetarderData CreateRetarderData(IRetarderInputData retarderData, ArchitectureID archID)
 			{
-				return _retarderDataAdapter.CreateRetarderData(retarderData, position);
+				return _retarderDataAdapter.CreateRetarderData(retarderData, archID);
 			}
 
 			public virtual PTOData CreatePTOCycleData(IGearboxDeclarationInputData gbx, IPTOTransmissionInputData pto)
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs
index 708d2bea47cdcd628ee100b8ed066be136a4c7d0..cad675364b627272d250e7e989eea2aba07b744e 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs
@@ -26,7 +26,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 
 		ShiftStrategyParameters CreateGearshiftData(double axleRatio, PerSecond engineIdlingSpeed, GearboxType gearboxType, int gearsCount);
 
-		RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet);
+		RetarderData CreateRetarderData(IRetarderInputData retarderData, ArchitectureID archID);
 		
 		AxleGearData CreateAxleGearData(IAxleGearInputData axleGearInputData);
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs
index c5009da17ccad4ea863366b2766caf121f67a069..881efce570b3e54386fc3d9d4b7baa3fd879e4fd 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs
@@ -124,9 +124,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus
 			}
 
 
-			public virtual RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet)
+			public virtual RetarderData CreateRetarderData(IRetarderInputData retarderData, ArchitectureID archID)
 			{
-				return _retarderDataAdapter.CreateRetarderData(retarderData, position);
+				return _retarderDataAdapter.CreateRetarderData(retarderData, archID);
 			}
 
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/Interfaces/IRetarderDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/Interfaces/IRetarderDataAdapter.cs
index 752d41eebb4dc634a95f9288b148f560cd1350b1..7992176204012ef512ea2e5230182f4fcf77a66f 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/Interfaces/IRetarderDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/Interfaces/IRetarderDataAdapter.cs
@@ -5,6 +5,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 {
     public interface IRetarderDataAdapter
     {
-        RetarderData CreateRetarderData(IRetarderInputData retarder, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet);
+        RetarderData CreateRetarderData(IRetarderInputData retarder, ArchitectureID architecture);
     }
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/RetarderDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/RetarderDataAdapter.cs
index 32521cfccf78504722b23f908cde10d009933d46..8d5aeb42ee3767f4fe02ee54661322a8f52ce800 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/RetarderDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/RetarderDataAdapter.cs
@@ -12,47 +12,120 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 {
     public class RetarderDataAdapter : IRetarderDataAdapter
 	{
-		public RetarderData CreateRetarderData(IRetarderInputData retarder, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet)
+		public RetarderData CreateRetarderData(IRetarderInputData retarder, ArchitectureID architecture)
 		{
-			return SetCommonRetarderData(retarder, position);
+			return SetCommonRetarderData(retarder, architecture);
 		}
-		internal static RetarderData SetCommonRetarderData(IRetarderInputData retarderInputData,
-			PowertrainPosition position = PowertrainPosition.HybridPositionNotSet)
+
+
+		private bool TypeValid(RetarderType type, ArchitectureID archId, out string errorMsg)
 		{
-			try
-			{
-				var retarder = new RetarderData { Type = retarderInputData?.Type ?? RetarderType.None};
+			var valid = true;
+			errorMsg = "";
+			if (archId == ArchitectureID.UNKNOWN) {
+				//Conventional vehicle
+				return true;
+				
+			}
 
-				switch (retarder.Type)
-				{
-					case RetarderType.TransmissionInputRetarder:
-					case RetarderType.TransmissionOutputRetarder:
-						if (!(position.IsParallelHybrid() || position.IsOneOf(PowertrainPosition.HybridPositionNotSet, PowertrainPosition.BatteryElectricE2)))
-						{
-							throw new ArgumentException("Transmission retarder is only allowed in powertrains that " +
-														"contain a gearbox: Conventional, HEV-P, and PEV-E2.", nameof(retarder));
-						}
-
-						retarder.LossMap = RetarderLossMapReader.Create(retarderInputData.LossMap);
-						retarder.Ratio = retarderInputData.Ratio;
-						break;
-
-					case RetarderType.AxlegearInputRetarder:
-						if (!position.IsOneOf(PowertrainPosition.BatteryElectricE3, PowertrainPosition.IEPC) )
-							throw new ArgumentException("AxlegearInputRetarder is only allowed for PEV-E3, HEV-S3, S-IEPC, E-IEPC. ", nameof(retarder));
-						retarder.LossMap = RetarderLossMapReader.Create(retarderInputData.LossMap);
-						retarder.Ratio = retarderInputData.Ratio;
-						break;
-
-					case RetarderType.None:
-					case RetarderType.LossesIncludedInTransmission:
-					case RetarderType.EngineRetarder:
-						retarder.Ratio = 1;
-						break;
-
-					default:
-						throw new ArgumentOutOfRangeException(nameof(retarder), retarder.Type, "RetarderType unknown");
-				}
+			switch (type) {
+				case RetarderType.None:
+					valid = true;
+					break;
+				case RetarderType.TransmissionInputRetarder:
+				case RetarderType.TransmissionOutputRetarder:
+					valid = archId.IsParallelHybridVehicle() || archId.IsOneOf(ArchitectureID.P_IHPC, ArchitectureID.S2, ArchitectureID.E2);
+
+
+					break;
+				case RetarderType.EngineRetarder:
+					valid = archId.IsParallelHybridVehicle() || archId.IsOneOf(ArchitectureID.P_IHPC);
+					break;
+				case RetarderType.LossesIncludedInTransmission:
+					valid = archId.IsParallelHybridVehicle() || archId.IsOneOf(ArchitectureID.P_IHPC, ArchitectureID.S2, ArchitectureID.S_IEPC, ArchitectureID.E2);
+                    break;
+				case RetarderType.AxlegearInputRetarder:
+					valid = archId.IsOneOf(ArchitectureID.E3, ArchitectureID.S3, ArchitectureID.S_IEPC);
+					break;
+				default:
+					throw new ArgumentOutOfRangeException(nameof(type), type, null);
+			}
+
+
+			if (!valid) {
+				errorMsg = $"Invalid retardertype for architecture [{type} - {archId}";
+			}
+
+
+
+
+
+			return valid;
+		}
+
+		private void SetRatioAndLossMap(IRetarderInputData inputData, RetarderData retarderData)
+		{
+			switch (inputData.Type) {
+				case RetarderType.TransmissionInputRetarder:
+				case RetarderType.TransmissionOutputRetarder:
+				case RetarderType.AxlegearInputRetarder:
+					retarderData.LossMap = RetarderLossMapReader.Create(inputData.LossMap);
+					retarderData.Ratio = inputData.Ratio;
+					break;
+                case RetarderType.LossesIncludedInTransmission:
+				case RetarderType.EngineRetarder:
+				case RetarderType.None:
+					retarderData.Ratio = 1.0;
+					break;
+				default:
+					throw new ArgumentOutOfRangeException();
+			}
+		}
+
+		internal RetarderData SetCommonRetarderData(IRetarderInputData retarderInputData,
+			ArchitectureID architecture)
+		{
+			if (!TypeValid(retarderInputData.Type, architecture, out var errorMsg)) {
+				throw new VectoException("Error while Reading Retarder Data: {0}", errorMsg);
+            }
+			var retarder = new RetarderData { Type = retarderInputData?.Type ?? RetarderType.None };
+			SetRatioAndLossMap(retarderInputData, retarder);
+			//try
+			//{
+				
+			//	position
+			
+
+			//	switch (retarder.Type)
+			//	{
+			//		case RetarderType.TransmissionInputRetarder:
+			//		case RetarderType.TransmissionOutputRetarder:
+			//			if (!(position.IsParallelHybrid() || position.IsOneOf(PowertrainPosition.HybridPositionNotSet, PowertrainPosition.BatteryElectricE2)))
+			//			{
+							
+
+			//			}
+
+			//			retarder.LossMap = RetarderLossMapReader.Create(retarderInputData.LossMap);
+			//			retarder.Ratio = retarderInputData.Ratio;
+			//			break;
+
+			//		case RetarderType.AxlegearInputRetarder:
+			//			if (!position.IsOneOf(PowertrainPosition.BatteryElectricE3, PowertrainPosition.IEPC) )
+			//				throw new ArgumentException("AxlegearInputRetarder is only allowed for PEV-E3, HEV-S3, S-IEPC, E-IEPC. ", nameof(retarder));
+			//			retarder.LossMap = RetarderLossMapReader.Create(retarderInputData.LossMap);
+			//			retarder.Ratio = retarderInputData.Ratio;
+			//			break;
+
+			//		case RetarderType.None:
+			//		case RetarderType.LossesIncludedInTransmission:
+			//		case RetarderType.EngineRetarder:
+			//			retarder.Ratio = 1;
+			//			break;
+
+			//		default:
+			//			throw new ArgumentOutOfRangeException(nameof(retarder), retarder.Type, "RetarderType unknown");
+			//	}
 
 				if (retarder.Type.IsDedicatedComponent())
 				{
@@ -67,17 +140,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 
 				return retarder;
 			}
-			catch (Exception e)
-			{
-				throw new VectoException("Error while Reading Retarder Data: {0}", e.Message);
-			}
-		}
+		
 	}
 
 	public class GenericRetarderDataAdapter : IRetarderDataAdapter
 	{
 		private readonly GenericBusRetarderData _genericRetarderData = new GenericBusRetarderData();
-		public  RetarderData CreateRetarderData(IRetarderInputData retarder, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet)
+		public RetarderData CreateRetarderData(IRetarderInputData retarder, ArchitectureID architecture)
 		{
 			return _genericRetarderData.CreateGenericBusRetarderData(retarder);
 		}
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs
index 80e86ff70b9ba9e2ab56ea526d5ed2accb429cb9..8321b1a078a80109dedfd2482039d929bb205ad1 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SingleBus/DeclarationDataAdapterSingleBus.cs
@@ -118,9 +118,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SingleBus
 					SupportedGearboxTypes);
 			}
 
-			public virtual RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet)
+			public virtual RetarderData CreateRetarderData(IRetarderInputData retarderData, ArchitectureID archID)
 			{
-				return _retarderDataAdapter.CreateRetarderData(retarderData, position);
+				return _retarderDataAdapter.CreateRetarderData(retarderData, archID);
 			}
 
 			public virtual PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData)
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs
index 91c90bde955d236339a504a737c96732495343dd..1a348ac91e8195a7496ba415ecfe84b6880c20d4 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/CompletedBusRunDataFactory/DeclarationModeCompletedBusRunDataFactory.cs
@@ -259,7 +259,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
                     primarySegment.VehicleClass, mission.BusParameter.VehicleLength,
                     PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
                 simulationRunData.Retarder =
-                    DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+                    DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 
                 simulationRunData.EngineData.FuelMode = 0;
                 simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
@@ -298,7 +298,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
 					PrimaryVehicle.Components.AuxiliaryInputData,
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
 					CompletedVehicle.Length, PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
-				simulationRunData.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				simulationRunData.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				simulationRunData.EngineData.FuelMode = 0;
 				simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
 				simulationRunData.BusAuxiliaries =
@@ -470,7 +470,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
                     primarySegment.VehicleClass, mission.BusParameter.VehicleLength,
                     PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
                 rd.Retarder =
-                    DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+                    DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				rd.EngineData.FuelMode = 0;
                 rd.VehicleData.VehicleClass = _segment.VehicleClass;
                 rd.BusAuxiliaries =
@@ -536,7 +536,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
 					PrimaryVehicle.Components.AuxiliaryInputData,
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
 					CompletedVehicle.Length, PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
-				rd.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				rd.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				rd.EngineData.FuelMode = 0;
 				rd.VehicleData.VehicleClass = _segment.VehicleClass;
 				rd.BusAuxiliaries =
@@ -687,7 +687,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
                     primarySegment.VehicleClass, mission.BusParameter.VehicleLength,
                     PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
                 rd.Retarder =
-                    DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+                    DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 
                 rd.EngineData.FuelMode = 0;
                 rd.VehicleData.VehicleClass = _segment.VehicleClass;
@@ -752,7 +752,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
 					PrimaryVehicle.Components.AuxiliaryInputData,
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
 					CompletedVehicle.Length, PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
-				rd.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				rd.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				rd.EngineData.FuelMode = 0;
 				rd.VehicleData.VehicleClass = _segment.VehicleClass;
 				rd.BusAuxiliaries =
@@ -890,7 +890,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
                     PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
                     CompletedVehicle.Length, PrimaryVehicle.Components.AxleWheels.NumSteeredAxles,
                     PrimaryVehicle.VehicleType);
-                result.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+                result.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
                 result.MaxChargingPower = PrimaryVehicle.MaxChargingPower;
 
                 //result.EngineData.FuelMode = 0;
@@ -938,7 +938,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
 					CompletedVehicle.Length, PrimaryVehicle.Components.AxleWheels.NumSteeredAxles,
 					PrimaryVehicle.VehicleType);
-				result.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				result.Retarder = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				result.MaxChargingPower = PrimaryVehicle.MaxChargingPower;
                    
 				//result.EngineData.FuelMode = 0;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs
index 91db54397b4ec100a0bf0a4c19149e9f14c43e8d..2fece9f79c53d2570011b30475d9a138f68a553b 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs
@@ -269,7 +269,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa
 					_segment.VehicleClass, Vehicle.Length,
 					Vehicle.Components.AxleWheels.NumSteeredAxles, Vehicle.VehicleType);
 
-				simulationRunData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData);
+				simulationRunData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 				simulationRunData.DriverData = DriverData;
 				simulationRunData.PTO = mission.MissionType == MissionType.MunicipalUtility
 					? DataAdapter.CreatePTOCycleData(Vehicle.Components.GearboxInputData, Vehicle.Components.PTOTransmissionInputData)
@@ -394,7 +394,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa
 
 				if (Vehicle.Components.RetarderInputData != null) {
 					result.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData,
-						result.ElectricMachinesData.First(e => e.Item1 != PowertrainPosition.GEN).Item1);
+						Vehicle.ArchitectureID);
 				}
 
 				CreateGearboxAndGearshiftData(result);
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs
index 26b1f6d8a8bf9537e2e825b5e837edcd956549da..a9b9070b168a59e0cfb491466807d8d1324a758b 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory_Hybrid.cs
@@ -134,7 +134,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa
 					runData.AxleGearData = DataAdapter.CreateAxleGearData(Vehicle.Components.AxleGearInputData);
 				}
 				
-				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData);
+				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 
 				runData.Aux = DataAdapter.CreateAuxiliaryData(Vehicle.Components.AuxiliaryInputData, null, mission.MissionType,
 					_segment.VehicleClass, Vehicle.Length, Vehicle.Components.AxleWheels.NumSteeredAxles,
@@ -222,7 +222,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa
 					runData.AxleGearData = DataAdapter.CreateAxleGearData(Vehicle.Components.AxleGearInputData);
 				}
 
-				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData);
+				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 				runData.Aux = DataAdapter.CreateAuxiliaryData(Vehicle.Components.AuxiliaryInputData, null, mission.MissionType,
 					_segment.VehicleClass, Vehicle.Length, Vehicle.Components.AxleWheels.NumSteeredAxles,
 					VectoSimulationJobType.ParallelHybridVehicle);
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs
index c57b849d2ed35b391d67fcc7d2e79ce13f85c370..9e8c75f8eb0df9e38df8f526244f14fc08ed6ea6 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs
@@ -178,7 +178,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
 					Vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
 					Vehicle.Length ?? mission.BusParameter.VehicleLength,
 					Vehicle.Components.AxleWheels.NumSteeredAxles, Vehicle.VehicleType);
-				simulationRunData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData);
+				simulationRunData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 				simulationRunData.DriverData = DriverData;
 				
 
@@ -289,7 +289,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
 					runData.AxleGearData = DataAdapter.CreateAxleGearData(Vehicle.Components.AxleGearInputData);
 				}
 
-				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData);
+				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 
 				runData.Aux = DataAdapter.CreateAuxiliaryData(Vehicle.Components.AuxiliaryInputData, 
 					Vehicle.Components.BusAuxiliaries, mission.MissionType,
@@ -475,7 +475,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
 					Vehicle.Length ?? mission.BusParameter.VehicleLength,
 					Vehicle.Components.AxleWheels.NumSteeredAxles,
 					VectoSimulationJobType.ParallelHybridVehicle);//Hardcode to override IHPC
-				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData);
+				runData.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 				runData.DriverData = DriverData;
 
 
@@ -642,7 +642,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
 					Vehicle.Length ?? mission.BusParameter.VehicleLength,
 					Vehicle.Components.AxleWheels.NumSteeredAxles, Vehicle.VehicleType);
 				var emPos = result.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1;
-				result.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, emPos);
+				result.Retarder = DataAdapter.CreateRetarderData(Vehicle.Components.RetarderInputData, Vehicle.ArchitectureID);
 				result.DriverData = DriverData;
 
 				result.VehicleData.VehicleClass = _segment.VehicleClass;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs
index e00a87601051c0ae69a03f5e834838d5969695eb..47f6b3f70c5edf22159a7b12b86446df79ba8d29 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/SingleBus/DeclarationModeSingleBusVectoRunDataFactory.cs
@@ -167,7 +167,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType,
 					_segment.VehicleClass, PrimaryVehicle.Length ?? mission.BusParameter.VehicleLength,
 					PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
-				runData.Retarder = DataAdapter.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				runData.Retarder = DataAdapter.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				
 				runData.EngineData.FuelMode = modeIdx.Value;
 				runData.VehicleData.VehicleClass = _segment.VehicleClass;
@@ -307,7 +307,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus
                     runData.AxleGearData = DataAdapter.CreateAxleGearData(PrimaryVehicle.Components.AxleGearInputData);
                 }
 
-                runData.Retarder = DataAdapter.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+                runData.Retarder = DataAdapter.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 
                 runData.Aux = DataAdapter.CreateAuxiliaryData(PrimaryVehicle.Components.AuxiliaryInputData,
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType,
@@ -504,7 +504,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus
 					PrimaryVehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
 					PrimaryVehicle.Length ?? mission.BusParameter.VehicleLength,
 					PrimaryVehicle.Components.AxleWheels.NumSteeredAxles, PrimaryVehicle.VehicleType);
-				runData.Retarder = DataAdapter.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				runData.Retarder = DataAdapter.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
 				runData.DriverData = DriverData;
 
 
@@ -674,7 +674,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.SingleBus
                     vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass,
                     vehicle.Length ?? mission.BusParameter.VehicleLength,
                     vehicle.Components.AxleWheels.NumSteeredAxles, vehicle.VehicleType);
-                result.Retarder = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData);
+                result.Retarder = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData, PrimaryVehicle.ArchitectureID);
                 result.DriverData = DriverData;
 
                 result.VehicleData.VehicleClass = _segment.VehicleClass;
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs
index 9462bba0acd889d281f037f5be8634fd990f5ebe..8868836b34bb19e2b76c83d7a0736f33e29dccff 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs
@@ -70,7 +70,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
             GearboxData = DataAdapter.CreateGearboxData(
                 vehicle, new VectoRunData() { EngineData = EngineData, AxleGearData = AxlegearData, VehicleData = tempVehicle },
                 null);
-            RetarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData);
+            RetarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData, vehicle.ArchitectureID);
 
             //PTOTransmissionData =
             //    DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs
index e78425531873458f19eb82c2e2a55b6abb29fb0b..3a063422cfa13710ae13afadc9e549454230fbec 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryLorries.cs
@@ -105,7 +105,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
             GearboxData = DataAdapter.CreateGearboxData(
                 vehicle, new VectoRunData() { EngineData = EngineData, AxleGearData = AxlegearData, VehicleData = tempVehicle },
                 null);
-            RetarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData);
+            RetarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData, vehicle.ArchitectureID);
 
             PTOTransmissionData =
 				DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData, vehicle.Components.GearboxInputData);
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/RetarderDataAdapterTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/RetarderDataAdapterTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..bed3af2eee73bd010fb28f81c186a8450af6e7dd
--- /dev/null
+++ b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/RetarderDataAdapterTest.cs
@@ -0,0 +1,230 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Moq;
+using NUnit.Framework;
+using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponents;
+using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+
+namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter
+{
+    [TestFixture]
+    internal class RetarderDataAdapterTest
+	{
+		private RetarderDataAdapter _retarderDataAdapter;
+
+		
+
+
+		[SetUp]
+		public void Setup()
+		{
+			_retarderDataAdapter = new RetarderDataAdapter();
+
+		}
+
+
+		[Test]
+		[Combinatorial]
+		public void TestTypeApplicableToArchP_HEV([Values]RetarderType retarderType, [Values(ArchitectureID.P1, ArchitectureID.P2, ArchitectureID.P2_5, ArchitectureID.P3, ArchitectureID.P4, ArchitectureID.P_IHPC)]ArchitectureID archID)
+		{
+			var retarderMoq = RetarderMoq(retarderType);
+
+			var shouldWork = P_HEVRetarderShouldWork(retarderType, archID);
+
+			CreateRetarderData(archID, shouldWork, retarderMoq);
+		}
+
+		[Test]
+		[Combinatorial]
+		public void TestTypeApplicableToArchS_HEV([Values] RetarderType retarderType,
+			[Values(ArchitectureID.S_IEPC, ArchitectureID.S2, ArchitectureID.S3, ArchitectureID.S4)]
+			ArchitectureID archID)
+		{
+			var retarderMoq = RetarderMoq(retarderType);
+
+			var shouldWork = S_HEVRetarderShouldWork(retarderType, archID);
+
+			CreateRetarderData(archID, shouldWork, retarderMoq);
+        }
+
+		[Test]
+		[Combinatorial]
+		public void TestTypeApplicableToArchPEV([Values] RetarderType retarderType,
+			[Values(ArchitectureID.E2, ArchitectureID.E3, ArchitectureID.E4)]
+			ArchitectureID archID)
+		{
+			var retarderMoq = RetarderMoq(retarderType);
+
+			var shouldWork = PEVRetarderShouldWork(retarderType, archID);
+
+			CreateRetarderData(archID, shouldWork, retarderMoq);
+		}
+
+
+		[Test]
+		[Combinatorial]
+		public void TestTypeApplicableToArch_IEPC_E([Values] RetarderType retarderType,
+			[Values]bool differentialIncluded, [Values]bool designTypeWheelMotor)
+		{
+			var retarderMoq = RetarderMoq(retarderType);
+			var iepcMoq = IEPCMoq(differentialIncluded, designTypeWheelMotor);
+
+			var shouldWork = IEPCShouldWork(retarderType, differentialIncluded, designTypeWheelMotor);
+
+			CreateRetarderData(ArchitectureID.E_IEPC, shouldWork, retarderMoq);
+
+
+
+		}
+
+
+
+		private void CreateRetarderData(ArchitectureID archID, bool shouldWork, Mock<IRetarderInputData> retarderMoq)
+		{
+			if (shouldWork) {
+				TestContext.Progress.WriteLine("Should work");
+                var data = _retarderDataAdapter.CreateRetarderData(retarderMoq.Object, archID);
+				
+				Assert.NotNull(data, "Should work");
+			} else {
+				Assert.Throws<VectoException>((() => { _retarderDataAdapter.CreateRetarderData(retarderMoq.Object, archID); }), "Should not work - but does!");
+				TestContext.Progress.WriteLine("Doesnt work");
+            }
+		}
+
+
+        private bool PEVRetarderShouldWork(RetarderType retarderType, ArchitectureID archId)
+		{
+			if (retarderType == RetarderType.None)
+			{
+				return true;
+			}
+			var s_hev_supported_types = new Dictionary<ArchitectureID, HashSet<RetarderType>>() {
+				{ ArchitectureID.E2,
+					new HashSet<RetarderType>() {
+						RetarderType.LossesIncludedInTransmission,
+						RetarderType.TransmissionInputRetarder,
+						RetarderType.TransmissionOutputRetarder,
+					}},
+
+				{ ArchitectureID.E3, new HashSet<RetarderType>() {
+					RetarderType.AxlegearInputRetarder,
+				}},
+
+				{ArchitectureID.E4, new HashSet<RetarderType>()},
+			};
+			return s_hev_supported_types.ContainsKey(archId) && s_hev_supported_types[archId].Contains(retarderType);
+		}
+
+        private bool S_HEVRetarderShouldWork(RetarderType retarderType, ArchitectureID archId)
+		{
+			if (retarderType == RetarderType.None) {
+				return true;
+			}
+			var s_hev_supported_types = new Dictionary<ArchitectureID, HashSet<RetarderType>>() {
+				{ ArchitectureID.S2, 
+					new HashSet<RetarderType>() {
+						RetarderType.LossesIncludedInTransmission,
+						RetarderType.TransmissionInputRetarder,
+						RetarderType.TransmissionOutputRetarder,
+				}},
+
+				{ ArchitectureID.S3, new HashSet<RetarderType>() {
+					RetarderType.AxlegearInputRetarder,
+				}},
+
+				{ArchitectureID.S4, new HashSet<RetarderType>()},
+
+				{ ArchitectureID.S_IEPC , new HashSet<RetarderType>() {
+					RetarderType.AxlegearInputRetarder, 
+					RetarderType.LossesIncludedInTransmission
+				}}
+			};
+			return s_hev_supported_types.ContainsKey(archId) && s_hev_supported_types[archId].Contains(retarderType);
+		}
+
+		public bool P_HEVRetarderShouldWork(RetarderType type, ArchitectureID arch)
+		{
+			if (type == RetarderType.TransmissionInputRetarder && arch == ArchitectureID.P_IHPC) {
+				return false;
+			}
+
+
+			if (type != RetarderType.AxlegearInputRetarder) {
+				return true;
+
+			}
+
+			return false;
+		}
+
+		//bool DifferentialIncluded { get; }
+
+		//bool DesignTypeWheelMotor { get; }
+
+		//int? NrOfDesignTypeWheelMotorMeasured { get; }
+        public bool IEPCShouldWork(RetarderType retarderType, bool differentialIncluded, bool DesignTypeWheelMotor)
+		{
+			
+			if (DesignTypeWheelMotor) {
+				//This property "wins"!
+				return false;
+			}
+
+			if (retarderType == RetarderType.LossesIncludedInTransmission) {
+				return true;
+			}
+
+
+			if (retarderType == RetarderType.AxlegearInputRetarder && !differentialIncluded) {
+				return true;
+			}
+
+
+
+			return false;
+		}
+
+
+		private Mock<IRetarderInputData> RetarderMoq(RetarderType retarderType)
+		{
+			var retarderMoq = new Mock<IRetarderInputData>();
+			retarderMoq.Setup(m => m.Type).Returns(retarderType);
+			retarderMoq.Setup(m => m.LossMap).Returns(MockLossMap());
+			return retarderMoq;
+		}
+
+		TableData MockLossMap()
+		{
+			var tableData = new TableData("Mock")
+			{
+				Columns = { "c_1", "c_2" }
+			};
+			for (int i = 0; i < 2; i++)
+			{
+				var row = tableData.NewRow();
+				row[0] = 3.0;
+				row[1] = 42.0;
+				tableData.Rows.Add(row);
+			}
+			return tableData;
+		}
+
+
+		private Mock<IIEPCDeclarationInputData> IEPCMoq(bool differentialIncluded, bool designTypeWheelMotor)
+		{
+			var iepcMoq = new Mock<IIEPCDeclarationInputData>();
+			iepcMoq.SetupGet(m => m.DesignTypeWheelMotor).Returns(designTypeWheelMotor);
+			iepcMoq.SetupGet(m => m.DifferentialIncluded).Returns(differentialIncluded);
+			return iepcMoq;
+		}
+
+    }
+}