diff --git a/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs b/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs
index c9417c85bc52f80af7bca7df9e1d228c8cd541c9..af17712261eb5a4b43fca9dcf2a8c6ea364f99b5 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs
@@ -33,6 +33,7 @@ using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
+using System.Linq;
 using System.Runtime.Serialization;
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
@@ -116,7 +117,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 			ModalResultField.P_gbx_in,
 			ModalResultField.P_gbx_inertia,
 			ModalResultField.P_gbx_loss,
-			ModalResultField.P_gbx_shift_loss,
+			//ModalResultField.P_gbx_shift_loss,   // only for APT-S and APT-P
 			ModalResultField.T_gbx_in,
 			ModalResultField.T_gbx_out,
 			ModalResultField.n_gbx_out_avg,
@@ -124,6 +125,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 			ModalResultField.Gear
 		};
 
+		public static readonly ModalResultField[] GearboxSignals_AT =
+			GearboxSignals.Concat(new[] { ModalResultField.P_gbx_shift_loss }).ToArray();
+
 		// ------------------------------------------------------------------------------------
 		public static readonly ModalResultField[] TorqueConverterSignals = {
 			ModalResultField.TC_Locked,
@@ -331,8 +335,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 				case IClutch _:
 					CreateColumns(ClutchSignals);
 					break;
-				case IGearbox _ when runData.JobType != VectoSimulationJobType.IEPC_E && runData.JobType != VectoSimulationJobType.IEPC_S: 
-					CreateColumns(GearboxSignals); 
+				case IGearbox _ when runData.JobType != VectoSimulationJobType.IEPC_E && runData.JobType != VectoSimulationJobType.IEPC_S:
+					CreateColumns(runData.GearboxData.Type.IsOneOf(GearboxType.ATPowerSplit, GearboxType.ATSerial)
+						? GearboxSignals_AT
+						: GearboxSignals);
 					break;
 				case IGearbox _ when runData.JobType == VectoSimulationJobType.IEPC_E:
 				case IGearbox _ when runData.JobType == VectoSimulationJobType.IEPC_S:
diff --git a/VectoCore/VectoCore/OutputData/SumDataFields.cs b/VectoCore/VectoCore/OutputData/SumDataFields.cs
index 2dc5127905d202ebaacfb581acc7e88cdb733bb0..9e4a5f5e43bb281a74badb333f00078b406387d9 100644
--- a/VectoCore/VectoCore/OutputData/SumDataFields.cs
+++ b/VectoCore/VectoCore/OutputData/SumDataFields.cs
@@ -151,7 +151,7 @@ namespace TUGraz.VectoCore.OutputData
 
 		public const string E_BusAux_PS_corr = "E_BusAux_PS_corr [kWh]";
 		public const string E_BusAux_ES_mech_corr = "E_BusAux_ES_mech_corr [kWh]";
-		public const string E_BusAux_AuxHeater = "E_BusAux_AuxhHeater [kWh]";
+		public const string E_BusAux_AuxHeater = "E_BusAux_AuxHeater [kWh]";
 
 		public const string E_AIR = "E_air [kWh]";
 		public const string E_ROLL = "E_roll [kWh]";
@@ -330,8 +330,8 @@ namespace TUGraz.VectoCore.OutputData
 			{ STATUS, SumFunc((r, m) => m.RunStatus)},
 
 			{ TIME, SumFunc((r,m) => (ConvertedSI)m.Duration)},
-			{ DISTANCE, SumFunc((r, m) => m.Distance.ConvertToKiloMeter())},
-			{ SPEED, SumFunc((r, m) => m.Speed().ConvertToKiloMeterPerHour())},
+			{ DISTANCE, SumFunc((r, m) => m.Distance?.ConvertToKiloMeter())},
+			{ SPEED, SumFunc((r, m) => m.Speed()?.ConvertToKiloMeterPerHour())},
 			{ ALTITUDE_DELTA, SumFunc((r, m) => (ConvertedSI)m.AltitudeDelta())},
 
 
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index 69d2b0f5e1717d388b01e0fa469ec1a83f02a5a9..800df96ab134eb76a3b2aecfb6c1e74c05a23895 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -98,6 +98,7 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.ACC, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.ACC_POS, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.ACC_NEG, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_POS_ACC, typeof(ConvertedSI)),
 			// Engine Infos
 			Tuple.Create(SumDataFields.ENGINE_MANUFACTURER, typeof(string)),
 			Tuple.Create(SumDataFields.ENGINE_MODEL, typeof(string)),
