diff --git a/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs b/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs
index 94cb57ad78eec815779addd5d3aa636462bfdda9..45bfe1a77209f79814c101377c6847f81790945a 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/ModalResult.cs
@@ -309,7 +309,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 			CreateColumns(CommonSignals);
 		}
 
-		protected void CreateColumns(ModalResultField[] columns, Func<ModalResultField, string> nameFunc = null, Func<ModalResultField, string> captionFunc = null)
+		protected internal void CreateColumns(ModalResultField[] columns, Func<ModalResultField, string> nameFunc = null, Func<ModalResultField, string> captionFunc = null)
 		{
 			foreach (var value in columns) {
 				var colName = nameFunc != null ? nameFunc(value) : value.GetName();
@@ -400,7 +400,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 			}
 		}
 
-		private void CreateCombustionEngineColumns(VectoRunData runData)
+		protected internal void CreateCombustionEngineColumns(VectoRunData runData)
 		{
 			CreateColumns(CombustionEngineSignals);
 			if (runData.BusAuxiliaries != null) {
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
index 48c82b0a7084d9892dd73436a042b62f0e11cd03..fe1d5b29fe3e7539839b84b68bd63da411bdc5b4 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
@@ -198,13 +198,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			//todo mk20210617 use sorted list with inverse commitPriority (-commitPriority)
 			_components = _components.OrderBy(x => x.Item1).Reverse().ToList();
 
-			if (ModalData != null) {
-				ModalData.RegisterComponent(component);
-			}
+			ModalData?.RegisterComponent(component);
 
-			if (WriteSumData != null) {
-				WriteSumData.RegisterComponent(component, RunData);
-			}
+			WriteSumData?.RegisterComponent(component, RunData);
 		}
 
 
@@ -232,7 +228,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			Log.Info("VehicleContainer finishing simulation.");
 			ModData?.Finish(RunStatus, e);
 
-			WriteSumData.Write(ModData, RunData);
+			WriteSumData?.Write(ModData, RunData);
 
 			ModData?.FinishSimulation();
 			DrivingCycleInfo?.FinishSimulation();
diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index bc603a90ab9ecc1cb88c7f1aca313d6da8543576..6bba3a4a57ee4545b4794d74672c00bfadc6f0a1 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -314,9 +314,9 @@ namespace TUGraz.VectoCore.OutputData
 
 		public static WattSecond PowerAccelerations(this IModalDataContainer data)
 		{
-			var paEngine = data.TimeIntegral<WattSecond>(ModalResultField.P_ice_inertia);
-			var paGearbox = data.TimeIntegral<WattSecond>(ModalResultField.P_gbx_inertia);
-			return paEngine + (paGearbox ?? 0.SI<WattSecond>());
+			var paEngine = data.TimeIntegral<WattSecond>(ModalResultField.P_ice_inertia) ?? 0.SI<WattSecond>();
+			var paGearbox = data.TimeIntegral<WattSecond>(ModalResultField.P_gbx_inertia) ?? 0.SI<WattSecond>();
+			return paEngine + paGearbox;
 		}
 
 		public static WattSecond WorkClutch(this IModalDataContainer data)
@@ -694,6 +694,9 @@ namespace TUGraz.VectoCore.OutputData
 				retVal[i] = 0.SI<Scalar>();
 			}
 
