diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs
index 150b39398b0faec56f498fb2f9edc78f43c99893..d8b0f2f0aacfbbd861ec2d399228573b117f09c3 100644
--- a/VectoCore/VectoCore/Configuration/Constants.cs
+++ b/VectoCore/VectoCore/Configuration/Constants.cs
@@ -43,6 +43,8 @@ namespace TUGraz.VectoCore.Configuration
 
 		public static class Auxiliaries
 		{
+			public const string Prefix = "AUX_";
+
 			public static class IDs
 			{
 				public const string Fan = "FAN";
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index b2072fb3c0550293bca801894d1b5af075d63884..5726ab35655ef6f6168f73b2537034431e466b64 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -470,10 +470,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		{
 			var retVal = new List<AuxiliaryDataInputData>();
 			foreach (var aux in Body["Aux"] ?? Enumerable.Empty<JToken>()) {
-				var type = (AuxiliaryType)0;
-				try {
-					type = AuxiliaryTypeHelper.Parse(aux.GetEx<string>("Type"));
-				} catch (ArgumentOutOfRangeException) {}
+				var type = AuxiliaryTypeHelper.Parse(aux.GetEx<string>("Type"));
 
 				var auxData = new AuxiliaryDataInputData {
 					ID = aux.GetEx<string>("ID"),
@@ -573,10 +570,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 						aux.GetEx<string>("ID"));
 				}
 
-				var type = (AuxiliaryType)0;
-				try {
-					type = AuxiliaryTypeHelper.Parse(aux.GetEx<string>("Type"));
-				} catch (ArgumentOutOfRangeException) {}
+				var type = AuxiliaryTypeHelper.Parse(aux.GetEx<string>("Type"));
 
 				var auxData = new AuxiliaryDataInputData {
 					ID = aux.GetEx<string>("ID"),
diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/AuxiliaryDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/AuxiliaryDataReader.cs
index 47ba95d989897ddc8ed9804e754225ddcb23a88a..3237bc773b1a9ed346e2c5cf97478d88eb2c5ac6 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/AuxiliaryDataReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/AuxiliaryDataReader.cs
@@ -10,7 +10,7 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 {
-	public sealed class AuxiliaryDataReader
+	public static class AuxiliaryDataReader
 	{
 		public static AuxiliaryData Create(IAuxiliaryEngineeringInputData data)
 		{
@@ -34,7 +34,6 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 				var map = ReadAuxMap(id, table);
 
 				return new AuxiliaryData(transmissionRatio, efficiencyToEngine, efficiencyToSupply, map);
-				
 			} catch (FileNotFoundException e) {
 				throw new VectoException("Auxiliary file not found: " + fileName, e);
 			}
@@ -85,19 +84,13 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 
 		public static class Fields
 		{
-			/// <summary>
-			/// [1/min]
-			/// </summary>
+			/// <summary>[1/min]</summary>
 			public const string AuxSpeed = "Auxiliary speed";
 
-			/// <summary>
-			/// [kW]
-			/// </summary>
+			/// <summary>[kW]</summary>
 			public const string MechPower = "Mechanical power";
 
-			/// <summary>
-			/// [kW]
-			/// </summary>
+			/// <summary>[kW]</summary>
 			public const string SupplyPower = "Supply power";
 		}
 	}
diff --git a/VectoCore/VectoCore/Models/Declaration/AuxiliaryTypeHelper.cs b/VectoCore/VectoCore/Models/Declaration/AuxiliaryTypeHelper.cs
index 31a73f78d5bcd38017592d788635af74350649ee..3dc38204ca63f0b23e93b9893343ac66fb3abdf4 100644
--- a/VectoCore/VectoCore/Models/Declaration/AuxiliaryTypeHelper.cs
+++ b/VectoCore/VectoCore/Models/Declaration/AuxiliaryTypeHelper.cs
@@ -22,10 +22,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		public static AuxiliaryType Parse(string s)
 		{
 			AuxiliaryType aux;
-			if (StrToAux.TryGetValue(s, out aux))
-				return aux;
-
-			throw new ArgumentOutOfRangeException("s", s, "Could not parse auxiliary type string.");
+			return StrToAux.TryGetValue(s, out aux) ? aux : AuxiliaryType.Fan;
 		}
 
 		public static string ToString(AuxiliaryType t)
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxSupplyPowerReader.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxSupplyPowerReader.cs
index ad1dc7fa068d2183578f1baf8d0cee15bee61268..d5eb87ca328db6894fce02ff07e0b2fb22170559 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxSupplyPowerReader.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxSupplyPowerReader.cs
@@ -31,10 +31,9 @@
 
 using System.Collections.Generic;
 using System.Data;
-using System.Globalization;
-using System.Linq;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 {
@@ -48,13 +47,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		/// </summary>
 		public static Dictionary<string, Watt> GetAuxiliaries(this DataRow row)
 		{
-			return row.Table.Columns.Cast<DataColumn>()
-				.Where(col => {
-					var s = col.ColumnName;
-					return s[0] == 'A' && s[1] == 'u' && s[2] == 'x' && s[3] == '_';
-				})
-				.ToDictionary(col => "Aux_" + col.ColumnName.Substring(4).ToUpper(),
-					col => SIBase<Watt>.Create(double.Parse(row.Field<string>(col), CultureInfo.InvariantCulture) * Constants.Kilo));
+			var aux = new Dictionary<string, Watt>();
+			var cols = row.Table.Columns;
+			var auxLen = Constants.Auxiliaries.Prefix.Length;
+			for (var i = 0; i < cols.Count; i++) {
+				var c = cols[i].ColumnName.ToUpper();
+				if (c.Length >= auxLen && c.Substring(0, auxLen) == Constants.Auxiliaries.Prefix) {
+					aux[c.Substring(auxLen)] = (row.ParseDouble(i) * Constants.Kilo).SI<Watt>();
+				}
+			}
+			return aux;
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs
index 4056d61288a3efc3d51f731fef9a14ed6b943c26..82e5d44bb4f97ecece54c980879e1bc9bd399750 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs
@@ -29,15 +29,9 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System;
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
-using System.Data;
-using System.IO;
-using System.Linq;
-using System.Text;
 using TUGraz.VectoCommon.Exceptions;
-using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
@@ -49,13 +43,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 	public sealed class AuxiliaryData
 	{
 		[Required, Range(double.Epsilon, 1)]
-		public double EfficiencyToSupply { get; set; }
+		public double EfficiencyToSupply { get; private set; }
 
 		[Required, Range(double.Epsilon, double.MaxValue)]
-		public double TransmissionRatio { get; set; }
+		public double TransmissionRatio { get; private set; }
 
 		[Required, Range(double.Epsilon, 1)]
-		public double EfficiencyToEngine { get; set; }
+		public double EfficiencyToEngine { get; private set; }
 
 		[Required] private readonly DelaunayMap _map;
 
@@ -84,6 +78,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		/// <param name="data">The data.</param>
 		/// <param name="context">The validation context.</param>
 		/// <returns></returns>
+		// ReSharper disable once UnusedMember.Global
 		public static ValidationResult ValidateAuxMap(AuxiliaryData data, ValidationContext context)
 		{
 			var xValidationRules = new[] { new RangeAttribute(0, double.MaxValue) };
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
index 950d2c8f414317474f9f32968eebba533a137e45..883f245c7488f40b2679d581dd6646382ac68f10 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineAuxiliary.cs
@@ -34,6 +34,7 @@ using System.Collections.Generic;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -104,14 +105,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public void AddMapping(string auxId, AuxiliaryData data)
 		{
-			if (!DataBus.CycleData.LeftSample.AuxiliarySupplyPower.ContainsKey("Aux_" + auxId)) {
-				var error = string.Format("driving cycle does not contain column for auxiliary: {0}", auxId);
+			if (!DataBus.CycleData.LeftSample.AuxiliarySupplyPower.ContainsKey(auxId)) {
+				var error = string.Format("driving cycle does not contain column for auxiliary: {0}",
+					Constants.Auxiliaries.Prefix + auxId);
 				Log.Error(error);
 				throw new VectoException(error);
 			}
 
 			_auxDict[auxId] = speed => {
-				var powerSupply = DataBus.CycleData.LeftSample.AuxiliarySupplyPower["Aux_" + auxId];
+				var powerSupply = DataBus.CycleData.LeftSample.AuxiliarySupplyPower[auxId];
 				var nAuxiliary = speed * data.TransmissionRatio;
 				var powerAuxOut = powerSupply / data.EfficiencyToSupply;
 				var powerAuxIn = data.GetPowerDemand(nAuxiliary, powerAuxOut);