@@ -114,7 +115,6 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.ENGINE_ACTUAL_CORRECTION_FACTOR, typeof(string)),
 			Tuple.Create(SumDataFields.VEHICLE_FUEL_TYPE, typeof(string)),
 			Tuple.Create(SumDataFields.ENGINE_CERTIFICATION_NUMBER, typeof(string)),
-			Tuple.Create(SumDataFields.AVERAGE_ENGINE_EFFICIENCY, typeof(double)),
 			// Vehicle Infos
 			Tuple.Create(SumDataFields.VEHICLE_MANUFACTURER, typeof(string)),
 			Tuple.Create(SumDataFields.VIN_NUMBER, typeof(string)),
@@ -122,6 +122,8 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.HDV_CO2_VEHICLE_CLASS, typeof(string)),
 
 			Tuple.Create(SumDataFields.AIRDRAG_MODEL, typeof(string)),
+			Tuple.Create(SumDataFields.AIRDRAG_CERTIFICATION_NUMBER, typeof(string)),
+			Tuple.Create(SumDataFields.AIRDRAG_CERTIFICATION_METHOD, typeof(string)),
 			Tuple.Create(SumDataFields.CD_x_A_DECLARED, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.CD_x_A, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.SLEEPER_CAB, typeof(string)),
@@ -141,12 +143,15 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.NUM_AXLES_TRAILER, typeof(int)),
 			Tuple.Create(SumDataFields.GEARBOX_MANUFACTURER, typeof(string)),
 			Tuple.Create(SumDataFields.GEARBOX_MODEL, typeof(string)),
+			Tuple.Create(SumDataFields.GEARBOX_CERTIFICATION_METHOD, typeof(string)),
+			Tuple.Create(SumDataFields.GEARBOX_CERTIFICATION_NUMBER, typeof(string)),
 			Tuple.Create(SumDataFields.GEARBOX_TYPE, typeof(string)),
-			Tuple.Create(SumDataFields.AVERAGE_GEARBOX_EFFICIENCY, typeof(double)),
 			Tuple.Create(SumDataFields.GEAR_RATIO_FIRST_GEAR, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.GEAR_RATIO_LAST_GEAR, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.TORQUECONVERTER_MANUFACTURER, typeof(string)),
 			Tuple.Create(SumDataFields.TORQUECONVERTER_MODEL, typeof(string)),
+			Tuple.Create(SumDataFields.TORQUE_CONVERTER_CERTIFICATION_METHOD, typeof(string)),
+			Tuple.Create(SumDataFields.TORQUE_CONVERTER_CERTIFICATION_NUMBER, typeof(string)),
 			Tuple.Create(SumDataFields.RETARDER_MANUFACTURER, typeof(string)),
 			Tuple.Create(SumDataFields.RETARDER_MODEL, typeof(string)),
 			Tuple.Create(SumDataFields.RETARDER_TYPE, typeof(string)),
@@ -157,13 +162,11 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.ANGLEDRIVE_RATIO, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.ANGLEDRIVE_CERTIFICATION_METHOD, typeof(string)),
 			Tuple.Create(SumDataFields.ANGLEDRIVE_CERTIFICATION_NUMBER, typeof(string)),
-			Tuple.Create(SumDataFields.AVERAGE_ANGLEDRIVE_EFFICIENCY, typeof(double)),
 			Tuple.Create(SumDataFields.AXLE_MANUFACTURER, typeof(string)),
 			Tuple.Create(SumDataFields.AXLE_MODEL, typeof(string)),
 			Tuple.Create(SumDataFields.AXLE_RATIO, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.AXLEGEAR_CERTIFICATION_METHOD, typeof(string)),
 			Tuple.Create(SumDataFields.AXLEGEAR_CERTIFICATION_NUMBER, typeof(string)),
-			Tuple.Create(SumDataFields.AVERAGE_AXLEGEAR_EFFICIENCY, typeof(double)),
 			Tuple.Create(string.Format(SumDataFields.AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.SteeringPump), typeof(string)),
 			Tuple.Create(string.Format(SumDataFields.AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.Fan), typeof(string)),
 			Tuple.Create(string.Format(SumDataFields.AUX_TECH_FORMAT, Constants.Auxiliaries.IDs.HeatingVentilationAirCondition), typeof(string)),
