diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto
index 144ce492de63643e20dc845c4305c3728908d5e9..72969c4dc9d99efeaae341111c35f94f4eaa1e5f 100644
--- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto	
+++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto	
@@ -1,8 +1,8 @@
 {
   "Header": {
-    "CreatedBy": "John.Norris@ricardo-aea.com, Rasa.Narkeviciute@ricardo-aea.com, Scott.Hanchett@ricardo-aea.com, Dana.Nurse@ricardo-aea.com, pascal.revereault@ricardo.com, james.baxter@ricardo.com (51e9f02e-c88f-4c25-9798-3f807530e154)",
-    "Date": "20/07/2015 12:19:33",
-    "AppVersion": "2.0.4-beta",
+    "CreatedBy": " ()",
+    "Date": "17.06.2016 08:12:45",
+    "AppVersion": "2.2",
     "FileVersion": 2
   },
   "Body": {
@@ -18,40 +18,7 @@
     "AuxiliaryAssembly": "CLASSIC",
     "AuxiliaryVersion": "CLASSIC",
     "AdvancedAuxiliaryFilePath": "",
-    "Aux": [
-      {
-        "ID": "FAN",
-        "Type": "Fan",
-        "Path": "<NOFILE>",
-        "Technology": ""
-      },
-      {
-        "ID": "STP",
-        "Type": "Steering pump",
-        "Path": "<NOFILE>",
-        "Technology": ""
-      },
-      {
-        "ID": "AC",
-        "Type": "HVAC",
-        "Path": "<NOFILE>",
-        "Technology": ""
-      },
-      {
-        "ID": "ES",
-        "Type": "Electric System",
-        "Path": "<NOFILE>",
-        "Technology": "",
-        "TechList": []
-      },
-      {
-        "ID": "PS",
-        "Type": "Pneumatic System",
-        "Path": "<NOFILE>",
-        "Technology": ""
-      }
-    ],
-    "VACC": "Coach.vacc",
+    "VACC": "Truck.vacc",
     "EngineOnlyMode": false,
     "StartStop": {
       "Enabled": true,
diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng
index 13a029772622b9bca036e6b4425af83eee515130..9e3015efdd65dd6ce5e881088f9b073e6506f0e6 100644
--- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng	
+++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng	
@@ -1,9 +1,9 @@
 {
   "Header": {
-    "CreatedBy": "Terry Burns (cdfbee63-58c9-44d5-a649-9903ea7eb6b5)",
-    "Date": "13/01/2015 08:55:15",
-    "AppVersion": "2.0.4-beta",
-    "FileVersion": 2
+    "CreatedBy": " ()",
+    "Date": "17.06.2016 07:48:12",
+    "AppVersion": "2.2",
+    "FileVersion": 3
   },
   "Body": {
     "SavedInDeclMode": false,
@@ -11,15 +11,10 @@
     "Displacement": 7700.0,
     "IdlingSpeed": 600.0,
     "Inertia": 3.789,
-    "FullLoadCurves": [
-      {
-        "Path": "12t Delivery Truck.vfld",
-        "Gears": "0 - 99"
-      }
-    ],
+    "FullLoadCurve": "12t Delivery Truck.vfld",
     "FuelMap": "12t Delivery Truck.vmap",
-    "WHTC-Urban": 215.0,
-    "WHTC-Rural": 202.0,
-    "WHTC-Motorway": 204.0
+    "WHTC-Urban": 0.0,
+    "WHTC-Rural": 0.0,
+    "WHTC-Motorway": 0.0
   }
 }
\ No newline at end of file
diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx
index 9f1323dd1ec608bc36f203ee926cf9d7c0d7b53a..19b10889a85b6f2ac68bacc0b96d5578ba427c9c 100644
--- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx	
+++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx	
@@ -1,9 +1,9 @@
 {
   "Header": {
-    "CreatedBy": "Terry Burns (cdfbee63-58c9-44d5-a649-9903ea7eb6b5)",
-    "Date": "13/01/2015 08:55:19",
-    "AppVersion": "2.0.4-beta",
-    "FileVersion": 4
+    "CreatedBy": " ()",
+    "Date": "17.06.2016 08:12:24",
+    "AppVersion": "2.2",
+    "FileVersion": 5
   },
   "Body": {
     "SavedInDeclMode": false,
@@ -19,37 +19,43 @@
         "Ratio": 6.75,
         "LossMap": "Indirect Gear.vtlm",
         "TCactive": false,
-        "ShiftPolygon": "-"
+        "ShiftPolygon": "ShiftPolygons.vgbs",
+        "FullLoadCurve": "<NOFILE>"
       },
       {
         "Ratio": 3.6,
         "LossMap": "Indirect Gear.vtlm",
         "TCactive": false,
-        "ShiftPolygon": "-"
+        "ShiftPolygon": "ShiftPolygons.vgbs",
+        "FullLoadCurve": "<NOFILE>"
       },
       {
         "Ratio": 2.13,
         "LossMap": "Indirect Gear.vtlm",
         "TCactive": false,
-        "ShiftPolygon": "-"
+        "ShiftPolygon": "ShiftPolygons.vgbs",
+        "FullLoadCurve": "<NOFILE>"
       },
       {
         "Ratio": 1.39,
         "LossMap": "Indirect Gear.vtlm",
         "TCactive": false,
-        "ShiftPolygon": "-"
+        "ShiftPolygon": "ShiftPolygons.vgbs",
+        "FullLoadCurve": "<NOFILE>"
       },
       {
         "Ratio": 1.0,
         "LossMap": "Direct Gear.vtlm",
         "TCactive": false,
-        "ShiftPolygon": "-"
+        "ShiftPolygon": "ShiftPolygons.vgbs",
+        "FullLoadCurve": "<NOFILE>"
       },
       {
         "Ratio": 0.78,
         "LossMap": "Indirect Gear.vtlm",
         "TCactive": false,
-        "ShiftPolygon": "-"
+        "ShiftPolygon": "ShiftPolygons.vgbs",
+        "FullLoadCurve": "<NOFILE>"
       }
     ],
     "TqReserve": 20.0,
diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh
index 9dbf2131c66aeca5da3a93ef47cae77b902f2fbc..f7d8fe842b220a23478297a34810c54ca378c82d 100644
--- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh	
+++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh	
@@ -1,9 +1,9 @@
 {
   "Header": {
-    "CreatedBy": "Terry Burns (cdfbee63-58c9-44d5-a649-9903ea7eb6b5)",
-    "Date": "13/01/2015 08:55:12",
-    "AppVersion": "2.0.4-beta",
-    "FileVersion": 5
+    "CreatedBy": " ()",
+    "Date": "17.06.2016 07:50:47",
+    "AppVersion": "2.2",
+    "FileVersion": 7
   },
   "Body": {
     "SavedInDeclMode": false,
@@ -12,11 +12,10 @@
     "CurbWeightExtra": 0.0,
     "Loading": 0.0,
     "MassMax": 11.9,
-    "Cd": 0.6,
-    "CrossSecArea": 8.8,
+    "CdA": 5.28,
     "rdyn": 406.9297,
     "Rim": "15° DC Rims",
-    "CdCorrMode": "CdOfV",
+    "CdCorrMode": "Off",
     "CdCorrFile": "12t Delivery Truck.vcdv",
     "Retarder": {
       "Type": "None",
@@ -28,16 +27,16 @@
       "Axles": [
         {
           "Inertia": 6.0,
-          "Wheels": "245/70 R 19.5",
-          "AxleWeightShare": 0.0,
+          "Wheels": "245/70 R19.5",
+          "AxleWeightShare": 0.4,
           "TwinTyres": false,
           "RRCISO": 0.008343465,
           "FzISO": 20800.0
         },
         {
           "Inertia": 6.0,
-          "Wheels": "245/70 R 19.5",
-          "AxleWeightShare": 0.0,
+          "Wheels": "245/70 R19.5",
+          "AxleWeightShare": 0.6,
           "TwinTyres": true,
           "RRCISO": 0.00943769,
           "FzISO": 20800.0
diff --git a/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs b/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs
index d5551f7a00dcc7a93c7c373f04b27eec3f40dbc2..2fa74371cf429282d52cf85fb08df64808186476 100644
--- a/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs
+++ b/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs
@@ -60,7 +60,7 @@ namespace TUGraz.VectoCommon.Exceptions
 			LogManager.Flush();
 		}
 
-		protected VectoException(string message, Exception inner, params object[] args)
+		public VectoException(string message, Exception inner, params object[] args)
 			: base(string.Format(message, args), inner)
 		{
 			LogManager.Flush();
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index ffbf6bab3609efb177172eb292eee4d0d95d78c2..a780e644173c1d02879c364c919533101fc7dcd1 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -209,31 +209,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				if (!EmptyOrInvalidFileName(gearboxFile)) {
 					Gearbox = JSONInputDataFactory.ReadGearbox(Path.Combine(BasePath, gearboxFile));
 				}
-			} catch (Exception e) {
-				throw new VectoException("Failed to read Gearbox file.", e);
-			}
-			try {
+
 				var axleGear = Gearbox as IAxleGearInputData;
 				if (axleGear != null) {
 					AxleGear = axleGear;
 				}
-			} catch (Exception e) {
-				throw new VectoException("Failed to read AxleGear file.", e);
-			}
-			try {
+
 				Engine = JSONInputDataFactory.ReadEngine(
 					Path.Combine(BasePath, Body.GetEx(JsonKeys.Vehicle_EngineFile).Value<string>()));
-			} catch (Exception e) {
-				throw new VectoException("Failed to read Engine file.", e);
-			}
-			try {
+
 				var vehicleFile = Body.GetEx(JsonKeys.Vehicle_VehicleFile).Value<string>();
 				if (!EmptyOrInvalidFileName(vehicleFile)) {
 					VehicleData = JSONInputDataFactory.ReadJsonVehicle(
 						Path.Combine(BasePath, vehicleFile));
 				}
 			} catch (Exception e) {
-				throw new VectoException("Failed to read Vehicle file.", e);
+				throw new VectoException("Failed to read input data: {0}", e, e.Message);
 			}
 			var retarder = VehicleData as IRetarderInputData;
 			if (retarder != null) {
@@ -265,7 +256,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IVehicleEngineeringInputData VehicleInputData
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				if (VehicleData == null) {
@@ -277,7 +269,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IGearboxEngineeringInputData GearboxInputData
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				if (Gearbox == null) {
@@ -289,7 +282,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IAxleGearInputData AxleGearInputData
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				if (AxleGear == null) {
@@ -306,7 +300,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IEngineEngineeringInputData EngineInputData
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				if (Engine == null) {
@@ -333,7 +328,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IRetarderInputData RetarderInputData
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				if (Retarder == null) {
@@ -359,7 +355,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual IList<ICycleData> Cycles
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				var retVal = new List<ICycleData>();
@@ -467,7 +464,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual DataTable AccelerationCurve
 		{
-			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
+			[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
+				"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
 			get
 			{
 				var acceleration = Body[JsonKeys.DriverData_AccelerationCurve];
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
index a0460d71682da51e88b6f6c875553976729d44b2..0fb97dd10f5cfe7d1bc119e6cbe7bae7fe93d413 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
@@ -173,12 +173,17 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 				WarnEngineeringMode("AuxData");
 			}
 
-			return auxInputData.Auxiliaries.Select(a => new VectoRunData.AuxData {
-				ID = a.ID,
-				Technology = a.Technology,
-				TechList = a.TechList.DefaultIfNull(Enumerable.Empty<string>()).ToArray(),
-				DemandType = AuxiliaryDemandType.Mapping,
-				Data = new AuxiliaryData(a, a.ID) //AuxiliaryData.Create(a.DemandMap)
+			return auxInputData.Auxiliaries.Select(a => {
+				if (a.DemandMap == null) {
+					throw new VectoSimulationException("Demand Map for auxiliary {0} {1} required", a.ID, a.Technology);
+				}
+				return new VectoRunData.AuxData {
+					ID = a.ID,
+					Technology = a.Technology,
+					TechList = a.TechList.DefaultIfNull(Enumerable.Empty<string>()).ToArray(),
+					DemandType = AuxiliaryDemandType.Mapping,
+					Data = new AuxiliaryData(a, a.ID) //AuxiliaryData.Create(a.DemandMap)
+				};
 			}).Concat(new VectoRunData.AuxData { ID = "", DemandType = AuxiliaryDemandType.Direct }.ToEnumerable()).ToList();
 		}
 
diff --git a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs
index 443e5aa264ced4cbc042401dfa5b0aa6d276da29..20daafe9d14d2732160336147022e983662333c6 100644
--- a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs
@@ -86,7 +86,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries
 				var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
 					(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
 				Assert.AreEqual(6086.9321, (torque * engineSpeed).Value(), 1e-3);
-				busAux.CommitSimulationStep(modalData);
+				busAux.DoWriteModalResults(modalData);
 			}
 
 			Assert.AreEqual(79.303, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);
@@ -98,7 +98,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries
 				var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
 					(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
 				Assert.AreEqual(8954.1396, (torque * engineSpeed).Value(), 1e-3);
-				busAux.CommitSimulationStep(modalData);
+				busAux.DoWriteModalResults(modalData);
 			}
 
 			Assert.AreEqual(82.5783, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);
@@ -110,7 +110,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries
 				var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed,
 					(internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed);
 				Assert.AreEqual(6086.9321, (torque * engineSpeed).Value(), 1e-3);
-				busAux.CommitSimulationStep(modalData);
+				busAux.DoWriteModalResults(modalData);
 			}
 
 			Assert.AreEqual(162.4654, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);