diff --git a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs
index 60c20e99537d5c30050788590550481cbcbdc2a2..2b8cb7808cb380a17e64964d5e9ea9eeb2d05e14 100644
--- a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs
+++ b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs
@@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
 					var engineData = dao.CreateEngineData(Engine);
 
 					var simulationRunData = new VectoRunData {
-						VehicleData = dao.CreateVehicleData(Vehicle, mission, loading),
+						VehicleData = dao.CreateVehicleData(Vehicle, mission, loading.LoadingWeight),
 						EngineData = engineData,
 						GearboxData = dao.CreateGearboxData(Gearbox, engineData),
 						Aux = dao.CreateAuxiliaryData(Aux, mission.MissionType, segment.VehicleClass),
@@ -47,8 +47,10 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
 						DriverData = driverdata,
 						IsEngineOnly = IsEngineOnly,
 						JobFileName = Job.JobFile,
-						BasePath = ""
+						BasePath = "",
+						ModFileSuffix = loading.Name
 					};
+					simulationRunData.Cycle.Name = mission.MissionType.ToString();
 					simulationRunData.VehicleData.VehicleClass = segment.VehicleClass;
 					yield return simulationRunData;
 				}
diff --git a/VectoCore/Models/Declaration/Mission.cs b/VectoCore/Models/Declaration/Mission.cs
index 995b777b9286a34294e06ea07b021485064cdfd1..be6b86957d73d0a34e4a392ff69e03499d5af51f 100644
--- a/VectoCore/Models/Declaration/Mission.cs
+++ b/VectoCore/Models/Declaration/Mission.cs
@@ -17,13 +17,26 @@ namespace TUGraz.VectoCore.Models.Declaration
 		public Kilogram RefLoad { get; set; }
 		public Kilogram MaxLoad { get; set; }
 
-		public IEnumerable<Kilogram> Loadings
+		public IEnumerable<LoadingEntry> Loadings
 		{
-			get { return new[] { MinLoad, RefLoad, MaxLoad }; }
+			get
+			{
+				return new[] {
+					new LoadingEntry() { LoadingWeight = MinLoad, Name = "EmptyLoading" },
+					new LoadingEntry() { LoadingWeight = RefLoad, Name = "ReferenceLoad" },
+					new LoadingEntry() { LoadingWeight = MaxLoad, Name = "FullLoading" }
+				};
+			}
 		}
 
 		public Stream CycleFile { get; set; }
 
 		public bool UseCdA2 { get; set; }
+
+		public class LoadingEntry
+		{
+			public Kilogram LoadingWeight;
+			public string Name;
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/Models/Simulation/Data/VectoRunData.cs
index 201f7d78c2b38aae8d7cf65124928339fdc11977..7e424c73a5d180c791a6e69eb9cd0e571b978c80 100644
--- a/VectoCore/Models/Simulation/Data/VectoRunData.cs
+++ b/VectoCore/Models/Simulation/Data/VectoRunData.cs
@@ -34,6 +34,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 		public string JobFileName { get; set; }
 
 		public string BasePath { get; set; }
+		public string ModFileSuffix { get; set; }
 
 
 		public class AuxData
diff --git a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
index 8ef16956cafd5514cb71628207e23e4e53d72851..ff00c7f47f443e1b78589ba83ee47d2745d15311 100644
--- a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
+++ b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
@@ -71,9 +71,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			var i = 0;
 			foreach (var data in DataReader.NextRun()) {
 				var modFileName = Path.Combine(data.BasePath,
-					data.JobFileName.Replace(Constants.FileExtensions.VectoJobFile, "") + "_{0}" +
+					data.JobFileName.Replace(Constants.FileExtensions.VectoJobFile, "") + "_{0}{1}" +
 					Constants.FileExtensions.ModDataFile);
-				IModalDataWriter modWriter = new ModalDataWriter(string.Format(modFileName, data.Cycle.Name), _mode);
+				IModalDataWriter modWriter =
+					new ModalDataWriter(string.Format(modFileName, data.Cycle.Name, data.ModFileSuffix ?? ""), _mode);
 				var jobName = string.Format("{0}-{1}", JobNumber, i++);
 				var sumWriterDecorator = DecorateSumWriter(data.IsEngineOnly, SumWriter, data.JobFileName, jobName, data.Cycle.Name);
 				var builder = new PowertrainBuilder(modWriter, sumWriterDecorator, DataReader.IsEngineOnly);
diff --git a/VectoCore/Models/Simulation/Impl/VectoRun.cs b/VectoCore/Models/Simulation/Impl/VectoRun.cs
index d3d3d3900b87dbabc44e5237936893606e166d70..b8c97a48ea615b343efbd3931d9650fdeaf6afd7 100644
--- a/VectoCore/Models/Simulation/Impl/VectoRun.cs
+++ b/VectoCore/Models/Simulation/Impl/VectoRun.cs
@@ -56,10 +56,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				Container.FinishSimulation();
 				throw new VectoSimulationException("absTime: {0}, distance: {1}, dt: {2}, v: {3}, Gear: {4}", ve, AbsTime,
 					Container.Distance, dt, Container.VehicleSpeed, Container.Gear, ve.Message);
+			} catch (Exception e) {
+				Container.FinishSimulation();
+				throw new VectoSimulationException("absTime: {0}, distance: {1}, dt: {2}, v: {3}, Gear: {4}", e, AbsTime,
+					Container.Distance, dt, Container.VehicleSpeed, Container.Gear, e.Message);
 			}
-
 			Container.FinishSimulation();
-
 			Log.Info("VectoJob finished.");
 		}