@@ -192,6 +195,13 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.P_FCMAP_POS, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.E_FCMAP_POS, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.E_FCMAP_NEG, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.MAX_ENGINE_SPEED, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVG_ENGINE_SPEED, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_WHR_EL, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_WHR_MECH, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_ICE_START, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_AUX_ESS_missing, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_ENGINE_EFFICIENCY, typeof(double)),
 		};
 
 		public static readonly Tuple<string, Type>[] VehilceColumns = {
@@ -200,6 +210,14 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.E_ROLL, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.E_GRAD, typeof(ConvertedSI)),
 			Tuple.Create(SumDataFields.E_POWERTRAIN_INERTIA, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.MAX_ACCELERATION, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.MAX_DECELERATION, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.MAX_SPEED, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.TOTAL_VEHICLE_MASS, typeof(ConvertedSI)),
+		};
+
+		public static readonly Tuple<string, Type>[] BusVehicleColumns = {
+			Tuple.Create(SumDataFields.PassengerCount, typeof(double)),
 		};
 
 		public static readonly Tuple<string, Type>[] ClutchColumns = {
@@ -208,21 +226,32 @@ namespace TUGraz.VectoCore.OutputData
 
 		public static readonly Tuple<string, Type>[] GearboxColumns = {
 			Tuple.Create(SumDataFields.NUM_GEARSHIFTS, typeof(ConvertedSI)),
-			Tuple.Create(SumDataFields.E_GBX_LOSS, typeof(ConvertedSI))
+			Tuple.Create(SumDataFields.E_GBX_LOSS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_GEARBOX_EFFICIENCY, typeof(double)),
+		};
+		public static readonly Tuple<string, Type>[] GearboxColumns_AT = {
+			Tuple.Create(SumDataFields.NUM_GEARSHIFTS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_GBX_LOSS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_SHIFT_LOSS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_GEARBOX_EFFICIENCY, typeof(double)),
 		};
 
 		public static readonly Tuple<string, Type>[] IEPCTransmissionColumns = { };
 
 		public static readonly Tuple<string, Type>[] TorqueConverterColumns = {
 			Tuple.Create(SumDataFields.E_TC_LOSS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_TORQUE_CONVERTER_EFFICIENCY_WITHOUT_LOCKUP, typeof(double)),
+			Tuple.Create(SumDataFields.AVERAGE_TORQUE_CONVERTER_EFFICIENCY_WITH_LOCKUP, typeof(double)),
 		};
 
 		public static readonly Tuple<string, Type>[] AngledriveColumns = {
 			Tuple.Create(SumDataFields.E_ANGLE_LOSS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_ANGLEDRIVE_EFFICIENCY, typeof(double)),
 		};
 
 		public static readonly Tuple<string, Type>[] AxlegearColumns = {
 			Tuple.Create(SumDataFields.E_AXL_LOSS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AVERAGE_AXLEGEAR_EFFICIENCY, typeof(double)),
 		};
 
 		public static readonly Tuple<string, Type>[] RetarderColumns = {
@@ -288,10 +317,35 @@ namespace TUGraz.VectoCore.OutputData
 			Tuple.Create(SumDataFields.E_WHEEL, typeof(ConvertedSI)),
 		};
 
+		public static readonly Tuple<string, Type>[] BusAuxiliariesSignals = {
+			Tuple.Create(SumDataFields.AirGenerated, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.AirConsumed, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_AuxHeater, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_ES_consumed, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_ES_generated, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_ES_mech_corr, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_HVAC_El, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_HVAC_Mech, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_BusAux_PS_corr, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_PS_CompressorOff, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.E_PS_CompressorOn, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.Delta_E_BusAux_Battery, typeof(ConvertedSI)),
+		};
+
+		public static readonly Tuple<string, Type>[] PWheelCycleColumns = {
+			Tuple.Create(SumDataFields.P_WHEEL, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.P_WHEEL_POS, typeof(ConvertedSI)),
+			Tuple.Create(SumDataFields.TOTAL_VEHICLE_MASS, typeof(ConvertedSI)),
+		};
+
 		private object _tableLock = new object();
 		internal readonly DataTable Table;
 		private readonly ISummaryWriter _sumWriter;
-		private List<string> fcCols = new List<string>();
+		
+		protected HashSet<string> FcCols = new HashSet<string>();
+		protected HashSet<string> GearColumns = new HashSet<string>();
+		protected HashSet<string> AuxColumns = new HashSet<string>();
+
 
 		/// <summary>
 		/// Initializes a new instance of the <see cref="SummaryDataContainer"/> class.
@@ -313,13 +367,18 @@ namespace TUGraz.VectoCore.OutputData
 					CreateColumns(CombustionEngineColumns);
 					UpdateTableColumns(runData.EngineData);
 					break;
+				case BusAuxiliariesAdapter _:
+					CreateColumns(BusAuxiliariesSignals);
+					break;
 				case EngineAuxiliary _:
 					break;
 				case IClutch _:
 					CreateColumns(ClutchColumns);
 					break;
 				case IGearbox _ when runData.JobType != VectoSimulationJobType.IEPC_E && runData.JobType != VectoSimulationJobType.IEPC_S:
-					CreateColumns(GearboxColumns);
+					CreateColumns(runData.GearboxData.Type.IsOneOf(GearboxType.ATPowerSplit, GearboxType.ATSerial)
+						? GearboxColumns_AT
+						: GearboxColumns);
 					CreateGearTimeShareColumns(runData.GearboxData.GearList);
 					break;
 				case IGearbox _ when runData.JobType == VectoSimulationJobType.IEPC_E:
@@ -351,8 +410,14 @@ namespace TUGraz.VectoCore.OutputData
 				case IDriver _:
 					//CreateColumns(DriverSignals);
 					break;
+				case PWheelCycle _:
+					CreateColumns(PWheelCycleColumns);
+					break;
 				case IVehicle _:
 					CreateColumns(VehilceColumns);
+					if (runData.VehicleData.VehicleCategory.IsBus()) {
+						CreateColumns(BusVehicleColumns);
+					}
 					break;
 				case IElectricMotor c3 when c3.Position == PowertrainPosition.IEPC:
 					CreateElectricMotorColumns(c3, runData, IEPCColumns);
@@ -386,6 +451,7 @@ namespace TUGraz.VectoCore.OutputData
 					return;
 				}
 				Table.Columns.Add(colName, typeof(ConvertedSI));
