diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index 4e7e5c04f872d9e0526f32d956616f4ff53e10f7..93d13bd06f603c4c40c7df242c019e08e045e1ad 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -125,13 +125,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				axleData.Add(axle);
 			}
 
-			axleData.AddRange(mission.TrailerAxleWeightDistribution.Select(tmp => new Axle {
-				AxleType = AxleType.Trailer,
-				AxleWeightShare = tmp,
-				TwinTyres = DeclarationData.Trailer.TwinTyres,
-				RollResistanceCoefficient = DeclarationData.Trailer.RollResistanceCoefficient,
-				TyreTestLoad = DeclarationData.Trailer.TyreTestLoad.SI<Newton>(),
-				Inertia = DeclarationData.Wheels.Lookup(DeclarationData.Trailer.WheelsType).Inertia
+			axleData.AddRange(mission.TrailerAxleWeightDistribution.Select(tmp => {
+				var wheel = mission.TrailerType != TrailerType.None
+					? DeclarationData.StandardBodies.Lookup(mission.TrailerType.ToString()).Wheels
+					: DeclarationData.Wheels.Lookup(DeclarationData.Trailer.WheelsType);
+				return new Axle {
+					AxleType = AxleType.Trailer,
+					AxleWeightShare = tmp,
+					TwinTyres = DeclarationData.Trailer.TwinTyres,
+					RollResistanceCoefficient = DeclarationData.Trailer.RollResistanceCoefficient,
+					TyreTestLoad = DeclarationData.Trailer.TyreTestLoad.SI<Newton>(),
+					Inertia = wheel.Inertia
+				};
 			}));
 			retVal.AxleData = axleData;
 			return retVal;
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 3b72fa2aa8244fe4e3a833a6aa6e4ad094215be5..f351bc3df5901233fcbef4093b1738cc108196eb 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		private WHTCCorrection _whtcCorrection;
 		private AirDrag _airDrag;
 		private TorqueConverter _torqueConverter;
-		private StandardWeights _standardWeights;
+		private StandardBodies _standardBodies;
 		private Payloads _payloads;
 
 		public static Wheels Wheels
@@ -139,9 +139,9 @@ namespace TUGraz.VectoCore.Models.Declaration
 			}
 		}
 
-		public static StandardWeights StandardWeights
+		public static StandardBodies StandardBodies
 		{
-			get { return Instance()._standardWeights ?? (Instance()._standardWeights = new StandardWeights()); }
+			get { return Instance()._standardBodies ?? (Instance()._standardBodies = new StandardBodies()); }
 		}
 
 		public static PneumaticSystem PneumaticSystem
diff --git a/VectoCore/VectoCore/Models/Declaration/Segments.cs b/VectoCore/VectoCore/Models/Declaration/Segments.cs
index 07294080960e31fc0d65108f6237a9669e25d60f..892732d581769fa50d65145a18a5d8068e26ad4f 100644
--- a/VectoCore/VectoCore/Models/Declaration/Segments.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Segments.cs
@@ -108,7 +108,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			var missionTypes = Enum.GetValues(typeof(MissionType)).Cast<MissionType>();
 			var missions = new List<Mission>();
 			foreach (var missionType in missionTypes.Where(m => row.Field<string>(m.ToString()) != "-")) {
-				var body = DeclarationData.StandardWeights.Lookup(row.Field<string>("body"));
+				var body = DeclarationData.StandardBodies.Lookup(row.Field<string>("body"));
 
 				var trailerIsUsed = ShouldTrailerBeUsed(row, missionType);
 				var trailerField = row.Field<string>("trailer");
@@ -116,13 +116,13 @@ namespace TUGraz.VectoCore.Models.Declaration
 					? trailerField.ParseEnum<TrailerType>()
 					: TrailerType.None;
 				var trailer = trailerIsUsed
-					? DeclarationData.StandardWeights.Lookup(trailerField)
-					: DeclarationData.StandardWeights.Empty;
+					? DeclarationData.StandardBodies.Lookup(trailerField)
+					: DeclarationData.StandardBodies.Empty;
 
 				var semiTrailerField = row.Field<string>("semitrailer");
 				var semiTrailer = !string.IsNullOrWhiteSpace(semiTrailerField)
-					? DeclarationData.StandardWeights.Lookup(semiTrailerField)
-					: DeclarationData.StandardWeights.Empty;
+					? DeclarationData.StandardBodies.Lookup(semiTrailerField)
+					: DeclarationData.StandardBodies.Empty;
 
 				trailer += semiTrailer;
 
diff --git a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs b/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
similarity index 65%
rename from VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
rename to VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
index 44e0c5212450efd4ff5edb18ea8753147f0c2330..a47daf0ee7c6af5fb460766087c23db7e44e638d 100644
--- a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
+++ b/VectoCore/VectoCore/Models/Declaration/StandardBodies.cs
@@ -29,7 +29,6 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-using System.CodeDom;
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
@@ -39,8 +38,17 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.Declaration
 {
-	internal sealed class StandardWeight
+	internal sealed class StandardBody
 	{
+		public StandardBody(Kilogram curbWeight, Kilogram grossVehicleWeight, SquareMeter deltaCrossWindArea,
+			Wheels.WheelsEntry wheels)
+		{
+			CurbWeight = curbWeight;
+			GrossVehicleWeight = grossVehicleWeight;
+			DeltaCrossWindArea = deltaCrossWindArea;
+			Wheels = wheels;
+		}
+
 		public Kilogram CurbWeight;
 		public Kilogram GrossVehicleWeight;
 
@@ -51,13 +59,14 @@ namespace TUGraz.VectoCore.Models.Declaration
 
 		public SquareMeter DeltaCrossWindArea;
 
-		public static StandardWeight operator +(StandardWeight first, StandardWeight second)
+		public Wheels.WheelsEntry Wheels;
+
+		public static StandardBody operator +(StandardBody first, StandardBody second)
 		{
-			return new StandardWeight {
-				CurbWeight = first.CurbWeight + second.CurbWeight,
-				DeltaCrossWindArea = first.DeltaCrossWindArea + second.DeltaCrossWindArea,
-				GrossVehicleWeight = first.GrossVehicleWeight + second.GrossVehicleWeight
-			};
+			return new StandardBody(first.CurbWeight + second.CurbWeight,
+				first.GrossVehicleWeight + second.GrossVehicleWeight,
+				first.DeltaCrossWindArea + second.DeltaCrossWindArea,
+				null);
 		}
 	}
 
@@ -65,25 +74,23 @@ namespace TUGraz.VectoCore.Models.Declaration
 	/// Lookup Class for Standard Weights of Bodies, Trailers and Semitrailers.
 	/// Standard Weights include 
 	///		CurbWeight (=Empty Weight), 
-	///		Gross Vehicle Weight (=Maximum Allowed Weight), and 
-	///		MaxPayload.
+	///		Gross Vehicle Weight (=Maximum Allowed Weight),
+	///		MaxPayload,
+	///     DeltaCrossWindArea,
+	///     Wheels
 	/// </summary>
-	internal sealed class StandardWeights : LookupData<string, StandardWeight>
+	internal sealed class StandardBodies : LookupData<string, StandardBody>
 	{
 		private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.Body_Trailers_Weights.csv";
 
-		public StandardWeights()
+		public StandardBodies()
 		{
 			ParseData(ReadCsvResource(ResourceId));
 		}
 
-		public StandardWeight Empty = new StandardWeight {
-			CurbWeight = 0.SI<Kilogram>(),
-			GrossVehicleWeight = 0.SI<Kilogram>(),
-			DeltaCrossWindArea = 0.SI<SquareMeter>()
-		};
+		public StandardBody Empty = new StandardBody(0.SI<Kilogram>(), 0.SI<Kilogram>(), 0.SI<SquareMeter>(), null);
 
-		public override StandardWeight Lookup(string id)
+		public override StandardBody Lookup(string id)
 		{
 			if (string.IsNullOrWhiteSpace(id)) {
 				return Empty;
@@ -103,11 +110,13 @@ namespace TUGraz.VectoCore.Models.Declaration
 			Data = table.Rows.Cast<DataRow>()
 				.ToDictionary(
 					kv => kv.Field<string>("name"),
-					kv => new StandardWeight {
-						CurbWeight = kv.ParseDoubleOrGetDefault("curbmass").SI<Kilogram>(),
-						GrossVehicleWeight = kv.ParseDoubleOrGetDefault("maxgrossmass").SI<Kilogram>(),
-						DeltaCrossWindArea = kv.ParseDoubleOrGetDefault("deltacdxafortraileroperationinlonghaul").SI<SquareMeter>()
-					});
+					kv => new StandardBody(
+						kv.ParseDoubleOrGetDefault("curbmass").SI<Kilogram>(),
+						kv.ParseDoubleOrGetDefault("maxgrossmass").SI<Kilogram>(),
+						kv.ParseDoubleOrGetDefault("deltacdxafortraileroperationinlonghaul").SI<SquareMeter>(),
+						!string.IsNullOrWhiteSpace(kv.Field<string>("wheels"))
+							? DeclarationData.Wheels.Lookup(kv.Field<string>("wheels"))
+							: null));
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Declaration/Wheels.cs b/VectoCore/VectoCore/Models/Declaration/Wheels.cs
index a5f3f330cea319e0ec47f334244baf10e482fde8..dbc2aa5606bc5183a437c58423cb7cb62955cf00 100644
--- a/VectoCore/VectoCore/Models/Declaration/Wheels.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Wheels.cs
@@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			return base.Lookup(key.RemoveWhitespace());
 		}
 
-		protected override sealed void ParseData(DataTable table)
+		protected sealed override void ParseData(DataTable table)
 		{
 			Data = (from DataRow row in table.Rows
 				select new WheelsEntry {
diff --git a/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv b/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv
index 1fcd5eafa3359216dd9adfbdfce17d54b8c75fe7..4d88b72a97fec8927e5673d97b0b74f1e06e273c 100644
--- a/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv
+++ b/VectoCore/VectoCore/Resources/Declaration/Body_Trailers_Weights.csv
@@ -1,12 +1,12 @@
-name,curb mass,max gross mass,delta CdxA for trailer operation in long haul,remark
-#,[kg],[kg],[m²],
-B1,1600,-,-,---
-B2,1900,-,-,---
-B3,2000,-,-,---
-B4,2100,-,-,---
-B5,2200,-,-,"""B6"" changed to ""B5"" as ""old B5"" not applicable anymore"
-T1,3400,10500,1.1,
-T2,5400,18000,0.6,
-ST1,7500,24000,-,relevant for fully loaded is GVM of tractor semitrailer combination = 40000kg
-ST1-v2,7500,-,-,
-Dolly,2500,-,-,only relevant for EMS
+name,curb mass,max gross mass,delta CdxA for trailer operation in long haul,Wheels,remark
+#,[kg],[kg],[m²],,
+B1,1600,-,-,,---
+B2,1900,-,-,,---
+B3,2000,-,-,,---
+B4,2100,-,-,,---
+B5,2200,-,-,,"""B6"" changed to ""B5"" as ""old B5"" not applicable anymore"
+T1,3400,10500,1.1,235/75 R17.5,
+T2,5400,18000,0.6,385/65 R22.5,
+ST1,7500,24000,-,,relevant for fully loaded is GVM of tractor semitrailer combination = 40000kg
+ST1-v2,7500,-,-,,
+Dolly,2500,-,-,,only relevant for EMS
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 0cba10a87976ab43fddc2b935db165cfb358feb9..e7753b6634cc97b85afda16d4ccf36d4b82af243 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -142,7 +142,7 @@
     <Compile Include="Models\Declaration\PT1.cs" />
     <Compile Include="Models\Declaration\Rims.cs" />
     <Compile Include="Models\Declaration\Segments.cs" />
-    <Compile Include="Models\Declaration\StandardWeights.cs" />
+    <Compile Include="Models\Declaration\StandardBodies.cs" />
     <Compile Include="Models\Declaration\SteeringPump.cs" />
     <Compile Include="Models\Declaration\TorqueConverter.cs" />
     <Compile Include="Models\Declaration\VehicleClass.cs" />
diff --git a/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs b/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs
index de6b768412dc33f7d00c80e6a30471301610c840..450e460d615a5a416fff4da3e7d19e02f4e51d92 100644
--- a/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs
+++ b/VectoCore/VectoCoreTest/FileIO/VectoCSVFileTest.cs
@@ -48,11 +48,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
 		{
 			var table = VectoCSVFile.Read(@"TestData\test.csv");
 			Assert.AreEqual(3, table.Columns.Count);
-			Assert.IsTrue(new[] { "a", "b", "c" }.SequenceEqual(table.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+			CollectionAssert.AreEqual(new[] { "a", "b", "c" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
 			Assert.AreEqual(2, table.Rows.Count);
 
-			Assert.IsTrue(new[] { "1", "2", "3" }.SequenceEqual(table.Rows[0].ItemArray));
-			Assert.IsTrue(new[] { "4", "5", "6" }.SequenceEqual(table.Rows[1].ItemArray));
+			CollectionAssert.AreEqual(new[] { "1", "2", "3" }, table.Rows[0].ItemArray);
+			CollectionAssert.AreEqual(new[] { "4", "5", "6" }, table.Rows[1].ItemArray);
 		}
 
 		[Test]
@@ -60,9 +60,8 @@ namespace TUGraz.VectoCore.Tests.FileIO
 		{
 			var table = VectoCSVFile.Read(@"TestData\Components\Axle.vtlm");
 			Assert.AreEqual(3, table.Columns.Count);
-			Assert.IsTrue(
-				new[] { "Input Speed", "Input Torque", "Torque Loss" }.SequenceEqual(
-					table.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+			CollectionAssert.AreEqual(
+				new[] { "Input Speed", "Input Torque", "Torque Loss" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
 			Assert.AreEqual(285, table.Rows.Count);
 		}
 
@@ -72,12 +71,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var stream = "a,b,c\n1,2,3\n4,5,6".GetStream();
 			var table = VectoCSVFile.ReadStream(stream);
 
-			Assert.AreEqual(3, table.Columns.Count);
-			Assert.IsTrue(new[] { "a", "b", "c" }.SequenceEqual(table.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+			CollectionAssert.AreEqual(new[] { "a", "b", "c" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
 			Assert.AreEqual(2, table.Rows.Count);
 
-			Assert.IsTrue(new[] { "1", "2", "3" }.SequenceEqual(table.Rows[0].ItemArray));
-			Assert.IsTrue(new[] { "4", "5", "6" }.SequenceEqual(table.Rows[1].ItemArray));
+			CollectionAssert.AreEqual(new[] { "1", "2", "3" }, table.Rows[0].ItemArray);
+			CollectionAssert.AreEqual(new[] { "4", "5", "6" }, table.Rows[1].ItemArray);
 		}
 
 		[Test]
@@ -86,12 +84,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var stream = "1,2,3\n4,5,6".GetStream();
 			var table = VectoCSVFile.ReadStream(stream);
 
-			Assert.AreEqual(3, table.Columns.Count);
-			Assert.IsTrue(new[] { "0", "1", "2" }.SequenceEqual(table.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+			CollectionAssert.AreEqual(new[] { "0", "1", "2" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
 			Assert.AreEqual(2, table.Rows.Count);
 
-			Assert.IsTrue(new[] { "1", "2", "3" }.SequenceEqual(table.Rows[0].ItemArray));
-			Assert.IsTrue(new[] { "4", "5", "6" }.SequenceEqual(table.Rows[1].ItemArray));
+			CollectionAssert.AreEqual(new[] { "1", "2", "3" }, table.Rows[0].ItemArray);
+			CollectionAssert.AreEqual(new[] { "4", "5", "6" }, table.Rows[1].ItemArray);
 		}
 
 		[Test]
@@ -101,7 +98,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			var table = VectoCSVFile.ReadStream(stream);
 
 			Assert.AreEqual(3, table.Columns.Count);
-			Assert.IsTrue(new[] { "a", "b", "c" }.SequenceEqual(table.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+			CollectionAssert.AreEqual(new[] { "a", "b", "c" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
 			Assert.AreEqual(0, table.Rows.Count);
 		}
 
@@ -123,12 +120,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
                            4,5,6".GetStream();
 			var table = VectoCSVFile.ReadStream(stream);
 
-			Assert.AreEqual(3, table.Columns.Count);
-			Assert.IsTrue(new[] { "a", "b", "c" }.SequenceEqual(table.Columns.Cast<DataColumn>().Select(c => c.ColumnName)));
+			CollectionAssert.AreEqual(new[] { "a", "b", "c" }, table.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
 			Assert.AreEqual(2, table.Rows.Count);
 
-			Assert.IsTrue(new[] { "1", "2", "3" }.SequenceEqual(table.Rows[0].ItemArray));
-			Assert.IsTrue(new[] { "4", "5", "6" }.SequenceEqual(table.Rows[1].ItemArray));
+			CollectionAssert.AreEqual(new[] { "1", "2", "3" }, table.Rows[0].ItemArray);
+			CollectionAssert.AreEqual(new[] { "4", "5", "6" }, table.Rows[1].ItemArray);
 		}
 
 		[Test]
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
index d5c107b4ddc73c196086a83a8b852436e19140e6..d270790a3ba4458c7d273fd620fcb2ae98831e87 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
@@ -35,14 +35,16 @@ using System.IO;
 using System.Linq;
 using NUnit.Framework;
 using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
+using TUGraz.VectoCore.InputData.Reader.Impl;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Tests.Utils;
 using TUGraz.VectoCore.Utils;
-using CrossWindCorrectionMode = TUGraz.VectoCommon.Models.CrossWindCorrectionMode;
 
 namespace TUGraz.VectoCore.Tests.Models.Declaration
 {
@@ -144,7 +146,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 			Assert.AreEqual(expected, lookup, 1e-8);
 		}
 
-		[Test]
+		[TestCase]
 		public void WHTCLookupTestRegionalDelivery()
 		{
 			var expected = 1.02708700;
@@ -675,10 +677,10 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 		{
 			Assert.AreEqual(missionType, m.MissionType);
 			Assert.AreEqual(cosswindCorrection, m.CrossWindCorrection);
-			Assert.IsTrue(axleWeightDistribution.SequenceEqual(m.AxleWeightDistribution),
+			CollectionAssert.AreEqual(axleWeightDistribution, m.AxleWeightDistribution,
 				"Axle distribution not equal.\nexpected: {0}\nactual: {1}", string.Join(",", axleWeightDistribution),
 				string.Join(",", m.AxleWeightDistribution));
-			Assert.IsTrue(trailerAxleWeightDistribution.SequenceEqual(m.TrailerAxleWeightDistribution),
+			CollectionAssert.AreEqual(trailerAxleWeightDistribution, m.TrailerAxleWeightDistribution,
 				"Trailer axle distribution not equal.\nexpected: {0}\nactual: {1}", string.Join(",", trailerAxleWeightDistribution),
 				string.Join(",", m.TrailerAxleWeightDistribution));
 			Assert.AreEqual(bodyCurbWeight.SI<Kilogram>(), m.BodyCurbWeight);
@@ -725,5 +727,71 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 			EqualAcceleration(data, -20, 1, -1);
 			EqualAcceleration(data, 140, 0.5, -0.5);
 		}
+
+		[TestCase]
+		public void Declaration_WheelsForT1_Class2()
+		{
+			var dataProvider =
+				JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\12t Delivery Truck.vecto") as IDeclarationInputDataProvider;
+			var dataReader = new DeclarationModeVectoRunDataFactory(dataProvider, null);
+
+			var runs = dataReader.NextRun().ToList();
+			Assert.AreEqual(9, runs.Count);
+			var withT1 = new[] { 6.0, 6.0, 4.5 };
+			CollectionAssert.AreEqual(withT1, runs[0].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(withT1, runs[1].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(withT1, runs[2].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+
+			var bodyOnly = new[] { 6.0, 6.0 };
+			CollectionAssert.AreEqual(bodyOnly, runs[3].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[4].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[5].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[6].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[7].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[8].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+		}
+
+		[TestCase]
+		public void Declaration_WheelsForT2_Class4()
+		{
+			var dataProvider =
+				JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\Class4_40t_Long_Haul_Truck.vecto") as IDeclarationInputDataProvider;
+			var dataReader = new DeclarationModeVectoRunDataFactory(dataProvider, null);
+
+			var runs = dataReader.NextRun().ToList();
+			Assert.AreEqual(9, runs.Count);
+			var withT1 = new[] { 14.9, 14.9, 19.2, 19.2 };
+			CollectionAssert.AreEqual(withT1, runs[0].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(withT1, runs[1].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(withT1, runs[2].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+
+			var bodyOnly = new[] { 14.9, 14.9 };
+			CollectionAssert.AreEqual(bodyOnly, runs[3].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[4].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[5].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[6].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[7].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[8].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+		}
+
+		[TestCase]
+		public void Declaration_WheelsForDefault_Class5()
+		{
+			var dataProvider =
+				JSONInputDataFactory.ReadJsonJob(@"TestData\Jobs\40t_Long_Haul_Truck.vecto") as IDeclarationInputDataProvider;
+			var dataReader = new DeclarationModeVectoRunDataFactory(dataProvider, null);
+
+			var runs = dataReader.NextRun().ToList();
+			Assert.AreEqual(6, runs.Count);
+			var withT1 = new[] { 14.9, 14.9, 19.2, 19.2, 19.2 };
+			CollectionAssert.AreEqual(withT1, runs[0].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(withT1, runs[1].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(withT1, runs[2].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+
+			var bodyOnly = new[] { 14.9, 14.9, 19.2, 19.2, 19.2 };
+			CollectionAssert.AreEqual(bodyOnly, runs[3].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[4].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+			CollectionAssert.AreEqual(bodyOnly, runs[5].VehicleData.AxleData.Select(a => a.Inertia.Value()));
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Components/Class4_40t_Long_Haul_Truck.vveh b/VectoCore/VectoCoreTest/TestData/Components/Class4_40t_Long_Haul_Truck.vveh
new file mode 100644
index 0000000000000000000000000000000000000000..51ab56edcf2db8b19829f7cc1ab5b3bf5626687f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Components/Class4_40t_Long_Haul_Truck.vveh
@@ -0,0 +1,47 @@
+{
+  "Header": {
+    "CreatedBy": "Raphael Luz IVT TU-Graz (85407225-fc3f-48a8-acda-c84a05df6837)",
+    "Date": "29.07.2014 16:59:03",
+    "AppVersion": "2.0.4-beta",
+    "FileVersion": 7
+  },
+  "Body": {
+    "SavedInDeclMode": true,
+    "VehCat": "RigidTruck",
+    "CurbWeight": 7100.0,
+    "CurbWeightExtra": 0.0,
+    "Loading": 0.0,
+    "MassMax": 40.0,
+    "CdA": 6.2985,
+    "rdyn": 488.2675,
+    "Rim": "5° DC Rims",
+    "CdCorrMode": "CdofVdecl",
+    "CdCorrFile": "40t_Long_Haul_Truck.vcdv",
+    "Retarder": {
+      "Type": "Secondary",
+      "Ratio": 1.0,
+      "File": "Retarder.vrlm"
+    },
+    "AxleConfig": {
+      "Type": "4x2",
+      "Axles": [
+        {
+          "Inertia": 14.9,
+          "Wheels": "315/70 R22.5",
+          "AxleWeightShare": 0.5,
+          "TwinTyres": false,
+          "RRCISO": 0.00555,
+          "FzISO": 31300.0
+        },
+        {
+          "Inertia": 14.9,
+          "Wheels": "315/70 R22.5",
+          "AxleWeightShare": 0.5,
+          "TwinTyres": true,
+          "RRCISO": 0.00628,
+          "FzISO": 31300.0
+        }
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/Jobs/Class4_40t_Long_Haul_Truck.vecto b/VectoCore/VectoCoreTest/TestData/Jobs/Class4_40t_Long_Haul_Truck.vecto
new file mode 100644
index 0000000000000000000000000000000000000000..323213d04d8ae04b648b1011c3fffbe72fef4c26
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/Jobs/Class4_40t_Long_Haul_Truck.vecto
@@ -0,0 +1,70 @@
+{
+  "Header": {
+    "CreatedBy": "Raphael Luz IVT TU-Graz (85407225-fc3f-48a8-acda-c84a05df6837)",
+    "Date": "29.07.2014 16:59:08",
+    "AppVersion": "2.0.4-beta",
+    "FileVersion": 2
+  },
+  "Body": {
+    "SavedInDeclMode": true,
+    "VehicleFile": "../Components/Class4_40t_Long_Haul_Truck.vveh",
+    "EngineFile": "../Components/40t_Long_Haul_Truck.veng",
+    "GearboxFile": "../Components/40t_Long_Haul_Truck.vgbx",
+    "Cycles": [
+      "Long Haul",
+      "Regional Delivery"
+    ],
+    "Aux": [
+      {
+        "ID": "FAN",
+        "Type": "Fan",
+        "Path": "<NOFILE>",
+        "Technology": "Hydraulic driven - Constant displacement pump"
+      },
+      {
+        "ID": "STP",
+        "Type": "Steering pump",
+        "Path": "<NOFILE>",
+        "Technology": "Variable displacement"
+      },
+      {
+        "ID": "AC",
+        "Type": "HVAC",
+        "Path": "<NOFILE>",
+        "Technology": "Default"
+      },
+      {
+        "ID": "ES",
+        "Type": "Electric System",
+        "Path": "<NOFILE>",
+        "Technology": "Custom Technology List",
+        "TechList": []
+      },
+      {
+        "ID": "PS",
+        "Type": "Pneumatic System",
+        "Path": "<NOFILE>",
+        "Technology": "Default"
+      }
+    ],
+    "VACC": "<NOFILE>",
+    "EngineOnlyMode": false,
+    "StartStop": {
+      "Enabled": false,
+      "MaxSpeed": 5.0,
+      "MinTime": 5.0,
+      "Delay": 5
+    },
+    "LAC": {
+      "Enabled": true,
+      "Dec": -0.5,
+      "MinSpeed": 50.0
+    },
+    "OverSpeedEcoRoll": {
+      "Mode": "OverSpeed",
+      "MinSpeed": 50.0,
+      "OverSpeed": 5.0,
+      "UnderSpeed": 5.0
+    }
+  }
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs b/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs
index 442b3c699c1ba295e41f51ea62a7098393e966c4..1a3443823a656a5a61351790a25560f8ec6acc85 100644
--- a/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs
+++ b/VectoCore/VectoCoreTest/Utils/ResultFileHelper.cs
@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 						.ToList();
 				}
 
-				Assert.IsTrue(expectedCols.SequenceEqual(actualCols),
+				CollectionAssert.AreEqual(expectedCols, actualCols,
 					string.Format("Moddata {3}: Columns differ:\nExpected: {0}\nMissing:{1},\nToo Much:{2}",
 						", ".Join(expectedCols),
 						", ".Join(expectedCols.Except(actualCols)),
@@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			var actualCols = actual.Columns.Cast<DataColumn>().Select(x => x.ColumnName).OrderBy(x => x).ToList();
 			var expectedCols = expected.Columns.Cast<DataColumn>().Select(x => x.ColumnName).OrderBy(x => x).ToList();
 
-			Assert.IsTrue(expectedCols.SequenceEqual(actualCols),
+			CollectionAssert.AreEqual(expectedCols, actualCols,
 				string.Format("SUM FILE {3}: Columns differ:\nExpected: {0}\nMissing:{1},\nToo Much:{2}",
 					", ".Join(expectedCols),
 					", ".Join(expectedCols.Except(actualCols)),
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index abde5e81331a5a0373c2b7626fc919dcee64daa6..1c810bde42ea4da92cc5fed57d4195b342883011 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -214,6 +214,9 @@
     <None Include="TestData\Components\40t_Long_Haul_Truck_NoAng.vveh">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="TestData\Components\Class4_40t_Long_Haul_Truck.vveh">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Components\40t_Long_Haul_Truck AxleEfficiency.vgbx">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
@@ -960,6 +963,9 @@
     <None Include="TestData\Jobs\40t_Long_Haul_Truck_NoAng.vecto">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="TestData\Jobs\Class4_40t_Long_Haul_Truck.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Jobs\40t_Long_Haul_Truck with AxleEfficiency.vecto">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>