diff --git a/VECTO/GUI/GearboxForm.vb b/VECTO/GUI/GearboxForm.vb
index 2594175e17b3011f43071aee38bd9d3b2f8d5aa4..2353480e692b74a97bc4662ee686ee0def09890e 100644
--- a/VECTO/GUI/GearboxForm.vb
+++ b/VECTO/GUI/GearboxForm.vb
@@ -911,7 +911,8 @@ Public Class GearboxForm
 			If (vehicle.Axles.Count < 2) Then
 				Return Nothing
 			End If
-			rDyn = DeclarationData.Wheels.Lookup(vehicle.Axles(1).Wheels).DynamicTyreRadius
+             'TODO: 
+			rDyn = DeclarationData.Wheels.Lookup(vehicle.Axles(1).Tyre.Dimension).DynamicTyreRadius
 		End If
 		If (rDyn.IsEqual(0)) Then
 			Return Nothing
diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb
index bb1c333c168a6844606e54265e971311ec7ab580..cf2f1dd2e6d0cce2bdd1aa04cd3c3588fbec32e3 100644
--- a/VECTO/GUI/VehicleForm.vb
+++ b/VECTO/GUI/VehicleForm.vb
@@ -382,12 +382,12 @@ Public Class VehicleForm
 		For Each a0 In vehicle.Axles
 			i += 1
 			If Cfg.DeclMode Then
-				Dim inertia As Double = DeclarationData.Wheels.Lookup(a0.Wheels).Inertia.Value()
-				LvRRC.Items.Add(CreateListViewItem(i, Double.NaN, a0.TwinTyres, a0.RollResistanceCoefficient,
-													a0.TyreTestLoad.Value(), a0.Wheels, inertia, a0.AxleType))
+				Dim inertia As Double = DeclarationData.Wheels.Lookup(a0.Tyre.Dimension).Inertia.Value()
+				LvRRC.Items.Add(CreateListViewItem(i, Double.NaN, a0.TwinTyres, a0.Tyre.RollResistanceCoefficient,
+													a0.Tyre.TyreTestLoad.Value(), a0.Tyre.Dimension, inertia, a0.AxleType))
 			Else
-				LvRRC.Items.Add(CreateListViewItem(i, a0.AxleWeightShare, a0.TwinTyres, a0.RollResistanceCoefficient,
-													a0.TyreTestLoad.Value(), a0.Wheels, a0.Inertia.Value(), a0.AxleType))
+				LvRRC.Items.Add(CreateListViewItem(i, a0.AxleWeightShare, a0.TwinTyres, a0.Tyre.RollResistanceCoefficient,
+													a0.Tyre.TyreTestLoad.Value(), a0.Tyre.Dimension, a0.Tyre.Inertia.Value(), a0.AxleType))
 
 			End If
 		Next
@@ -477,11 +477,13 @@ Public Class VehicleForm
 			Dim a0 As AxleInputData = New AxleInputData()
 			a0.AxleWeightShare = entry.SubItems(AxleTbl.RelativeLoad).Text.ToDouble(0)
 			a0.TwinTyres = (entry.SubItems(AxleTbl.TwinTyres).Text = "yes")
-			a0.RollResistanceCoefficient = entry.SubItems(AxleTbl.RRC).Text.ToDouble(0)
-			a0.TyreTestLoad = entry.SubItems(AxleTbl.FzISO).Text.ToDouble(0).SI(Of Newton)()
-			a0.Wheels = entry.SubItems(AxleTbl.WheelsDimension).Text
-			a0.Inertia = entry.SubItems(AxleTbl.Inertia).Text.ToDouble(0).SI(Of KilogramSquareMeter)()
-			a0.AxleType = entry.SubItems(AxleTbl.AxleType).Text.ParseEnum(Of AxleType)()
+		    a0.AxleType = entry.SubItems(AxleTbl.AxleType).Text.ParseEnum(Of AxleType)()
+            dim tyre as TyreInputData = New TyreInputData()
+		    tyre.RollResistanceCoefficient = entry.SubItems(AxleTbl.RRC).Text.ToDouble(0)
+		    tyre.TyreTestLoad = entry.SubItems(AxleTbl.FzISO).Text.ToDouble(0).SI(Of Newton)()
+		    tyre.Dimension = entry.SubItems(AxleTbl.WheelsDimension).Text
+		    tyre.Inertia = entry.SubItems(AxleTbl.Inertia).Text.ToDouble(0).SI(Of KilogramSquareMeter)()
+			a0.Tyre = tyre
 			veh.Axles.Add(a0)
 		Next
 