+				AuxColumns.Add(colName);
 			}
 		}
 
@@ -402,14 +468,20 @@ namespace TUGraz.VectoCore.OutputData
 		private void CreateGearTimeShareColumns(GearList gears)
 		{
 			lock (Table) {
-				Table.Columns.AddRange(gears
+				var gearColNames = gears
 					.Select(x => string.Format(SumDataFields.TIME_SHARE_PER_GEAR_FORMAT, x.Gear))
-					.Concat(new [] {string.Format(SumDataFields.TIME_SHARE_PER_GEAR_FORMAT, 0)}).Distinct()
+					.Concat(new[] { string.Format(SumDataFields.TIME_SHARE_PER_GEAR_FORMAT, 0) }).Distinct()
 					.Where(x => !Table.Columns.Contains(x)).Select(x => new DataColumn(x, typeof(ConvertedSI)))
-					.ToArray());
+					.ToArray();
+				Table.Columns.AddRange(gearColNames);
+				foreach (var gearColName in gearColNames) {
+					GearColumns.Add(gearColName.ColumnName);
+				}
+//				gearColNames.Select(x => GearColumns.Add(x.ColumnName));
 			}
 		}
 
+
 		protected internal void CreateColumns(Tuple<string, Type>[] cols)
 		{
 			lock (Table) {
@@ -422,7 +494,6 @@ namespace TUGraz.VectoCore.OutputData
 		{
 			var cols = new List<string>();
 			cols.AddRange(new[] {
-				SumDataFields.SORT,
 				SumDataFields.JOB,
 				SumDataFields.INPUTFILE,
 				SumDataFields.CYCLE,
@@ -486,11 +557,11 @@ namespace TUGraz.VectoCore.OutputData
 				SumDataFields.AXLE_MODEL,
 				SumDataFields.AXLE_RATIO
 			});
-			cols.AddRange(new[] {
-				Constants.Auxiliaries.IDs.SteeringPump, Constants.Auxiliaries.IDs.Fan,
-				Constants.Auxiliaries.IDs.HeatingVentilationAirCondition,
-				Constants.Auxiliaries.IDs.PneumaticSystem, Constants.Auxiliaries.IDs.ElectricSystem
-			}.Select(x => string.Format(SumDataFields.E_AUX_FORMAT, x)));
+            cols.AddRange(new[] {
+                Constants.Auxiliaries.IDs.SteeringPump, Constants.Auxiliaries.IDs.Fan,
+                Constants.Auxiliaries.IDs.HeatingVentilationAirCondition,
+                Constants.Auxiliaries.IDs.PneumaticSystem, Constants.Auxiliaries.IDs.ElectricSystem
+            }.Select(x => string.Format(SumDataFields.AUX_TECH_FORMAT, x)));
 
 			cols.AddRange(new[] {
 				SumDataFields.TCU_MODEL,
@@ -504,20 +575,23 @@ namespace TUGraz.VectoCore.OutputData
 				SumDataFields.ALTITUDE_DELTA,
 			});
 
-			cols.AddRange(fcCols);
+			cols.AddRange(FcCols);
 
-            cols.AddRange(new[] {
-				SumDataFields.CO2_KM, 
-				SumDataFields.CO2_TKM, 
-				SumDataFields.CO2_M3KM, 
-				SumDataFields.CO2_PKM, 
+			cols.AddRange(new[] {
+				SumDataFields.CO2_KM,
+				SumDataFields.CO2_TKM,
+				SumDataFields.CO2_M3KM,
+				SumDataFields.CO2_PKM,
 				SumDataFields.P_WHEEL,
-				SumDataFields.P_WHEEL_POS, 
-				SumDataFields.P_FCMAP, 
+				SumDataFields.P_WHEEL_POS,
+				SumDataFields.P_FCMAP,
 				SumDataFields.P_FCMAP_POS,
-				SumDataFields.E_FCMAP_POS, 
-				SumDataFields.E_FCMAP_NEG, 
-				SumDataFields.E_POWERTRAIN_INERTIA, 
+				SumDataFields.E_FCMAP_POS,
+				SumDataFields.E_FCMAP_NEG,
+				SumDataFields.E_POWERTRAIN_INERTIA,
+			});
+			cols.AddRange(AuxColumns.OrderBy(x => x));
+			cols.AddRange(new[] {
 				SumDataFields.E_AUX,
 				SumDataFields.E_AUX_EL_HV, 
 				SumDataFields.E_CLUTCH_LOSS,
@@ -589,6 +663,7 @@ namespace TUGraz.VectoCore.OutputData
 				SumDataFields.AIRDRAG_CERTIFICATION_NUMBER,
 				SumDataFields.AIRDRAG_CERTIFICATION_METHOD, 
 			});
+			cols.AddRange(GearColumns.OrderBy(x => x));
 
 			return cols.Where(x => Table.Columns.Contains(x)).ToArray();
 		}
@@ -753,7 +828,7 @@ namespace TUGraz.VectoCore.OutputData
 							var col = new DataColumn(colName, typeof(ConvertedSI));
 							Table.Columns.Add(col);
 							col.SetOrdinal(Table.Columns.IndexOf(SumDataFields.ALTITUDE_DELTA) + 1);
-							fcCols.Add(colName);
+							FcCols.Add(colName);
 						}
 					}
 				}
diff --git a/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs b/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs
index 348082cd3b110e1515b2d828ad580758498cef18..a0ebad74d808d06d21695204f1795c69cc477e91 100644
--- a/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs
@@ -567,10 +567,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 
 			Assert.IsTrue(run.FinishedWithoutErrors);
 			Assert.IsTrue(modData.Rows.Count > 0);
-			Assert.That(modData.Columns.Contains(ModalResultField.P_ret_loss.GetName()));
-			Assert.That(modData.Columns.Contains(ModalResultField.P_retarder_in.GetName()));
-			Assert.That(modData.Rows.Cast<DataRow>().All(r => r.Field<Watt>(ModalResultField.P_ret_loss.GetName()) is null));
-			Assert.That(modData.Rows.Cast<DataRow>().All(r => r.Field<Watt>(ModalResultField.P_retarder_in.GetName()) is null));
+			Assert.IsFalse(modData.Columns.Contains(ModalResultField.P_ret_loss.GetName()));
+			Assert.IsFalse(modData.Columns.Contains(ModalResultField.P_retarder_in.GetName()));
+			//Assert.That(modData.Rows.Cast<DataRow>().All(r => r.Field<Watt>(ModalResultField.P_ret_loss.GetName()) is null));
+			//Assert.That(modData.Rows.Cast<DataRow>().All(r => r.Field<Watt>(ModalResultField.P_retarder_in.GetName()) is null));
 		}
 
 		[TestCase]
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
index c9a2b9c4fee28b4ff5ad14e0d8f2f86dc7da0bb0..9031440b81722af72d7c16388c390575e59593ee 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -90,6 +90,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 				ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
 				Cycle = new DrivingCycleData() {
 					Name = "MockCycle",
+					CycleType = CycleType.DistanceBased
 				},
 				DriverData = new DriverData() {
 					EngineStopStart = new DriverData.EngineStopStartData(),
@@ -103,10 +104,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			modData.AddAuxiliary("STP");
 			modData.AddAuxiliary("ES");
 			modData.AddAuxiliary("AC");
-			modData.Data.CreateColumns(ModalResults.DriverSignals);
+			//modData.Data.CreateColumns(ModalResults.DriverSignals);
 			modData.Data.CreateCombustionEngineColumns(runData);
 
 			var sumWriter = new SummaryDataContainer(fileWriter);
+			sumWriter.UpdateTableColumns(runData.EngineData);
 			var container = new VehicleContainer(ExecutionMode.Declaration, modData,
 				sumWriter) { RunData = runData};
 			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\LongHaul_short.vdri", CycleType.DistanceBased, false);
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
index b6023fb482a82f9c25a47e52db057c0cc874654c..6f3abca5f14773332985a0f0d85f538058624efa 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
@@ -165,7 +165,12 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 						IdleSpeed = 560.RPMtoRad(),
 						Inertia = 1.SI<KilogramSquareMeter>(),
 						EngineStartTime = DeclarationData.Engine.DefaultEngineStartTime,
-						FullLoadCurves = new Dictionary<uint, EngineFullLoadCurve>() { { 0, fullLoadCurve }, { 1, fullLoadCurve } }
+						FullLoadCurves = new Dictionary<uint, EngineFullLoadCurve>() { { 0, fullLoadCurve }, { 1, fullLoadCurve } },
+						Fuels = new List<CombustionEngineFuelData>() {
+							new CombustionEngineFuelData() {
+								FuelData = FuelData.Diesel
+							}
+						}
 					},
 				GearboxData = new GearboxData { Gears = new Dictionary<uint, GearData> { { 2, new GearData { Ratio = 3.5 } } } },
 				Retarder = new RetarderData(),