+			if (!data.ContainsColumn(ModalResultField.Gear.GetName())) {
+				return retVal;
+			}
 			var gearData = data.GetValues(x => new {
 				Gear = x.Field<uint>(ModalResultField.Gear.GetName()),
 				dt = x.Field<Second>(ModalResultField.simulationInterval.GetName())
diff --git a/VectoCore/VectoCore/OutputData/SumDataFields.cs b/VectoCore/VectoCore/OutputData/SumDataFields.cs
index 12749ac202a8d77e15fcc6c5373648b9e4b82f84..63467ac2e1ba5633560798a2fae9077588097496 100644
--- a/VectoCore/VectoCore/OutputData/SumDataFields.cs
+++ b/VectoCore/VectoCore/OutputData/SumDataFields.cs
@@ -339,77 +339,77 @@ namespace TUGraz.VectoCore.OutputData
 			{ VEHICLE_FUEL_TYPE, SumFunc((r, m) => m.FuelData.Select(x => x.GetLabel()).Join())},
 			{ P_WHEEL_POS, SumFunc((r, m) => m.PowerWheelPositive().ConvertToKiloWatt())},
 			{ P_WHEEL, SumFunc((r, m) => m.PowerWheel().ConvertToKiloWatt())},
-			{ VEHICLE_MANUFACTURER, SumFunc((r, m) => r.VehicleData.Manufacturer)},
-			{ VIN_NUMBER, SumFunc((r, m) => r.VehicleData.VIN)},
-			{ VEHICLE_MODEL, SumFunc((r, m) => r.VehicleData.ModelName)},
-			{ HDV_CO2_VEHICLE_CLASS, SumFunc((r, m) => r.Mission?.BusParameter?.BusGroup.GetClassNumber() ?? r.VehicleData.VehicleClass.GetClassNumber())},
+			{ VEHICLE_MANUFACTURER, SumFunc((r, m) => r.VehicleData?.Manufacturer ?? Constants.NOT_AVAILABLE)},
+			{ VIN_NUMBER, SumFunc((r, m) => r.VehicleData?.VIN ?? Constants.NOT_AVAILABLE)},
+			{ VEHICLE_MODEL, SumFunc((r, m) => r.VehicleData?.ModelName ?? Constants.NOT_AVAILABLE)},
+			{ HDV_CO2_VEHICLE_CLASS, SumFunc((r, m) => r.Mission?.BusParameter?.BusGroup.GetClassNumber() ?? r.VehicleData?.VehicleClass.GetClassNumber() ?? VehicleClass.Unknown.GetClassNumber())},
 			{ CURB_MASS, SumFunc((r, m) => (ConvertedSI)r.VehicleData.CurbMass)},
 			{ LOADING, SumFunc((r, m) => (ConvertedSI)r.VehicleData.Loading)},
 			{ PassengerCount, SumFunc((r, m) => r.VehicleData.PassengerCount)},
-			{ CARGO_VOLUME, SumFunc((r, m) => (ConvertedSI)r.VehicleData.CargoVolume)},
-			{ TOTAL_VEHICLE_MASS, SumFunc((r, m) => (ConvertedSI)r.VehicleData.TotalVehicleMass)},
-			{ SLEEPER_CAB, SumFunc((r, m) => r.VehicleData.SleeperCab.HasValue ? (r.VehicleData.SleeperCab.Value ? "yes" : "no") : "-")},
-			{ ROLLING_RESISTANCE_COEFFICIENT_WO_TRAILER, SumFunc((r, m) =>   r.VehicleData.RollResistanceCoefficientWithoutTrailer)},
-			{ ROLLING_RESISTANCE_COEFFICIENT_W_TRAILER, SumFunc((r, m) =>    r.VehicleData.TotalRollResistanceCoefficient)},
-			{ R_DYN, SumFunc((r, m) => (ConvertedSI)r.VehicleData.DynamicTyreRadius)},
-			{ ADAS_TECHNOLOGY_COMBINATION, SumFunc((r, m) => r.VehicleData.ADAS != null ? DeclarationData.ADASCombinations.Lookup(r.VehicleData.ADAS, r.GearboxData?.Type ?? GearboxType.NoGearbox).ID : "")},
+			{ CARGO_VOLUME, SumFunc((r, m) => (ConvertedSI)r.VehicleData?.CargoVolume)},
+			{ TOTAL_VEHICLE_MASS, SumFunc((r, m) => (ConvertedSI)r.VehicleData?.TotalVehicleMass)},
+			{ SLEEPER_CAB, SumFunc((r, m) => (r.VehicleData?.SleeperCab.HasValue ?? false) ? (r.VehicleData.SleeperCab.Value ? "yes" : "no") : "-")},
+			{ ROLLING_RESISTANCE_COEFFICIENT_WO_TRAILER, SumFunc((r, m) =>   r.VehicleData?.RollResistanceCoefficientWithoutTrailer)},
+			{ ROLLING_RESISTANCE_COEFFICIENT_W_TRAILER, SumFunc((r, m) =>    r.VehicleData?.TotalRollResistanceCoefficient)},
+			{ R_DYN, SumFunc((r, m) => (ConvertedSI)r.VehicleData?.DynamicTyreRadius)},
+			{ ADAS_TECHNOLOGY_COMBINATION, SumFunc((r, m) => r.VehicleData?.ADAS != null ? DeclarationData.ADASCombinations.Lookup(r.VehicleData.ADAS, r.GearboxData?.Type ?? GearboxType.NoGearbox).ID : "")},
 			{ REESS_CAPACITY, SumFunc((r, m) => r.BatteryData?.Capacity != null ? $"{r.BatteryData?.Capacity.AsAmpHour} Ah" : r.SuperCapData?.Capacity != null ?  $"{r.SuperCapData.Capacity} F" : null)},
 			{ TCU_MODEL, SumFunc((r, m) =>  r.ShiftStrategy)},
 			{ PTO_TECHNOLOGY, SumFunc((r, m) => r.PTO?.TransmissionType ?? "")},
 
 			// air drag infos
-			{ AIRDRAG_MODEL, SumFunc((r, m) => r.AirdragData.ModelName)},
-			{ AIRDRAG_CERTIFICATION_METHOD, SumFunc((r, m) => r.AirdragData.CertificationMethod.GetName())},
-			{ AIRDRAG_CERTIFICATION_NUMBER, SumFunc((r, m) => r.AirdragData.CertificationMethod == CertificationMethod.StandardValues ? "" : r.AirdragData.CertificationNumber)},
-			{ CD_x_A_DECLARED, SumFunc((r, m) => (ConvertedSI)r.AirdragData.DeclaredAirdragArea)},
-			{ CD_x_A, SumFunc((r, m) => (ConvertedSI)r.AirdragData.CrossWindCorrectionCurve.AirDragArea)},
+			{ AIRDRAG_MODEL, SumFunc((r, m) => r.AirdragData?.ModelName ?? Constants.NOT_AVAILABLE)},
+			{ AIRDRAG_CERTIFICATION_METHOD, SumFunc((r, m) => r.AirdragData?.CertificationMethod.GetName()  ?? Constants.NOT_AVAILABLE)},
+			{ AIRDRAG_CERTIFICATION_NUMBER, SumFunc((r, m) => r.AirdragData?.CertificationMethod == CertificationMethod.StandardValues ? "" : r.AirdragData.CertificationNumber)},
+			{ CD_x_A_DECLARED, SumFunc((r, m) => (ConvertedSI)r.AirdragData?.DeclaredAirdragArea)},
+			{ CD_x_A, SumFunc((r, m) => (ConvertedSI)r.AirdragData?.CrossWindCorrectionCurve.AirDragArea)},
 			
 			// engine infos
-			{ ENGINE_MANUFACTURER, SumFunc((r, m) => r.EngineData.Manufacturer)},
-			{ ENGINE_MODEL, SumFunc((r, m) => r.EngineData.ModelName)},
-			{ ENGINE_CERTIFICATION_NUMBER, SumFunc((r, m) => r.EngineData.CertificationNumber)},
-			{ ENGINE_FUEL_TYPE, SumFunc((r, m) => r.EngineData.Fuels.Select(x => x.FuelData.GetLabel()).Join(" / "))},
-			{ ENGINE_RATED_POWER, SumFunc((r, m) => r.EngineData.RatedPowerDeclared != null && r.EngineData.RatedPowerDeclared > 0 ? r.EngineData.RatedPowerDeclared.ConvertToKiloWatt() : r.EngineData.FullLoadCurves[0].MaxPower.ConvertToKiloWatt())},
-			{ ENGINE_IDLING_SPEED, SumFunc((r, m) => (ConvertedSI)r.EngineData.IdleSpeed.AsRPM.SI<Scalar>())},
-			{ ENGINE_RATED_SPEED, SumFunc((r, m) => r.EngineData.RatedSpeedDeclared != null && r.EngineData.RatedSpeedDeclared > 0 ? (ConvertedSI)r.EngineData.RatedSpeedDeclared.AsRPM.SI<Scalar>() : (ConvertedSI)r.EngineData.FullLoadCurves[0].RatedSpeed.AsRPM.SI<Scalar>())},
-			{ ENGINE_DISPLACEMENT, SumFunc((r, m) => r.EngineData.Displacement.ConvertToCubicCentiMeter())},
-			{ ENGINE_WHTC_URBAN, SumFunc((r, m) => r.EngineData.Fuels.Select(x => x.WHTCUrban).Join(" / "))},
-			{ ENGINE_WHTC_RURAL, SumFunc((r, m) => r.EngineData.Fuels.Select(x => x.WHTCRural).Join(" / "))},
-			{ ENGINE_WHTC_MOTORWAY, SumFunc((r, m) => r.EngineData.Fuels.Select(x => x.WHTCMotorway).Join(" / "))},
-			{ ENGINE_BF_COLD_HOT, SumFunc((r, m) => r.EngineData.Fuels.Select(x => x.ColdHotCorrectionFactor).Join(" / "))},
-			{ ENGINE_CF_REG_PER, SumFunc((r, m) => r.EngineData.Fuels.Select(x => x.CorrectionFactorRegPer).Join(" / "))},
+			{ ENGINE_MANUFACTURER, SumFunc((r, m) => r.EngineData?.Manufacturer ?? Constants.NOT_AVAILABLE)},
+			{ ENGINE_MODEL, SumFunc((r, m) => r.EngineData?.ModelName ?? Constants.NOT_AVAILABLE)},
+			{ ENGINE_CERTIFICATION_NUMBER, SumFunc((r, m) => r.EngineData?.CertificationNumber ?? Constants.NOT_AVAILABLE)},
+			{ ENGINE_FUEL_TYPE, SumFunc((r, m) => r.EngineData?.Fuels.Select(x => x.FuelData.GetLabel()).Join(" / "))},
+			{ ENGINE_RATED_POWER, SumFunc((r, m) => r.EngineData?.RatedPowerDeclared != null && r.EngineData.RatedPowerDeclared > 0 ? r.EngineData.RatedPowerDeclared.ConvertToKiloWatt() : r.EngineData?.FullLoadCurves[0].MaxPower.ConvertToKiloWatt())},
+			{ ENGINE_IDLING_SPEED, SumFunc((r, m) => (ConvertedSI)r.EngineData?.IdleSpeed.AsRPM.SI<Scalar>())},
+			{ ENGINE_RATED_SPEED, SumFunc((r, m) => r.EngineData?.RatedSpeedDeclared != null && r.EngineData.RatedSpeedDeclared > 0 ? (ConvertedSI)r.EngineData.RatedSpeedDeclared.AsRPM.SI<Scalar>() : (ConvertedSI)r.EngineData?.FullLoadCurves[0].RatedSpeed.AsRPM.SI<Scalar>())},
+			{ ENGINE_DISPLACEMENT, SumFunc((r, m) => r.EngineData?.Displacement.ConvertToCubicCentiMeter())},
+			{ ENGINE_WHTC_URBAN, SumFunc((r, m) => r.EngineData?.Fuels.Select(x => x.WHTCUrban).Join(" / "))},
+			{ ENGINE_WHTC_RURAL, SumFunc((r, m) => r.EngineData?.Fuels.Select(x => x.WHTCRural).Join(" / "))},
+			{ ENGINE_WHTC_MOTORWAY, SumFunc((r, m) => r.EngineData?.Fuels.Select(x => x.WHTCMotorway).Join(" / "))},
+			{ ENGINE_BF_COLD_HOT, SumFunc((r, m) => r.EngineData?.Fuels.Select(x => x.ColdHotCorrectionFactor).Join(" / "))},
+			{ ENGINE_CF_REG_PER, SumFunc((r, m) => r.EngineData?.Fuels.Select(x => x.CorrectionFactorRegPer).Join(" / "))},
 			{ ENGINE_ACTUAL_CORRECTION_FACTOR, SumFunc((r, m) => {
 				if (r.Mission?.MissionType == MissionType.VerificationTest) {
-					var fuelsWhtc = r.EngineData.Fuels.Select(
+					var fuelsWhtc = r.EngineData?.Fuels.Select(
 							fuel => m.TimeIntegral<Kilogram>(m.GetColumnName(fuel.FuelData, ModalResultField.FCWHTCc)) /
 									m.TimeIntegral<Kilogram>(m.GetColumnName(fuel.FuelData, ModalResultField.FCMap)))
 						.Select(dummy => (double)dummy).ToArray();
-					return fuelsWhtc.Join(" / ");
+					return fuelsWhtc?.Join(" / ");
 				}
-				return r.EngineData.Fuels.Select(x => x.FuelConsumptionCorrectionFactor).Join(" / ");
+				return r.EngineData?.Fuels.Select(x => x.FuelConsumptionCorrectionFactor).Join(" / ");
 			})},
 			
 			// axlegear infos
-			{ AXLE_MANUFACTURER, SumFunc((r, m) => r.AxleGearData.Manufacturer)},
-			{ AXLE_MODEL, SumFunc((r, m) => r.AxleGearData.ModelName)},
-			{ AXLE_RATIO, SumFunc((r, m) => (ConvertedSI)r.AxleGearData.AxleGear.Ratio.SI<Scalar>())},
-			{ AXLEGEAR_CERTIFICATION_METHOD, SumFunc((r, m) => r.AxleGearData.CertificationMethod.GetName())},
-			{ AXLEGEAR_CERTIFICATION_NUMBER, SumFunc((r, m) => r.AxleGearData.CertificationMethod == CertificationMethod.StandardValues ? "" : r.AxleGearData.CertificationNumber)},
+			{ AXLE_MANUFACTURER, SumFunc((r, m) => r.AxleGearData?.Manufacturer ?? Constants.NOT_AVAILABLE)},
+			{ AXLE_MODEL, SumFunc((r, m) => r.AxleGearData?.ModelName ?? Constants.NOT_AVAILABLE)},
+			{ AXLE_RATIO, SumFunc((r, m) => (ConvertedSI)r.AxleGearData?.AxleGear.Ratio.SI<Scalar>())},
+			{ AXLEGEAR_CERTIFICATION_METHOD, SumFunc((r, m) => r.AxleGearData?.CertificationMethod.GetName() ?? Constants.NOT_AVAILABLE)},
+			{ AXLEGEAR_CERTIFICATION_NUMBER, SumFunc((r, m) => r.AxleGearData?.CertificationMethod == CertificationMethod.StandardValues ? "" : r.AxleGearData?.CertificationNumber)},
 
 			// axle/tyre infos
-			{ NUM_AXLES_DRIVEN, SumFunc((r, m) => r.VehicleData.AxleData.Count(x => x.AxleType == AxleType.VehicleDriven))},
-			{ NUM_AXLES_NON_DRIVEN, SumFunc((r, m) => r.VehicleData.AxleData.Count(x => x.AxleType == AxleType.VehicleNonDriven))},
-			{ NUM_AXLES_TRAILER, SumFunc((r, m) => r.VehicleData.AxleData.Count(x => x.AxleType == AxleType.Trailer))},
+			{ NUM_AXLES_DRIVEN, SumFunc((r, m) => r.VehicleData?.AxleData.Count(x => x.AxleType == AxleType.VehicleDriven))},
+			{ NUM_AXLES_NON_DRIVEN, SumFunc((r, m) => r.VehicleData?.AxleData.Count(x => x.AxleType == AxleType.VehicleNonDriven))},
+			{ NUM_AXLES_TRAILER, SumFunc((r, m) => r.VehicleData?.AxleData.Count(x => x.AxleType == AxleType.Trailer))},
 
-			{ DECLARED_RRC_AXLE1, SumFunc((r, m) => r.VehicleData.AxleData.Count > 0 && r.VehicleData.AxleData[0].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[0].RollResistanceCoefficient : double.NaN) },
-			{ DECLARED_RRC_AXLE2, SumFunc((r, m) => r.VehicleData.AxleData.Count > 1 && r.VehicleData.AxleData[1].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[1].RollResistanceCoefficient : double.NaN) },
-			{ DECLARED_RRC_AXLE3, SumFunc((r, m) => r.VehicleData.AxleData.Count > 2 && r.VehicleData.AxleData[2].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[2].RollResistanceCoefficient : double.NaN) },
-			{ DECLARED_RRC_AXLE4, SumFunc((r, m) => r.VehicleData.AxleData.Count > 3 && r.VehicleData.AxleData[3].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[3].RollResistanceCoefficient : double.NaN) },
+			{ DECLARED_RRC_AXLE1, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 0 && r.VehicleData.AxleData[0].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[0].RollResistanceCoefficient : double.NaN) },
+			{ DECLARED_RRC_AXLE2, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 1 && r.VehicleData.AxleData[1].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[1].RollResistanceCoefficient : double.NaN) },
+			{ DECLARED_RRC_AXLE3, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 2 && r.VehicleData.AxleData[2].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[2].RollResistanceCoefficient : double.NaN) },
+			{ DECLARED_RRC_AXLE4, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 3 && r.VehicleData.AxleData[3].AxleType != AxleType.Trailer ? r.VehicleData.AxleData[3].RollResistanceCoefficient : double.NaN) },
 