diff --git a/VECTO/OutputData/JSONFileWriter.vb b/VECTO/OutputData/JSONFileWriter.vb
index c32017cb102b8936f0a48a545090eaa45d91fe47..35935860691cf18f494bf1713dabef4667dfc8dc 100644
--- a/VECTO/OutputData/JSONFileWriter.vb
+++ b/VECTO/OutputData/JSONFileWriter.vb
@@ -224,12 +224,12 @@ Public Class JSONFileWriter
 				{"AxleConfig", New Dictionary(Of String, Object) From {
 				{"Type", vehicle.AxleConfiguration.GetName()},
 				{"Axles", From axle In vehicle.Axles Select New Dictionary(Of String, Object) From {
-				{"Inertia", axle.Inertia.Value()},
-				{"Wheels", axle.Wheels},
+				{"Inertia", axle.Tyre.Inertia.Value()},
+				{"Wheels", axle.Tyre.Dimension},
 				{"AxleWeightShare", axle.AxleWeightShare},
 				{"TwinTyres", axle.TwinTyres},
-				{"RRCISO", axle.RollResistanceCoefficient},
-				{"FzISO", axle.TyreTestLoad.Value()},
+				{"RRCISO", axle.Tyre.RollResistanceCoefficient},
+				{"FzISO", axle.Tyre.TyreTestLoad.Value()},
 				{"Type", axle.AxleType.ToString()}
 				}}}}}
 
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index e14e0b86806779bd7a4d75d020efdee436e9b22e..f1e54242a13f92abc131d48fd883b06430aebb49 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -189,12 +189,6 @@ namespace TUGraz.VectoCommon.InputData
 
 	public interface IAxleDeclarationInputData
 	{
-		/// <summary>
-		/// P108  
-		/// cf. VECTO Input Parameters.xlsx
-		/// </summary>
-		string Wheels { get; }
-
 		/// <summary>
 		/// P045
 		/// cf. VECTO Input Parameters.xlsx
@@ -203,6 +197,17 @@ namespace TUGraz.VectoCommon.InputData
 
 		AxleType AxleType { get; }
 
+		ITyreDeclarationInputData Tyre { get; }
+	}
+
+	public interface ITyreDeclarationInputData : IComponentInputData
+	{
+		/// <summary>
+		/// P108  
+		/// cf. VECTO Input Parameters.xlsx
+		/// </summary>
+		string Dimension { get; }
+
 		/// <summary>
 		/// P046
 		/// cf. VECTO Input Parameters.xlsx
diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
index c0c5c370a01ef71f6e420a763b1b11573ce5d249..8f9e4460a5aec278ae134addcf1b800a8db88b55 100644
--- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
@@ -142,6 +142,11 @@ namespace TUGraz.VectoCommon.InputData
 		/// </summary>
 		double AxleWeightShare { get; }
 
+		new ITyreEngineeringInputData Tyre { get; }
+	}
+
+	public interface ITyreEngineeringInputData : ITyreDeclarationInputData
+	{
 		/// <summary>
 		/// P048
 		/// cf. VECTO Input Parameters.xlsx
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index 4bcc058941df0889914b0718a786767cd26683ef..0f44e5907db96318c92c2d05b069cd56081ffb41 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -158,18 +158,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			return
 				Body.GetEx(JsonKeys.Vehicle_AxleConfiguration).GetEx(JsonKeys.Vehicle_AxleConfiguration_Axles).Select(
 					(axle, idx) => new AxleInputData {
-						SourceType = DataSourceType.JSONFile,
-						Source = Source,
-						Inertia = axle.GetEx<double>(JsonKeys.Vehicle_Axles_Inertia).SI<KilogramSquareMeter>(),
-						Wheels = axle.GetEx<string>(JsonKeys.Vehicle_Axles_Wheels),
 						TwinTyres = axle.GetEx<bool>(JsonKeys.Vehicle_Axles_TwinTyres),
-						RollResistanceCoefficient = axle.GetEx<double>(JsonKeys.Vehicle_Axles_RollResistanceCoefficient),
-						TyreTestLoad = axle.GetEx<double>(JsonKeys.Vehicle_Axles_TyreTestLoad).SI<Newton>(),
 						AxleWeightShare = axle.GetEx<double>("AxleWeightShare"),
-						AxleType =
-							axle["Type"] != null
+						AxleType = axle["Type"] != null
 								? axle.GetEx<string>("Type").ParseEnum<AxleType>()
-								: (idx == 1 ? AxleType.VehicleDriven : AxleType.VehicleNonDriven)
+								: (idx == 1 ? AxleType.VehicleDriven : AxleType.VehicleNonDriven),
+						Tyre = new TyreInputData() {
+							SourceType = DataSourceType.JSONFile,
+							Source = Source,
+							Inertia = axle.GetEx<double>(JsonKeys.Vehicle_Axles_Inertia).SI<KilogramSquareMeter>(),
+							Dimension = axle.GetEx<string>(JsonKeys.Vehicle_Axles_Wheels),
+							RollResistanceCoefficient = axle.GetEx<double>(JsonKeys.Vehicle_Axles_RollResistanceCoefficient),
+							TyreTestLoad = axle.GetEx<double>(JsonKeys.Vehicle_Axles_TyreTestLoad).SI<Newton>(),
+						}
 					});
 		}
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs
index b2c8e7c15e92f90ba1ee8550081b1b2ca38e40f1..1fadee42c387e8536c84b15d1bd79557baeaa94e 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/XMLDeclarationVehicleDataProvider.cs
@@ -138,13 +138,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
 					var dimension = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_Dimension), Manager);
 					var rollResistance = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_RRCDeclared), Manager);
 					var tyreTestLoad = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_FzISO), Manager);