diff --git a/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs
index 770c4a50d6348856bf7b9ab49e3b4c26f5f143fe..ce76570bd6683ec2294e286c5cdeae5ae18e6edc 100644
--- a/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/ModDataPostprocessingTest.cs
@@ -1805,6 +1805,13 @@ namespace TUGraz.VectoCore.Tests.Reports
 			var modData = new ModalDataContainer(runData, writer, null) {
 				WriteModalResults = true
 			};
+			modData.Data.CreateCombustionEngineColumns(runData);
+			modData.Data.CreateColumns(ModalResults.DriverSignals);
+			modData.Data.CreateColumns(ModalResults.WheelSignals);
+			modData.Data.CreateColumns(ModalResults.DCDCConverterSignals);
+			modData.Data.CreateColumns(ModalResults.BusAuxiliariesSignals);
+			modData.Data.CreateElectricMotorColumns(runData.ElectricMachinesData.FirstOrDefault().Item1, null, ModalResults.ElectricMotorSignals);
+			modData.Data.CreateColumns(ModalResults.BatterySignals);
 
 			var fuel = runData.EngineData.Fuels[0];
 
diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
index 744c4724a2630fa8070ccb349357655f254f1bb8..8f1f2a142ca0b9eda01e46e1739efe6d7156c512 100644
--- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
+++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs
@@ -388,6 +388,7 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 			jobContainer.AddRuns(runsFactory);
 			var modData = new List<Tuple<ModalResults, double>>();