-			{ DECLARED_FZISO_AXLE1, SumFunc((r, m) => r.VehicleData.AxleData.Count > 0 && r.VehicleData.AxleData[0].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[0].TyreTestLoad : null) },
-			{ DECLARED_FZISO_AXLE2, SumFunc((r, m) => r.VehicleData.AxleData.Count > 1 && r.VehicleData.AxleData[1].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[1].TyreTestLoad : null) },
-			{ DECLARED_FZISO_AXLE3, SumFunc((r, m) => r.VehicleData.AxleData.Count > 2 && r.VehicleData.AxleData[2].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[2].TyreTestLoad : null) },
-			{ DECLARED_FZISO_AXLE4, SumFunc((r, m) => r.VehicleData.AxleData.Count > 3 && r.VehicleData.AxleData[3].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[3].TyreTestLoad : null) },
+			{ DECLARED_FZISO_AXLE1, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 0 && r.VehicleData.AxleData[0].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[0].TyreTestLoad : null) },
+			{ DECLARED_FZISO_AXLE2, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 1 && r.VehicleData.AxleData[1].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[1].TyreTestLoad : null) },
+			{ DECLARED_FZISO_AXLE3, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 2 && r.VehicleData.AxleData[2].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[2].TyreTestLoad : null) },
+			{ DECLARED_FZISO_AXLE4, SumFunc((r, m) => r.VehicleData?.AxleData.Count > 3 && r.VehicleData.AxleData[3].AxleType != AxleType.Trailer ? (ConvertedSI)r.VehicleData.AxleData[3].TyreTestLoad : null) },
 
 			// angle drive
 			{ ANGLEDRIVE_MANUFACTURER, SumFunc((r, m) => r.AngledriveData?.Manufacturer ?? Constants.NOT_AVAILABLE)},