+					var certirficationNumber = tyre.SelectSingleNode(Helper.NSPrefix(XMLNames.Component_CertificationNumber), Manager);
 					retVal[axleNumber - 1] = new AxleInputData {
 						AxleType = axleType == null ? AxleType.VehicleNonDriven : axleType.Value.ParseEnum<AxleType>(),
 						TwinTyres = twinTyres != null && XmlConvert.ToBoolean(twinTyres.Value),
 						Steered = steered != null && XmlConvert.ToBoolean(steered.Value),
-						TyreTestLoad = tyreTestLoad == null ? null : tyreTestLoad.Value.ToDouble().SI<Newton>(),
-						RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.Value.ToDouble(),
-						Wheels = dimension == null ? null : dimension.Value,
+						Tyre = new TyreInputData() { 
+							TyreTestLoad = tyreTestLoad == null ? null : tyreTestLoad.Value.ToDouble().SI<Newton>(),
+							RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.Value.ToDouble(),
+							Dimension = dimension == null ? null : dimension.Value,
+							CertificationNumber = certirficationNumber == null ? null : certirficationNumber.Value,
+							CertificationMethod = CertificationMethod.Measured
+						}
 					};
 				}
 				return retVal;
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs
index a0bc6cb48c0b61e2edb3d7768048515148972d08..8a3c606876260db20c7cd74086722becddd43983 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs
@@ -213,11 +213,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering
 					AxleType = axleType == null ? AxleType.VehicleNonDriven : axleType.Value.ParseEnum<AxleType>(),
 					TwinTyres = twinTyres != null && XmlConvert.ToBoolean(twinTyres.Value),
 					Steered = steered != null && XmlConvert.ToBoolean(steered.Value),
-					TyreTestLoad = tyreTestLoad == null ? null : tyreTestLoad.ValueAsDouble.SI<Newton>(),
-					RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.ValueAsDouble,
-					Wheels = dimension == null ? null : dimension.Value,
 					AxleWeightShare = weightShare == null ? 0 : weightShare.ValueAsDouble,
-					Inertia = inertia == null ? null : inertia.ValueAsDouble.SI<KilogramSquareMeter>()
+					Tyre = new TyreInputData() {
+						TyreTestLoad = tyreTestLoad == null ? null : tyreTestLoad.ValueAsDouble.SI<Newton>(),
+						RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.ValueAsDouble,
+						Dimension = dimension == null ? null : dimension.Value,
+						Inertia = inertia == null ? null : inertia.ValueAsDouble.SI<KilogramSquareMeter>(),
+					}
 				};
 			}
 			return retVal;
diff --git a/VectoCore/VectoCore/InputData/Impl/InputData.cs b/VectoCore/VectoCore/InputData/Impl/InputData.cs
index d14a8312dcf3eacad9808e9ec4442c431932db9d..968031b99718288eaa4a62b2fb85811c94beff45 100644
--- a/VectoCore/VectoCore/InputData/Impl/InputData.cs
+++ b/VectoCore/VectoCore/InputData/Impl/InputData.cs
@@ -87,6 +87,25 @@ namespace TUGraz.VectoCore.InputData.Impl
 	}
 
 	public class AxleInputData : IAxleEngineeringInputData