+			VectoRunData runData = null;
 			foreach (var run in jobContainer.Runs) {
 				var distanceCycle = ((VehicleContainer)run.Run.GetContainer()).DrivingCycleInfo as DistanceBasedDrivingCycle;
 				if (distanceCycle != null) {
@@ -398,6 +399,9 @@ namespace TUGraz.VectoCore.Tests.Reports
 				if (cycle != null)
 					modData.Add(Tuple.Create(((ModalDataContainer)run.Run.GetContainer().ModalData).Data,
 						cycle.Data.Entries.Last().Time.Value()));
+				if (runData == null) {
+					runData = run.Run.GetContainer().RunData;
+				}
 			}
 			var auxKeys =
 				new Dictionary<string, DataColumn>(
@@ -432,10 +436,11 @@ namespace TUGraz.VectoCore.Tests.Reports
 				}
 			}
 
-			AssertSumDataIntegrity(sumData, mode, disatanceBased);
+			AssertSumDataIntegrity(sumData, mode, disatanceBased, runData);
 		}
 
-		private static void AssertSumDataIntegrity(SummaryDataContainer sumData, ExecutionMode mode, bool distanceBased)
+		private static void AssertSumDataIntegrity(SummaryDataContainer sumData, ExecutionMode mode,
+			bool distanceBased, VectoRunData runData)
 		{
 			Assert.IsTrue(sumData.Table.Rows.Count > 0);
 
@@ -469,11 +474,11 @@ namespace TUGraz.VectoCore.Tests.Reports
 				var eFcMapNeg = ((ConvertedSI)row[SumDataFields.E_FCMAP_NEG]);
 				var ePowertrainInertia = distanceBased ? ((ConvertedSI)row[SumDataFields.E_POWERTRAIN_INERTIA]) : new ConvertedSI(0, "");
 				var eAux = ((ConvertedSI)row[SumDataFields.E_AUX]);
-				var eClutchLoss = ((ConvertedSI)row[SumDataFields.E_CLUTCH_LOSS]);
+				var eClutchLoss = runData.GearboxData.Type.AutomaticTransmission() ? new ConvertedSI(0, "") : ((ConvertedSI)row[SumDataFields.E_CLUTCH_LOSS]);
 				var eTcLoss = row.Table.Columns.Contains(SumDataFields.E_TC_LOSS) ? ((ConvertedSI)row[SumDataFields.E_TC_LOSS]) : new ConvertedSI(0, "");
 				//var eShiftLoss = ((SI)row[SummaryDataContainer.E_SHIFT_LOSS]);
 				var eGbxLoss = ((ConvertedSI)row[SumDataFields.E_GBX_LOSS]);
-				var eRetLoss =  ((ConvertedSI)row[SumDataFields.E_RET_LOSS]);
+				var eRetLoss = runData.Retarder.Type.IsDedicatedComponent() ? ((ConvertedSI)row[SumDataFields.E_RET_LOSS]) : new ConvertedSI(0, "");
 				var eAngleLoss = row.Table.Columns.Contains(SumDataFields.E_ANGLE_LOSS) ? ((ConvertedSI)row[SumDataFields.E_ANGLE_LOSS]) : new ConvertedSI(0, "");
 				var eAxlLoss = ((ConvertedSI)row[SumDataFields.E_AXL_LOSS]);
 				var eBrakeLoss = distanceBased ? ((ConvertedSI)row[SumDataFields.E_BRAKE]) : new ConvertedSI(0, "");
@@ -873,10 +878,14 @@ namespace TUGraz.VectoCore.Tests.Reports
 
 			jobContainer.AddRuns(runsFactory);
 			var modData = new List<Tuple<ModalResults, Meter>>();
+			VectoRunData runData = null;
 			foreach (var run in jobContainer.Runs) {
 				modData.Add(Tuple.Create(((ModalDataContainer)run.Run.GetContainer().ModalData).Data,
 					((DistanceBasedDrivingCycle)((VehicleContainer)run.Run.GetContainer()).DrivingCycleInfo).Data.Entries.Last()
 						.Distance));
+				if (runData == null) {
+					runData = run.Run.GetContainer().RunData;
+				}
 			}
 			var auxKeys =
 				new Dictionary<string, DataColumn>(
@@ -889,14 +898,14 @@ namespace TUGraz.VectoCore.Tests.Reports
 					modalResults.Item1, auxKeys, modalResults.Item2,
 					FuelConsumptionMapReader.Create(
 						((IEngineeringInputDataProvider)inputData)
-						.JobInputData.Vehicle.Components.EngineInputData.EngineModes.First().Fuels.First().FuelConsumptionMap), true);
+						.JobInputData.Vehicle.Components.EngineInputData.EngineModes.First().Fuels.First().FuelConsumptionMap), true, runData);
 			}
 