@@ -426,18 +426,18 @@ namespace TUGraz.VectoCore.OutputData
 			{ RETARDER_CERTIFICATION_NUMBER, SumFunc((r, m) => r.Retarder == null || !r.Retarder.Type.IsDedicatedComponent() || r.Retarder.CertificationMethod == CertificationMethod.StandardValues ? "" : r.Retarder.CertificationNumber)},
 
 			// gearbox
-			{ GEARBOX_MANUFACTURER, SumFunc((r, m) => r.GearboxData.Manufacturer)},
-			{ GEARBOX_MODEL, SumFunc((r, m) => r.GearboxData.ModelName)},
-			{ GEARBOX_TYPE, SumFunc((r, m) => r.GearboxData.Type)},
-			{ GEARBOX_CERTIFICATION_NUMBER, SumFunc((r, m) => r.GearboxData.CertificationMethod == CertificationMethod.StandardValues ? "" : r.GearboxData.CertificationNumber)},
-			{ GEARBOX_CERTIFICATION_METHOD, SumFunc((r, m) => r.GearboxData.CertificationMethod.GetName())},
+			{ GEARBOX_MANUFACTURER, SumFunc((r, m) => r.GearboxData?.Manufacturer ?? Constants.NOT_AVAILABLE)},
+			{ GEARBOX_MODEL, SumFunc((r, m) => r.GearboxData?.ModelName ?? Constants.NOT_AVAILABLE)},
+			{ GEARBOX_TYPE, SumFunc((r, m) => r.GearboxData?.Type.ToXMLFormat()  ?? Constants.NOT_AVAILABLE)},
+			{ GEARBOX_CERTIFICATION_NUMBER, SumFunc((r, m) => r.GearboxData?.CertificationMethod == CertificationMethod.StandardValues ? "" : r.GearboxData?.CertificationNumber)},
+			{ GEARBOX_CERTIFICATION_METHOD, SumFunc((r, m) => r.GearboxData?.CertificationMethod.GetName())},
 