+	{
+		public bool TwinTyres { get; internal set; }
+
+		public bool Steered { get; internal set; }
+
+		public AxleType AxleType { get; internal set; }
+
+		ITyreDeclarationInputData IAxleDeclarationInputData.Tyre
+		{
+			get { return Tyre; }
+		}
+
+		public ITyreEngineeringInputData Tyre { get; internal set; }
+
+
+		public double AxleWeightShare { get; internal set; }
+	}
+
+	public class TyreInputData : ITyreEngineeringInputData
 	{
 		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
 			"CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
@@ -94,20 +113,26 @@ namespace TUGraz.VectoCore.InputData.Impl
 
 		public string Source { get; internal set; }
 
-		public string Wheels { get; internal set; }
+		public bool SavedInDeclarationMode { get; internal set; }
 
-		public bool TwinTyres { get; internal set; }
+		public string Manufacturer { get; internal set; }
 
-		public bool Steered { get; internal set; }
+		public string Model { get; internal set; }
 
-		public AxleType AxleType { get; internal set; }
+		public string Date { get; internal set; }
+
+		public CertificationMethod CertificationMethod { get; internal set; }
+
+		public string CertificationNumber { get; internal set; }
+
+		public string DigestValue { get; internal set; }
+
+		public string Dimension { get; internal set; }
 
 		public double RollResistanceCoefficient { get; internal set; }
 
 		public Newton TyreTestLoad { get; internal set; }
 
-		public double AxleWeightShare { get; internal set; }
-
 		public KilogramSquareMeter Inertia { get; internal set; }
 	}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
index 08d226acfd4aba8319adbdfa0b5443d112628d0a..9361698430f7d5736bf0ebab76298c6711028083 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs
@@ -98,7 +98,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			retVal.Loading = loading;
 			retVal.DynamicTyreRadius =
 				data.Axles.Where(axle => axle.AxleType == AxleType.VehicleDriven)
-					.Select(da => DeclarationData.Wheels.Lookup(da.Wheels).DynamicTyreRadius)
+					.Select(da => DeclarationData.Wheels.Lookup(da.Tyre.Dimension).DynamicTyreRadius)
 					.Average();
 			retVal.CargoVolume = mission.MissionType != MissionType.Construction ? mission.TotalCargoVolume : 0.SI<CubicMeter>();
 
@@ -112,13 +112,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			for (var i = 0; i < mission.AxleWeightDistribution.Length; i++) {
 				var axleInput = axles[i];
 				var axle = new Axle {
-					WheelsDimension = axleInput.Wheels,
+					WheelsDimension = axleInput.Tyre.Dimension,
 					AxleType = axleInput.AxleType,
 					AxleWeightShare = mission.AxleWeightDistribution[i],
 					TwinTyres = axleInput.TwinTyres,
-					RollResistanceCoefficient = axleInput.RollResistanceCoefficient,
-					TyreTestLoad = axleInput.TyreTestLoad,
-					Inertia = DeclarationData.Wheels.Lookup(axleInput.Wheels.RemoveWhitespace()).Inertia,
+					RollResistanceCoefficient = axleInput.Tyre.RollResistanceCoefficient,
+					TyreTestLoad = axleInput.Tyre.TyreTestLoad,
+					Inertia = DeclarationData.Wheels.Lookup(axleInput.Tyre.Dimension.RemoveWhitespace()).Inertia,
 				};
 				axleData.Add(axle);
 			}
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index 2ce233f8e076f43d01e74511b30a3e29f2096744..a235697d96900e52d34dbfe390a3588cf385509b 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -62,12 +62,12 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			var axles = data.Axles;
 
 			retVal.AxleData = axles.Select(axle => new Axle {
-				WheelsDimension = axle.Wheels,
-				Inertia = axle.Inertia,
+				WheelsDimension = axle.Tyre.Dimension,
+				Inertia = axle.Tyre.Inertia,
 				TwinTyres = axle.TwinTyres,
-				RollResistanceCoefficient = axle.RollResistanceCoefficient,
+				RollResistanceCoefficient = axle.Tyre.RollResistanceCoefficient,
 				AxleWeightShare = axle.AxleWeightShare,
-				TyreTestLoad = axle.TyreTestLoad,
+				TyreTestLoad = axle.Tyre.TyreTestLoad,
 				AxleType = axle.AxleType,
 				//Wheels = axle.WheelsStr
 			}).ToList();
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs
index 2e04f525689a82178783f3351d2053fd4125560c..0c5c8112f8a52c061e6d737e1301b8e8bc0ae0f4 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs
@@ -312,7 +312,7 @@ namespace TUGraz.VectoCore.OutputData.XML
 						i == 1 ? AxleType.VehicleDriven.ToString() : AxleType.VehicleNonDriven.ToString()),
 					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_TwinTyres_Attr, axle.TwinTyres),
 					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Steered, i == 0),
