diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
index aba56e78d453bddfdb216ce422b1674bdb3bc7a1..abd8712fffc0cadcfa494651820d8c045cd30b6a 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
@@ -172,13 +172,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			};
 		}
 
-		protected static TransmissionLossMap CreateGearLossMap(ITransmissionInputData gear, uint i, bool useEfficiencyFallback, VehicleCategory vehicleCategory )
+		protected virtual TransmissionLossMap CreateGearLossMap(ITransmissionInputData gear, uint i, bool useEfficiencyFallback, VehicleCategory vehicleCategory )
 		{
-			if (vehicleCategory == VehicleCategory.GenericBusVehicle) {
-				return gear.Ratio.IsEqual(1)
-					? TransmissionLossMapReader.Create(DeclarationData.FactorMethodBus.GearEfficiencyDirectGear, gear.Ratio, $"Gear {i + 1}")
-					: TransmissionLossMapReader.Create(DeclarationData.FactorMethodBus.GearEfficiencyIndirectGear, gear.Ratio, $"Gear {i + 1}");
-			}
 			if (gear.LossMap != null) {
 				return TransmissionLossMapReader.Create(gear.LossMap, gear.Ratio, string.Format("Gear {0}", i + 1), true);
 			}
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs
index 16a2876917b2547d2effb3464aadba90bb0ce982..ac420f117b5e9bf0b17ed047f59c5eebbcc666d5 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs
@@ -17,17 +17,70 @@ using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
 using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 {
 	public class DeclarationDataAdapterCompletedBusGeneric : DeclarationDataAdapterPrimaryBus
 	{
-		internal CombustionEngineData CreateEngineData(IVehicleDeclarationInputData primaryVehicle)
+		private readonly GenericTransmissionComponentData _genericPowertrainData = new GenericTransmissionComponentData();
+		private readonly GenericBusRetarderData _genericRetarderData = new GenericBusRetarderData();
+		private readonly GenericTorqueConverterData _genericTorqueConverterData = new GenericTorqueConverterData();
+
+		public const double GearEfficiencyDirectGear = 0.98;
+		public const double GearEfficiencyIndirectGear = 0.96;
+
+
+		
+
+		// The model parameters for the completed bus with generic power train and generic body is basically the same as the primary bus
+		// only powertrain components are different
+
+		
+		public CombustionEngineData CreateEngineData(IVehicleDeclarationInputData primaryVehicle)
 		{
 			return GenericBusEngineData.Instance.CreateGenericBusEngineData(primaryVehicle);
 		}
 
+		#region Overrides of DeclarationDataAdapterHeavyLorry
+
+		public override AxleGearData CreateAxleGearData(IAxleGearInputData axlegearData)
+		{
+			return _genericPowertrainData.CreateGenericBusAxlegearData(axlegearData);
+		}
+
+		public override AngledriveData CreateAngledriveData(IAngledriveInputData data)
+		{
+			return _genericPowertrainData.CreateGenericBusAngledriveData(data);
+		}
+
+
+		public override RetarderData CreateRetarderData(IRetarderInputData retarder)
+		{
+			return _genericRetarderData.CreateGenericBusRetarderData(retarder);
+		}
+
+		#endregion
+
+		#region Overrides of AbstractSimulationDataAdapter
+
+		protected override TransmissionLossMap CreateGearLossMap(
+			ITransmissionInputData gear, uint i, bool useEfficiencyFallback, VehicleCategory vehicleCategory)
+		{
+			return TransmissionLossMapReader.Create(
+				gear.Ratio.IsEqual(1) ? GearEfficiencyDirectGear :GearEfficiencyIndirectGear, gear.Ratio, $"Gear {i + 1}");
+		}
+
+		#endregion
+
+		#region Overrides of DeclarationDataAdapterHeavyLorry
+
+		protected override TorqueConverterData CreateTorqueConverterData(ITorqueConverterDeclarationInputData torqueConverter, double ratio, CombustionEngineData engineData)
+		{
+			return _genericTorqueConverterData.CreateTorqueConverterData(ratio, engineData);
+		}
 
+		#endregion
 	}
 }
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
index 43bae875cf7f1f641cc5534f1548ff40df536072..8cb3dc6d19da6f572ba5ca6173d97e8e8afffd15 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
@@ -21,8 +21,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 	public class DeclarationDataAdapterCompletedBusSpecific : DeclarationDataAdapterCompletedBusGeneric
 	{
 
-		
-		
 		public VehicleData CreateVehicleData(IVehicleDeclarationInputData primaryVehicle,
 			IVehicleDeclarationInputData completedVehicle, Mission mission, 
 			KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs
index e6cec6044e943a49b021f362b7982aa08ed98fed..5dc4f6627cd0c89a293b051d6f968082114904c0 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs
@@ -319,7 +319,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			return DoCreateGearboxData(inputData, runData, shiftPolygonCalc);
 		}
 
-		public static GearboxData DoCreateGearboxData(IVehicleDeclarationInputData inputData, VectoRunData runData,
+		public virtual GearboxData DoCreateGearboxData(IVehicleDeclarationInputData inputData, VectoRunData runData,
 			IShiftPolygonCalculator shiftPolygonCalc)
 		{ 
 			var gearbox = inputData.Components.GearboxInputData;
@@ -405,24 +405,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				var ratio = double.IsNaN(retVal.Gears[1].Ratio) ? 1 : retVal.Gears[1].TorqueConverterRatio / retVal.Gears[1].Ratio;
 				retVal.PowershiftShiftTime = DeclarationData.Gearbox.PowershiftShiftTime;
 
-				if (vehicleCategory == VehicleCategory.GenericBusVehicle) {
-					var fileStream = RessourceHelper.ReadStream(DeclarationData.FactorMethodBus.GenericTorqueConvert);
-					retVal.TorqueConverterData = TorqueConverterDataReader.ReadFromStream(fileStream,
-						DeclarationData.TorqueConverter.ReferenceRPM,
-						DeclarationData.TorqueConverter.MaxInputSpeed,
-						ExecutionMode.Declaration,
-						ratio,
-						DeclarationData.TorqueConverter.CLUpshiftMinAcceleration,
-						DeclarationData.TorqueConverter.CCUpshiftMinAcceleration);
-				} else {
-					retVal.TorqueConverterData = TorqueConverterDataReader.Create(
-						torqueConverter.TCData,
-						DeclarationData.TorqueConverter.ReferenceRPM, DeclarationData.TorqueConverter.MaxInputSpeed,
-						ExecutionMode.Declaration, ratio,
-						DeclarationData.TorqueConverter.CLUpshiftMinAcceleration,
-						DeclarationData.TorqueConverter.CCUpshiftMinAcceleration);
-				}
-
+				retVal.TorqueConverterData = CreateTorqueConverterData(torqueConverter, ratio, engine);
+				
 				if (torqueConverter != null) {
 					retVal.TorqueConverterData.ModelName = torqueConverter.Model;
 					retVal.TorqueConverterData.DigestValueInput = torqueConverter.DigestValue?.DigestValue;
@@ -434,7 +418,17 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			return retVal;
 		}
 
-		private static void CreateATGearData(
+		protected virtual TorqueConverterData CreateTorqueConverterData(ITorqueConverterDeclarationInputData torqueConverter, double ratio, CombustionEngineData componentsEngineInputData)
+		{
+			return TorqueConverterDataReader.Create(
+				torqueConverter.TCData,
+				DeclarationData.TorqueConverter.ReferenceRPM, DeclarationData.TorqueConverter.MaxInputSpeed,
+				ExecutionMode.Declaration, ratio,
+				DeclarationData.TorqueConverter.CLUpshiftMinAcceleration,
+				DeclarationData.TorqueConverter.CCUpshiftMinAcceleration);
+		}
+
+		protected virtual void CreateATGearData(
 			IGearboxDeclarationInputData gearbox, uint i, GearData gearData,
 			ShiftPolygon tcShiftPolygon, double gearDifferenceRatio, Dictionary<uint, GearData> gears,
 			VehicleCategory vehicleCategory)
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
index 478ac7486ecd6b1715e083a6e67a60544bc2a8da..04a1e5f61a70ade41adb3725fafcc7240479be8a 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeCompletedBusVectoRunDataFactory.cs
@@ -115,10 +115,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 
 			_combustionEngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle);
 
-			_axlegearData = GenericTransmissionComponentData.Instance.CreateGenericBusAxlegearData(PrimaryVehicle.Components.AxleGearInputData);
-
-			_angledriveData = GenericTransmissionComponentData.Instance.CreateGenericBusAngledriveData(PrimaryVehicle.Components.AngledriveInputData);
+			_axlegearData = DataAdapterGeneric.CreateAxleGearData(PrimaryVehicle.Components.AxleGearInputData);
 
+			_angledriveData = DataAdapterGeneric.CreateAngledriveData(PrimaryVehicle.Components.AngledriveInputData);
+			
 			var tmpRunData = new VectoRunData() {
 				ShiftStrategy = InputDataProvider.JobInputData.ShiftStrategy,
 				GearboxData = new GearboxData() {
@@ -127,14 +127,14 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 			};
 			var tmpStrategy = PowertrainBuilder.GetShiftStrategy(tmpRunData, new SimplePowertrainContainer(tmpRunData));
 			
-			_gearboxData = GenericTransmissionComponentData.Instance.CreateGearboxData(PrimaryVehicle,
-				new VectoRunData() { EngineData = _combustionEngineData, AxleGearData = _axlegearData, VehicleData = tmpVehicleData },
+			_gearboxData = DataAdapterGeneric.CreateGearboxData(PrimaryVehicle, new VectoRunData() { EngineData = _combustionEngineData, AxleGearData = _axlegearData, VehicleData = tmpVehicleData },
 				tmpStrategy);
 
 			_gearshiftData = DataAdapterGeneric.CreateGearshiftData(
 				_gearboxData, _axlegearData.AxleGear.Ratio * (_angledriveData?.Angledrive.Ratio ?? 1.0), _combustionEngineData.IdleSpeed);
 
-			_retarderData = GenericBusRetarderData.Instance.CreateGenericBusRetarderData(PrimaryVehicle.Components.RetarderInputData);
+			_retarderData = DataAdapterGeneric.CreateRetarderData(PrimaryVehicle.Components.RetarderInputData);
+				
 
 			_driverData = DataAdapterGeneric.CreateDriverData();
 			_driverData.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segmentCompletedBus.AccelerationFile);
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 86012bd9911bf4cead100c3ca7f3dab26b8c0496..8e07346e6f07be4e22fca24322105bf6ecd71e97 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -137,26 +137,8 @@ namespace TUGraz.VectoCore.Models.Declaration
 						grossVehicleWeight - curbWeight).Value() / 100, 0) * 100).SI<Kilogram>();
 		}
 
-		public static int PoweredAxle()
-		{
-			return 1;
-		}
-
-		public static class FactorMethodBus
-		{
-			public static string GenericTorqueConvert =
-				$"{DeclarationDataResourcePrefix}.GenericBusData.GenericTorqueConverter.csv";
-
-			public const double GearEfficiencyDirectGear = 0.98;
-
-			public const double GearEfficiencyIndirectGear = 0.96;
-
-
-		}
-
-
-
-
+		
+		
 
 		public static class BusAuxiliaries
 		{
diff --git a/VectoCore/VectoCore/Models/Declaration/GenericBusDriverData.cs b/VectoCore/VectoCore/Models/Declaration/GenericBusDriverData.cs
deleted file mode 100644
index 000a1939cb32130f266d82a8e3c17932cfa545e9..0000000000000000000000000000000000000000
--- a/VectoCore/VectoCore/Models/Declaration/GenericBusDriverData.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using System;
-using TUGraz.VectoCore.InputData.Reader.ComponentData;
-using TUGraz.VectoCore.Models.SimulationComponent.Data;
-
-namespace TUGraz.VectoCore.Models.Declaration
-{
-	public class GenericBusDriverData
-	{
-		public DriverData CreateGenericBusDriverData(Segment completedSegment)
-		{
-			var lookAheadData = new DriverData.LACData
-			{
-				Enabled = DeclarationData.Driver.LookAhead.Enabled,
-				//Deceleration = DeclarationData.Driver.LookAhead.Deceleration,
-				MinSpeed = DeclarationData.Driver.LookAhead.MinimumSpeed,
-				LookAheadDecisionFactor = new LACDecisionFactor(),
-				LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor
-			};
-
-			var overspeedData = new DriverData.OverSpeedData
-			{
-				Enabled = true,
-				MinSpeed = DeclarationData.Driver.OverSpeed.MinSpeed,
-				OverSpeed = DeclarationData.Driver.OverSpeed.AllowedOverSpeed,
-			};
-
-			var driver = new DriverData
-			{
-				AccelerationCurve = AccelerationCurveReader.ReadFromStream(completedSegment.AccelerationFile),
-				LookAheadCoasting = lookAheadData,
-				OverSpeed = overspeedData,
-				EngineStopStart = new DriverData.EngineStopStartData
-				{
-					EngineOffStandStillActivationDelay = DeclarationData.Driver.EngineStopStart.ActivationDelay,
-					MaxEngineOffTimespan = DeclarationData.Driver.EngineStopStart.MaxEngineOffTimespan,
-					UtilityFactor = DeclarationData.Driver.EngineStopStart.UtilityFactor
-				},
-				EcoRoll = new DriverData.EcoRollData
-				{
-					UnderspeedThreshold = DeclarationData.Driver.EcoRoll.UnderspeedThreshold,
-					MinSpeed = DeclarationData.Driver.EcoRoll.MinSpeed,
-					ActivationPhaseDuration = DeclarationData.Driver.EcoRoll.ActivationDelay,
-					AccelerationLowerLimit = DeclarationData.Driver.EcoRoll.AccelerationLowerLimit,
-					AccelerationUpperLimit = DeclarationData.Driver.EcoRoll.AccelerationUpperLimit
-				},
-				PCC = new DriverData.PCCData
-				{
-					PCCEnableSpeed = DeclarationData.Driver.PCC.PCCEnableSpeed,
-					MinSpeed = DeclarationData.Driver.PCC.MinSpeed,
-					PreviewDistanceUseCase1 = DeclarationData.Driver.PCC.PreviewDistanceUseCase1,
-					PreviewDistanceUseCase2 = DeclarationData.Driver.PCC.PreviewDistanceUseCase2,
-					UnderSpeed = DeclarationData.Driver.PCC.Underspeed,
-					OverspeedUseCase3 = DeclarationData.Driver.PCC.OverspeedUseCase3
-				}
-			};
-
-			return driver;
-		}
-	}
-}
diff --git a/VectoCore/VectoCore/Models/Declaration/GenericBusEngineData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs
similarity index 100%
rename from VectoCore/VectoCore/Models/Declaration/GenericBusEngineData.cs
rename to VectoCore/VectoCore/Models/GenericModelData/GenericBusEngineData.cs
diff --git a/VectoCore/VectoCore/Models/Declaration/GenericBusRetarderData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericBusRetarderData.cs
similarity index 91%
rename from VectoCore/VectoCore/Models/Declaration/GenericBusRetarderData.cs
rename to VectoCore/VectoCore/Models/GenericModelData/GenericBusRetarderData.cs
index 71045db06addffa96ae93cf469061b711d3848ab..bc4b4de785d1a4677dc57ece8e58c2e08850cfe9 100644
--- a/VectoCore/VectoCore/Models/Declaration/GenericBusRetarderData.cs
+++ b/VectoCore/VectoCore/Models/GenericModelData/GenericBusRetarderData.cs
@@ -11,14 +11,6 @@ namespace TUGraz.VectoCore.Models.Declaration
 {
 	public class GenericBusRetarderData
 	{
-		private static GenericBusRetarderData _instance;
-
-		public static GenericBusRetarderData Instance
-		{
-			get { return _instance ?? (_instance = new GenericBusRetarderData()); }
-		}
-
-		protected GenericBusRetarderData() { }
 
 		public RetarderData CreateGenericBusRetarderData(IRetarderInputData retarderInput)
 		{
diff --git a/VectoCore/VectoCore/Models/GenericModelData/GenericTorqueConverterData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericTorqueConverterData.cs
new file mode 100644
index 0000000000000000000000000000000000000000..3ba997b51876846267cdaee832fb1bbfebdf2d45
--- /dev/null
+++ b/VectoCore/VectoCore/Models/GenericModelData/GenericTorqueConverterData.cs
@@ -0,0 +1,95 @@
+using System;
+using System.Data;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.SimulationComponent.Data;
+using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.Models.Declaration
+{
+	public class GenericTorqueConverterData
+	{
+		public TorqueConverterData CreateTorqueConverterData(double ratio, CombustionEngineData engineData)
+		{
+			var genericTCData = CreateGenericTorqueConverterCharacteristics(ratio, engineData.FullLoadCurves[0].RatedSpeed, engineData.FullLoadCurves[0].MaxTorque);
+
+			return TorqueConverterDataReader.Create(
+				genericTCData,
+				DeclarationData.TorqueConverter.ReferenceRPM, DeclarationData.TorqueConverter.MaxInputSpeed,
+				ExecutionMode.Declaration, ratio,
+				DeclarationData.TorqueConverter.CLUpshiftMinAcceleration,
+				DeclarationData.TorqueConverter.CCUpshiftMinAcceleration);
+		}
+
+		private DataTable CreateGenericTorqueConverterCharacteristics(double ratio, PerSecond ratedSpeed, NewtonMeter maxTorque)
+		{
+			var engRatedSpeed = ratedSpeed.AsRPM;
+			var engMaxTorque = maxTorque.Value();
+
+			const double speedAtStallPtFactor = 0.7;
+			const double torqueAtStallPtFactor = 0.8;
+
+			const double refTorqueIntermediatePtFactor = 0.8;
+			const double refTorqueCouplingPtFactor = 0.5;
+			const double refTorqueOverrunPtFactor = 0;
+
+
+			const double speedRAtioOverrunPt = 1.0;
+			const double speedRatioCouplingPt = 0.9;
+			const double speedRatioIntermediatePt = 0.6;
+			const double speedRatioStallPt = 0.0;
+
+			const double torqueRatioStallPt = 1.8;
+			const double torqueRatioCouplingPt = 0.95;
+			const double torqueRatioOverrunPt = 0.94;
+
+			const double tcRefSpeed = 1000;
+
+			var retVal = new DataTable();
+			var colSpeedRatio = retVal.Columns.Add(TorqueConverterDataReader.Fields.SpeedRatio);
+			var colTqRatio = retVal.Columns.Add(TorqueConverterDataReader.Fields.TorqueRatio);
+			var colRefTq = retVal.Columns.Add(TorqueConverterDataReader.Fields.CharacteristicTorque);
+
+			
+
+			var refTorqueStallPt = torqueAtStallPtFactor * engMaxTorque *
+									Math.Pow(tcRefSpeed / (speedAtStallPtFactor * engRatedSpeed), 2);
+
+			var torqueRatioIntermediatePt = VectoMath.Interpolate(
+				speedRatioStallPt, speedRatioCouplingPt, torqueRatioStallPt, torqueRatioCouplingPt, speedRatioIntermediatePt);
+
+			// stall point
+			var stallPt = retVal.NewRow();
+			stallPt[colSpeedRatio] = speedRatioStallPt * ratio;
+			stallPt[colTqRatio] = torqueRatioStallPt / speedRAtioOverrunPt / ratio;
+			stallPt[colRefTq] = refTorqueStallPt;
+			retVal.Rows.Add(stallPt);
+
+			// intermediate point
+			var intermediatePt = retVal.NewRow();
+			intermediatePt[colSpeedRatio] = speedRatioIntermediatePt * ratio;
+			intermediatePt[colTqRatio] = torqueRatioIntermediatePt / ratio;
+			intermediatePt[colRefTq] = refTorqueStallPt * refTorqueIntermediatePtFactor;
+			retVal.Rows.Add(intermediatePt);
+
+			//coupling point
+			var couplingPt = retVal.NewRow();
+			couplingPt[colSpeedRatio] = speedRatioCouplingPt * speedRAtioOverrunPt * ratio;
+			couplingPt[colTqRatio] = torqueRatioCouplingPt / speedRAtioOverrunPt / ratio;
+			couplingPt[colRefTq] = refTorqueStallPt * refTorqueCouplingPtFactor;
+			retVal.Rows.Add(couplingPt);
+
+			// overrun point
+			var overrunPt = retVal.NewRow();
+			overrunPt[colSpeedRatio] = speedRAtioOverrunPt * ratio;
+			overrunPt[colTqRatio] = torqueRatioOverrunPt / speedRAtioOverrunPt / ratio;
+			overrunPt[colRefTq] = refTorqueStallPt * refTorqueOverrunPtFactor;
+			retVal.Rows.Add(overrunPt);
+
+			return retVal;
+		}
+	}
+}
diff --git a/VectoCore/VectoCore/Models/Declaration/GenericTransmissionComponentData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericTransmissionComponentData.cs
similarity index 89%
rename from VectoCore/VectoCore/Models/Declaration/GenericTransmissionComponentData.cs
rename to VectoCore/VectoCore/Models/GenericModelData/GenericTransmissionComponentData.cs
index 309b78c3627f210cddc5db88d8afb246afd9f56d..2b7b70b406245196ff04dada9e03be21eee009f2 100644
--- a/VectoCore/VectoCore/Models/Declaration/GenericTransmissionComponentData.cs
+++ b/VectoCore/VectoCore/Models/GenericModelData/GenericTransmissionComponentData.cs
@@ -16,23 +16,13 @@ namespace TUGraz.VectoCore.Models.Declaration
 {
 	public class GenericTransmissionComponentData
 	{
-		private static GenericTransmissionComponentData _instance;
-
-		public static GenericTransmissionComponentData Instance
-		{
-			get { return _instance ?? (_instance = new GenericTransmissionComponentData()); }
-		}
-
-		protected GenericTransmissionComponentData () { }
-
-		//public DataTable AxleGearInputLossMap { get; private set; }
-
-		public GearboxData CreateGearboxData(
-			IVehicleDeclarationInputData primaryVehicle, VectoRunData runData,
-			IShiftPolygonCalculator shiftPolygonCalc)
-		{
-			return DeclarationDataAdapterHeavyLorry.DoCreateGearboxData(primaryVehicle, runData, shiftPolygonCalc);
-		}
+		
+		//public GearboxData CreateGearboxData(
+		//	IVehicleDeclarationInputData primaryVehicle, VectoRunData runData,
+		//	IShiftPolygonCalculator shiftPolygonCalc)
+		//{
+		//	return DeclarationDataAdapterHeavyLorry.DoCreateGearboxData(primaryVehicle, runData, shiftPolygonCalc);
+		//}
 
 		public AxleGearData CreateGenericBusAxlegearData(IAxleGearInputData axlegearData)
 		{
diff --git a/VectoCore/VectoCore/Resources/Declaration/GenericBusData/GenericTorqueConverter.csv b/VectoCore/VectoCore/Resources/Declaration/GenericBusData/GenericTorqueConverter.csv
deleted file mode 100644
index cfa4cc5cc7d2f571bcfbcf5dc84833b78dac69a9..0000000000000000000000000000000000000000
--- a/VectoCore/VectoCore/Resources/Declaration/GenericBusData/GenericTorqueConverter.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Speed Ratio, Torque Ratio, MP1000
-1,0.999,0
-1.1,0.998,-103
-1.2,0.997,-172
-1.3,0.996,-229
-1.4,0.995,-286
-1.5,0.994,-346
-1.6,0.993,-407
-1.7,0.992,-460
-1.8,0.991,-546
-1.9,0.99,-616
-2,0.989,-685
-2.1,0.988,-753
-2.2,0.987,-820
-2.3,0.986,-886
-2.4,0.985,-951
-2.5,0.984,-1015
-2.6,0.983,-1078
-2.7,0.982,-1140
-2.8,0.981,-1201
-2.9,0.98,-1261
-3,0.979,-1320
-3.1,0.978,-1378
-3.2,0.977,-1435
-3.3,0.976,-1491
-3.4,0.975,-1546
-3.5,0.974,-1500
-3.6,0.973,-1653
-3.7,0.972,-1705
-3.8,0.971,-1756
-3.9,0.97,-1806
-4,0.969,-1855
-4.1,0.968,-1903
-4.2,0.967,-1945
-4.3,0.966,-1996
-4.4,0.965,-2041
-4.5,0.964,-2085
-4.6,0.963,-2128
-4.7,0.962,-2167
-4.8,0.961,-2211
-4.9,0.96,-2251
-5,0.959,-2290
\ No newline at end of file
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 2d8592ff80ca665c5d53d74ea00596d5a59f35fc..4957a25a8985be94512b4adb7eee175f6085704c 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -321,10 +321,10 @@
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\HVAC\SSMRun.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\HVAC\SSMTOOL.cs" />
     <Compile Include="Models\Declaration\CompletedBusSegments.cs" />
-    <Compile Include="Models\Declaration\GenericTransmissionComponentData.cs" />
-    <Compile Include="Models\Declaration\GenericBusDriverData.cs" />
-    <Compile Include="Models\Declaration\GenericBusEngineData.cs" />
-    <Compile Include="Models\Declaration\GenericBusRetarderData.cs" />
+    <Compile Include="Models\GenericModelData\GenericTorqueConverterData.cs" />
+    <Compile Include="Models\GenericModelData\GenericTransmissionComponentData.cs" />
+    <Compile Include="Models\GenericModelData\GenericBusEngineData.cs" />
+    <Compile Include="Models\GenericModelData\GenericBusRetarderData.cs" />
     <Compile Include="Models\Declaration\SSMTechnology.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\M06Impl.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\M07Impl.cs" />
@@ -903,7 +903,6 @@
     <EmbeddedResource Include="Resources\Declaration\CompletedBusSegmentationTable.csv" />
     <EmbeddedResource Include="Resources\Declaration\GenericBusData\EngineConsumptionMap_CI_Normed.vmap" />
     <EmbeddedResource Include="Resources\Declaration\GenericBusData\EngineConsumptionMap_PI_Normed.vmap" />
-    <EmbeddedResource Include="Resources\Declaration\GenericBusData\GenericTorqueConverter.csv" />
     <None Include="Resources\Declaration\VAUXBus\SP-AxleFactor.csv" />
     <None Include="Resources\Declaration\VAUXBus\SP-Axles_Bus.csv" />
     <None Include="Resources\Declaration\VAUXBus\SP-Factors_Bus.csv" />