-			{ GEAR_RATIO_FIRST_GEAR, SumFunc((r, m) => r.GearboxData.Gears.Count > 0
+			{ GEAR_RATIO_FIRST_GEAR, SumFunc((r, m) => r.GearboxData?.Gears.Count > 0
 					? (double.IsNaN(r.GearboxData.Gears.First().Value.Ratio)
 						? (ConvertedSI)r.GearboxData.Gears.First().Value.TorqueConverterRatio.SI<Scalar>()
 						: (ConvertedSI)r.GearboxData.Gears.First().Value.Ratio.SI<Scalar>())
 					: 0.SI<Scalar>())}, 
-			{ GEAR_RATIO_LAST_GEAR, SumFunc((r, m) => r.GearboxData.Gears.Count > 0
+			{ GEAR_RATIO_LAST_GEAR, SumFunc((r, m) => r.GearboxData?.Gears.Count > 0
 				? (ConvertedSI) r.GearboxData.Gears.Last().Value.Ratio.SI<Scalar>()
 				: (ConvertedSI)0.SI<Scalar>())},
 
@@ -464,7 +464,7 @@ namespace TUGraz.VectoCore.OutputData
 			
 			{ E_POWERTRAIN_INERTIA, SumFunc((r, m) => m.PowerAccelerations().ConvertToKiloWattHour())},
 			
-			{ E_AUX, SumFunc((r, m) => m.WorkAuxiliaries().ConvertToKiloWattHour())},
+			{ E_AUX, SumFunc((r, m) => m.WorkAuxiliaries()?.ConvertToKiloWattHour())},
 			{ E_AUX_EL_HV, SumFunc((r, m) => m.TimeIntegral<WattSecond>(ModalResultField.P_aux_el).ConvertToKiloWattHour())},
 			{ E_CLUTCH_LOSS, SumFunc((r, m) => m.WorkClutch().ConvertToKiloWattHour())},
 			{ E_TC_LOSS, SumFunc((r, m) => m.WorkTorqueConverter().ConvertToKiloWattHour())},
@@ -635,9 +635,9 @@ namespace TUGraz.VectoCore.OutputData
 			{ FCFINAL_KM, FuelFunc((r, m, f) => m.CorrectedModalData.FuelConsumptionCorrection(f).FC_FINAL_KM?.ConvertToGrammPerKiloMeter())},
 
 			{ FCFINAL_LITERPER100KM, FuelFunc((r, m, f) => f.FuelDensity == null ? null :  m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter.ConvertToLiterPer100Kilometer()) },
-			{ FCFINAL_LITERPER100TKM, FuelFunc((r, m, f) => f.FuelDensity == null || r.VehicleData.Loading == null || r.VehicleData.Loading.IsEqual(0) || m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter == null ? null :  (m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter / r.VehicleData.Loading).ConvertToLiterPer100TonKiloMeter()) },
-			{ FCFINAL_LiterPer100M3KM, FuelFunc((r, m, f) => f.FuelDensity == null || r.VehicleData.CargoVolume == null || r.VehicleData.CargoVolume.IsEqual(0) || m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter == null ? null : (m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter / r.VehicleData.CargoVolume).ConvertToLiterPerCubicMeter100KiloMeter()) },
-			{ FCFINAL_LiterPer100PassengerKM, FuelFunc((r, m, f) => f.FuelDensity == null || r.VehicleData.PassengerCount == null || m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter == null ? null :(m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter / r.VehicleData.PassengerCount.Value).ConvertToLiterPer100Kilometer()) },
+			{ FCFINAL_LITERPER100TKM, FuelFunc((r, m, f) => f.FuelDensity == null || r.VehicleData?.Loading == null || r.VehicleData.Loading.IsEqual(0) || m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter == null ? null :  (m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter / r.VehicleData.Loading).ConvertToLiterPer100TonKiloMeter()) },
+			{ FCFINAL_LiterPer100M3KM, FuelFunc((r, m, f) => f.FuelDensity == null || r.VehicleData?.CargoVolume == null || r.VehicleData.CargoVolume.IsEqual(0) || m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter == null ? null : (m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter / r.VehicleData.CargoVolume).ConvertToLiterPerCubicMeter100KiloMeter()) },
+			{ FCFINAL_LiterPer100PassengerKM, FuelFunc((r, m, f) => f.FuelDensity == null || r.VehicleData?.PassengerCount == null || m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter == null ? null :(m.CorrectedModalData.FuelConsumptionCorrection(f).FuelVolumePerMeter / r.VehicleData.PassengerCount.Value).ConvertToLiterPer100Kilometer()) },
 			
 			{ SPECIFIC_FC, FuelFunc((r, m, f) => r.Cycle.CycleType == CycleType.VTP ? (m.TotalFuelConsumption(ModalResultField.FCFinal, f) / m.WorkWheelsPos()).ConvertToGramPerKiloWattHour() : null) },
 
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index 575cb42558129e9d40352128a6c268c5e32bf817..88d17c9b264d6dfea4bf310095d49e0af9137c10 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -793,7 +793,7 @@ namespace TUGraz.VectoCore.OutputData
 				}
 			}
 
-			var multipleEngineModes = runData.EngineData.MultipleEngineFuelModes;
+			var multipleEngineModes = runData.EngineData?.MultipleEngineFuelModes ?? false;
 			foreach (var fuel in modData.FuelData) {
 				var suffix = modData.FuelData.Count <= 1 && !multipleEngineModes ? "" : "_" + fuel.FuelType.GetLabel();
 				foreach (var tuple in SumDataFields.FuelDataValue) {
@@ -821,8 +821,9 @@ namespace TUGraz.VectoCore.OutputData
 				row[colName] = SumDataFields.AuxDataValue(runData, modData, aux.Value);
 			}
 
-			WriteGearshiftStats(modData, row, (uint?)runData.GearboxData?.Gears.Count ?? 0u);
-
+			if ((runData.GearboxData?.Gears.Count ?? 0) > 0) {
+				WriteGearshiftStats(modData, row, (uint?)runData.GearboxData?.Gears.Count ?? 0u);
+			}
 
 			AddResultDictionary(row);
 		}
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
index 4aba3cd08f009dbe3d6cbac6c0ac392ce7cdf209..d3a81d405e8981ade72a57ec94db610905afe1f8 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -82,7 +82,10 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 						FuelData = FuelData.Diesel,
 						ConsumptionMap = FuelConsumptionMapReader.ReadFromFile(@"TestData\Components\12t Delivery Truck.vmap"),
 					}}.ToList(),