-					CreateTyre(axle)
+					CreateTyre(axle.Tyre)
 					));
 			}
 
@@ -322,17 +322,17 @@ namespace TUGraz.VectoCore.OutputData.XML
 				);
 		}
 
-		private XElement CreateTyre(IAxleDeclarationInputData axle)
+		private XElement CreateTyre(ITyreDeclarationInputData tyre)
 		{
-			var id = CreateIdString(string.Format("TYRE-{0}", axle.Wheels).Replace("/", "_"));
+			var id = CreateIdString(string.Format("TYRE-{0}", tyre.Dimension).Replace("/", "_"));
 
 			return new XElement(tns + "Tyre",
 				new XElement(tns + XMLNames.ComponentDataWrapper,
 					new XAttribute(XMLNames.Component_ID_Attr, id),
-					GetDefaultComponentElements(string.Format("TYRE-{0}", axle.Wheels), axle.Wheels),
-					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Dimension, axle.Wheels),
-					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_RRCDeclared, axle.RollResistanceCoefficient.ToXMLFormat(4)),
-					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_FzISO, axle.TyreTestLoad.Value().ToXMLFormat(0))
+					GetDefaultComponentElements(string.Format("TYRE-{0}", tyre.Dimension), tyre.Dimension),
+					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Dimension, tyre.Dimension),
+					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_RRCDeclared, tyre.RollResistanceCoefficient.ToXMLFormat(4)),
+					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_FzISO, tyre.TyreTestLoad.Value().ToXMLFormat(0))
 					),
 				AddSignatureDummy(id));
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/XMLEngineeringWriter.cs b/VectoCore/VectoCore/OutputData/XML/XMLEngineeringWriter.cs
index acc2e46aea864f98a09417555c8ae41ecda5a42b..2bfb4dc48906f201af74774826db9255bd08f932 100644
--- a/VectoCore/VectoCore/OutputData/XML/XMLEngineeringWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/XMLEngineeringWriter.cs
@@ -358,18 +358,18 @@ namespace TUGraz.VectoCore.OutputData.XML
 				var axle = axleData[i];
 				axles.Add(new XElement(tns + XMLNames.AxleWheels_Axles_Axle,
 					new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, i + 1),
-					GetDefaultComponentElements(axle.Wheels),
+					GetDefaultComponentElements(axle.Tyre.Dimension),
 					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_AxleType,
 						i == 1 ? AxleType.VehicleDriven.ToString() : AxleType.VehicleNonDriven.ToString()),
 					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_TwinTyres_Attr, axle.TwinTyres),
 					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Steered, i == 0),
-					string.IsNullOrWhiteSpace(axle.Wheels)
+					string.IsNullOrWhiteSpace(axle.Tyre.Dimension)
 						? null
-						: new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Dimension, axle.Wheels),
-					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_RRCISO, axle.RollResistanceCoefficient),
-					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_FzISO, axle.TyreTestLoad.Value()),
+						: new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Dimension, axle.Tyre.Dimension),
+					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_RRCISO, axle.Tyre.RollResistanceCoefficient),
+					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_FzISO, axle.Tyre.TyreTestLoad.Value()),
 					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_WeightShare, axle.AxleWeightShare),
-					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Inertia, axle.Inertia.Value()),
+					new XElement(tns + XMLNames.AxleWheels_Axles_Axle_Inertia, axle.Tyre.Inertia.Value()),
 					i == 1
 						? new XElement(tns + XMLNames.AxleWheels_Axles_Axle_DynamicTyreRadius, data.DynamicTyreRadius.Value() * 1000)
 						: null));
diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs
index 3c32223a657be38d46f90adfc5fdefc1b8ad1d31..929de813d7be1196ef47eb89adea42026b840633 100644
--- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputTest.cs
@@ -181,13 +181,17 @@ namespace TUGraz.VectoCore.Tests.XML
 
 			var axles = vehicleDataProvider.Axles;
 