-			AssertSumDataIntegrity(sumData, ExecutionMode.Engineering, true);
+			AssertSumDataIntegrity(sumData, ExecutionMode.Engineering, true, runData);
 		}
 
 		private static void AssertModDataIntegrityAT(ModalResults modData, Dictionary<string, DataColumn> auxKeys,
-			Meter totalDistance, FuelConsumptionMap consumptionMap, bool atGbx)
+			Meter totalDistance, FuelConsumptionMap consumptionMap, bool atGbx, VectoRunData runData)
 		{
 			Assert.IsTrue(modData.Rows.Count > 0);
 
@@ -936,12 +945,12 @@ namespace TUGraz.VectoCore.Tests.Reports
 				var pLossGbx = (Watt)row[ModalResultField.P_gbx_loss.GetName()];
 				var pGbxIn = (Watt)row[ModalResultField.P_gbx_in.GetName()];
 				var pLossAxle = (Watt)row[ModalResultField.P_axle_loss.GetName()];
-				var pLossAngle = row[ModalResultField.P_angle_loss.GetName()] is DBNull
+				var pLossAngle = runData.AngledriveData?.Type != AngledriveType.SeparateAngledrive
 					? 0.SI<Watt>()
 					: (Watt)row[ModalResultField.P_angle_loss.GetName()];
 				var pAxleIn = (Watt)row[ModalResultField.P_axle_in.GetName()];
-				var pLossRet = row[ModalResultField.P_ret_loss.GetName()] is DBNull ? 0.SI<Watt>() : (Watt)row[ModalResultField.P_ret_loss.GetName()];
-				var pRetIn = row[ModalResultField.P_retarder_in.GetName()] is DBNull ? pAxleIn : (Watt)row[ModalResultField.P_retarder_in.GetName()];
+				var pLossRet = runData.Retarder.Type.IsDedicatedComponent() ? (Watt)row[ModalResultField.P_ret_loss.GetName()] : 0.SI<Watt>();
+				var pRetIn = runData.Retarder.Type.IsDedicatedComponent() ? (Watt)row[ModalResultField.P_retarder_in.GetName()] : pAxleIn;
 				var pGbxInertia = (Watt)row[ModalResultField.P_gbx_inertia.GetName()];
 				var pShiftLoss = row[ModalResultField.P_gbx_shift_loss.GetName()] is DBNull
 					? 0.SI<Watt>()
diff --git a/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs b/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs
index 6075287c616060e9ca5321b782c919482229336b..66bf65c49141398a32521d529d8380d1aee2cfd6 100644
--- a/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs
+++ b/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs
@@ -107,11 +107,12 @@ namespace TUGraz.VectoCore.Tests.Utils
 				}
 
 				CollectionAssert.AreEqual(expectedCols, actualCols,
-					"Moddata {0}: Columns differ:\nExpected: {1}\nMissing:{2},\nToo Much:{3}",
+					"Moddata {0}: Columns differ:\nActual: {4}\nExpected: {1}\nMissing:{2},\nToo Much:{3}",
 					result.actualFile,
 					expectedCols.Join(),
 					expectedCols.Except(actualCols).Join(),
-					actualCols.Except(expectedCols).Join());
+					actualCols.Except(expectedCols).Join(),
+					actualCols.Join());
 
 				for (var i = 0; testRowcount && i < expected.Rows.Count; i++) {
 					var expectedRow = expected.Rows[i];
@@ -139,11 +140,12 @@ namespace TUGraz.VectoCore.Tests.Utils
 			var expectedCols = expected.Columns.Cast<DataColumn>().Select(x => x.ColumnName).OrderBy(x => x).ToList();
 
 			CollectionAssert.AreEqual(expectedCols, actualCols,
-				"SUM FILE {0}: Columns differ:\nExpected: {1}\nMissing:{2},\nToo Much:{3}",
+				"SUM FILE {0}: Columns differ:\nActual: {4}\nExpected: {1}\nMissing:{2},\nToo Much:{3}",
 				actualFile,
 				expectedCols.Join(),
 				expectedCols.Except(actualCols).Join(),
-				actualCols.Except(expectedCols).Join());
+				actualCols.Except(expectedCols).Join(),
+				actualCols.Join());
 
 			for (var i = 0; i < expected.Rows.Count; i++) {
 				var expectedRow = expected.Rows[i];
diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24VehicleDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24VehicleDataTest.cs
index aab9e7969973c29d5d454875ba1976a8c9a492d0..a929d2202187e131df8637dd0929a7dcc234b886 100644
--- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24VehicleDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv24VehicleDataTest.cs
@@ -168,7 +168,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			TestPrimaryBusParametersSequenceGroup(vehicle);
 			Assert.AreEqual(600.RPMtoRad(), vehicle.EngineIdleSpeed);
 			TestRetarderSequenceGroup(vehicle);
-			Assert.AreEqual(AngledriveType.SeparateAngledrive, vehicle.AngledriveType);
+			Assert.AreEqual(AngledriveType.None, vehicle.AngledriveType);
 			Assert.AreEqual(true, vehicle.ZeroEmissionVehicle);
 		}