-					IdleSpeed = 600.RPMtoRad()
+					IdleSpeed = 600.RPMtoRad(),
+					RatedPowerDeclared = 300e3.SI<Watt>(),
+					RatedSpeedDeclared = 2000.RPMtoRad(),
+					Displacement = 7.SI(Unit.SI.Cubic.Dezi.Meter).Cast<CubicMeter>()
 				},
 				ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
 				Cycle = new DrivingCycleData() {
@@ -100,10 +103,12 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 			modData.AddAuxiliary("STP");
 			modData.AddAuxiliary("ES");
 			modData.AddAuxiliary("AC");
+			modData.Data.CreateColumns(ModalResults.DriverSignals);
+			modData.Data.CreateCombustionEngineColumns(runData);
 
 			var sumWriter = new SummaryDataContainer(fileWriter);
 			var container = new VehicleContainer(ExecutionMode.Declaration, modData,
-				sumWriter);
+				sumWriter) { RunData = runData};
 			var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\LongHaul_short.vdri", CycleType.DistanceBased, false);
 			new MockDrivingCycle(container, data);
 			new ZeroMileageCounter(container);
diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
index 27627d0721e9a58cf3c37b0820644cdbc9bc0d74..f6b2bf490a2f809ea5514f73fb1e776d5cdcadba 100644
--- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs
@@ -64,7 +64,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Data = new ModalResults();
 
 			foreach (var value in EnumHelper.GetValues<ModalResultField>()) {
-				if (ModalResults.FuelConsumptionSignals.Contains(value)) {
+				if (ModalResults.FuelConsumptionSignals.Contains(value) || Data.Columns.Contains(value.GetName())) {
 					continue;
 				}