-			Assert.AreEqual("315/70 R22.5", axles[0].Wheels);
-			Assert.AreEqual(0.0055, axles[0].RollResistanceCoefficient);
-			Assert.AreEqual(31300, axles[0].TyreTestLoad.Value());
-
-			Assert.AreEqual("315/70 R22.5", axles[1].Wheels);
-			Assert.AreEqual(0.0063, axles[1].RollResistanceCoefficient);
-			Assert.AreEqual(31300, axles[1].TyreTestLoad.Value());
+			var tyre = axles[0].Tyre;
+			Assert.AreEqual("315/70 R22.5",tyre.Dimension);
+			Assert.AreEqual(0.0055, tyre.RollResistanceCoefficient);
+			Assert.AreEqual(31300, tyre.TyreTestLoad.Value());
+			Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre.CertificationNumber);
+
+			tyre = axles[1].Tyre;
+			Assert.AreEqual("315/70 R22.5", tyre.Dimension);
+			Assert.AreEqual(0.0063, tyre.RollResistanceCoefficient);
+			Assert.AreEqual(31300, tyre.TyreTestLoad.Value());
+			Assert.AreEqual("e12*0815/8051*2017/05E0000*00", tyre.CertificationNumber);
 		}
 
 		[TestCase]
diff --git a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs
index fa5fac683ec0150b0cf8fa956d902bd25a49e5bf..e99a2e5fdfdd2dd5350e4966db4dc4a4498ef73c 100644
--- a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs
@@ -211,13 +211,15 @@ namespace TUGraz.VectoCore.Tests.XML
 
 			var axles = vehicleDataProvider.Axles;
 
-			Assert.AreEqual("315/70 R22.5", axles[0].Wheels);
-			Assert.AreEqual(0.0055, axles[0].RollResistanceCoefficient);
-			Assert.AreEqual(31300, axles[0].TyreTestLoad.Value());
-
-			Assert.AreEqual("315/70 R22.5", axles[1].Wheels);
-			Assert.AreEqual(0.0063, axles[1].RollResistanceCoefficient);
-			Assert.AreEqual(31300, axles[1].TyreTestLoad.Value());
+			var tyre = axles[0].Tyre;
+			Assert.AreEqual("315/70 R22.5",tyre.Dimension);
+			Assert.AreEqual(0.0055, tyre.RollResistanceCoefficient);
+			Assert.AreEqual(31300, tyre.TyreTestLoad.Value());
+
+			tyre = axles[1].Tyre;
+			Assert.AreEqual("315/70 R22.5", tyre.Dimension);
+			Assert.AreEqual(0.0063, tyre.RollResistanceCoefficient);
+			Assert.AreEqual(31300, tyre.TyreTestLoad.Value());
 
 			//AssertHelper.Exception<VectoException>(() => { var tmp = vehicleDataProvider.Rim; });
 			Assert.AreEqual(0.488822, vehicleDataProvider.DynamicTyreRadius.Value());
diff --git a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs
index 638c9999d512f1ade37a8aa64cef12c84fb2a09a..f4bd5f582bc9145a84692481af6e0da291bf8580 100644
--- a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs
@@ -216,13 +216,15 @@ namespace TUGraz.VectoCore.Tests.XML
 
 			var axles = vehicleDataProvider.Axles;
 
-			Assert.AreEqual("315/70 R22.5", axles[0].Wheels);
-			Assert.AreEqual(0.0055, axles[0].RollResistanceCoefficient);
-			Assert.AreEqual(31300, axles[0].TyreTestLoad.Value());
-
-			Assert.AreEqual("315/70 R22.5", axles[1].Wheels);
-			Assert.AreEqual(0.0063, axles[1].RollResistanceCoefficient);
-			Assert.AreEqual(31300, axles[1].TyreTestLoad.Value());
+			var tyre = axles[0].Tyre;
+			Assert.AreEqual("315/70 R22.5", tyre.Dimension);
+			Assert.AreEqual(0.0055,tyre.RollResistanceCoefficient);
+			Assert.AreEqual(31300,tyre.TyreTestLoad.Value());
+
+			tyre = axles[1].Tyre;
+			Assert.AreEqual("315/70 R22.5", tyre.Dimension);
+			Assert.AreEqual(0.0063, tyre.RollResistanceCoefficient);
+			Assert.AreEqual(31300, tyre.TyreTestLoad.Value());
 
 			//AssertHelper.Exception<VectoException>(() => { var tmp = vehicleDataProvider.Rim; });
 			Assert.AreEqual(0.488822, vehicleDataProvider.DynamicTyreRadius.Value());