diff --git a/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs b/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs
index ce11e51e74dddc8983c374de3d64e046e428b595..ea62f4d299be43e83ee886f749636b5510394047 100644
--- a/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs
+++ b/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs
@@ -38,11 +38,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 	{
 		public JSONEngineDataV3(JObject data, string fileName) : base(data, fileName) {}
 
-		public virtual string ModelName
-		{
-			get { return Body.GetEx<string>(JsonKeys.Engine_ModelName); }
-		}
-
 		public virtual CubicMeter Displacement
 		{
 			get { return Body.GetEx<double>(JsonKeys.Engine_Displacement).SI().Cubic.Centi.Meter.Cast<CubicMeter>(); }
@@ -92,5 +87,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				return Body.GetEx<double>(JsonKeys.Engine_WHTC_Urban).SI().Gramm.Per.Kilo.Watt.Hour.Cast<KilogramPerWattSecond>();
 			}
 		}
+
+		public string Vendor
+		{
+			get { return "N/A"; }
+		}
+
+		public string MakeAndModel
+		{
+			get { return Body.GetEx<string>(JsonKeys.Engine_ModelName); }
+		}
+
+		public string Creator
+		{
+			get { return "N/A"; }
+		}
+
+		public string Date
+		{
+			get { return "N/A"; }
+		}
+
+		public string TypeId
+		{
+			get { return "N/A"; }
+		}
+
+		public string DigestValue
+		{
+			get { return "N/A"; }
+		}
+
+		public IntegrityStatus IntegrityStatus
+		{
+			get { return IntegrityStatus.Unknown; }
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
index 963d4b66a759f52cb7f59a165395d87c293a669f..92e4e3121e954496f9edf75e91bb71ebb8e0aee8 100644
--- a/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
+++ b/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
@@ -151,9 +151,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 
 		public virtual bool Enabled
 		{
-			get
-			{
-				return false; // TODO @@@
+			get { return false; // TODO @@@
 			}
 		}
 
@@ -190,5 +188,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		}
 
 		#endregion
+
+		public string Vendor
+		{
+			get { return "N/A"; }
+		}
+
+		public string MakeAndModel
+		{
+			get { return "N/A"; }
+		}
+
+		public string Creator
+		{
+			get { return "N/A"; }
+		}
+
+		public string Date
+		{
+			get { return "N/A"; }
+		}
+
+		public string TypeId
+		{
+			get { return "N/A"; }
+		}
+
+		public string DigestValue
+		{
+			get { return ""; }
+		}
+
+		public IntegrityStatus IntegrityStatus
+		{
+			get { return IntegrityStatus.Unknown; }
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index e974e469d56e4d2797c35e2613db07177779d498..3cc0f03bb882071d6583b90ffd6873288ea17074 100644
--- a/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -138,5 +138,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		}
 
 		#endregion
+
+		public string Vendor
+		{
+			get { return "N/A"; }
+		}
+
+		public string MakeAndModel
+		{
+			get { return "N/A"; }
+		}
+
+		public string Creator
+		{
+			get { return "N/A"; }
+		}
+
+		public string Date
+		{
+			get { return "N/A"; }
+		}
+
+		public string TypeId
+		{
+			get { return "N/A"; }
+		}
+
+		public string DigestValue
+		{
+			get { return ""; }
+		}
+
+		public IntegrityStatus IntegrityStatus
+		{
+			get { return IntegrityStatus.Unknown; }
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/InputData/Impl/InputData.cs b/VectoCore/InputData/Impl/InputData.cs
index 4838d09d0486f9a3d84d3527d6fa5d183015fb6b..c22f1741cbcc6a14029f3be2d6ca46001a21dfeb 100644
--- a/VectoCore/InputData/Impl/InputData.cs
+++ b/VectoCore/InputData/Impl/InputData.cs
@@ -62,8 +62,25 @@ namespace TUGraz.VectoCore.InputData.Impl
 
 	public class AxleInputData : IAxleInputData
 	{
+		public bool SavedInDeclarationMode
+		{
+			get { throw new System.NotImplementedException(); }
+		}
+
+		public string Vendor { get; internal set; }
+
 		public string MakeAndModel { get; internal set; }
 
+		public string Creator { get; internal set; }
+
+		public string Date { get; internal set; }
+
+		public string TypeId { get; internal set; }
+
+		public string DigestValue { get; internal set; }
+
+		public IntegrityStatus IntegrityStatus { get; internal set; }
+
 		public string Wheels { get; internal set; }
 
 		public bool TwinTyres { get; internal set; }
diff --git a/VectoCore/InputData/InputData.cs b/VectoCore/InputData/InputData.cs
index 98aa5bbf671ba4e9876b9dcf527605c3b3ab2398..03b598a80ffe73da8508182de68e01e695580ac8 100644
--- a/VectoCore/InputData/InputData.cs
+++ b/VectoCore/InputData/InputData.cs
@@ -27,10 +27,27 @@ namespace TUGraz.VectoCore.InputData
 		string JobName { get; }
 	}
 
-	public interface IVehicleInputData
+	public interface IComponentInputData
 	{
 		bool SavedInDeclarationMode { get; }
 
+		string Vendor { get; }
+
+		string MakeAndModel { get; }
+
+		string Creator { get; }
+
+		string Date { get; }
+
+		string TypeId { get; }
+
+		string DigestValue { get; }
+
+		IntegrityStatus IntegrityStatus { get; }
+	}
+
+	public interface IVehicleInputData : IComponentInputData
+	{
 		/// <summary>
 		/// P036
 		/// cf. VECTO Input Parameters.xlsx
@@ -113,12 +130,8 @@ namespace TUGraz.VectoCore.InputData
 		DataTable CrosswindCorrectionMap { get; }
 	}
 
-	public interface IRetarderInputData
+	public interface IRetarderInputData : IComponentInputData
 	{
-		bool SavedInDeclarationMode { get; }
-
-		string ModelName { get; }
-
 		/// <summary>
 		/// P052  
 		/// cf. VECTO Input Parameters.xlsx
@@ -139,10 +152,8 @@ namespace TUGraz.VectoCore.InputData
 		DataTable LossMap { get; }
 	}
 
-	public interface IAxleInputData
+	public interface IAxleInputData : IComponentInputData
 	{
-		string MakeAndModel { get; }
-
 		/// <summary>
 		/// P108  
 		/// cf. VECTO Input Parameters.xlsx
@@ -183,16 +194,8 @@ namespace TUGraz.VectoCore.InputData
 	}
 
 
-	public interface IGearboxInputData
+	public interface IGearboxInputData : IComponentInputData
 	{
-		bool SavedInDeclarationMode { get; }
-
-		/// <summary>
-		/// P075
-		/// cf. VECTO Input Parameters.xlsx
-		/// </summary>
-		string ModelName { get; }
-
 		/// <summary>
 		/// P076
 		/// cf. VECTO Input Parameters.xlsx
@@ -304,12 +307,8 @@ namespace TUGraz.VectoCore.InputData
 		bool TorqueConverterActive { get; }
 	}
 
-	public interface IAxleGearInputData
+	public interface IAxleGearInputData : IComponentInputData
 	{
-		bool SavedInDeclarationMode { get; }
-
-		string ModelName { get; }
-
 		/// <summary>
 		/// P078
 		/// cf. VECTO Input Parameters.xlsx
@@ -352,16 +351,8 @@ namespace TUGraz.VectoCore.InputData
 		DataTable TCData { get; }
 	}
 
-	public interface IEngineInputData
+	public interface IEngineInputData : IComponentInputData
 	{
-		bool SavedInDeclarationMode { get; }
-
-		/// <summary>
-		/// P059
-		/// cf. VECTO Input Parameters.xlsx
-		/// </summary>
-		string ModelName { get; }
-
 		/// <summary>
 		/// P061
 		/// cf. VECTO Input Parameters.xlsx
diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs
index f6a886d2149f454624a65b399afa5a967f9c15c9..d2c7e160d83562bedc8fd902aa10ce7cc2d6ccc0 100644
--- a/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs
@@ -15,7 +15,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 		{
 			var retVal = new VehicleData {
 				SavedInDeclarationMode = data.SavedInDeclarationMode,
-				VehicleCategory = data.VehicleCategory,
+				Vendor = data.Vendor,
+				MakeAndModel = data.MakeAndModel,
+				Creator = data.Creator,
+				Date = data.Date,
+				TypeId = data.TypeId,
+				DigestValue = data.DigestValue,
+				IntegrityStatus = data.IntegrityStatus,
 				AxleConfiguration = data.AxleConfiguration,
 				CurbWeight = data.CurbWeight,
 				//CurbWeigthExtra = data.CurbWeightExtra.SI<Kilogram>(),
@@ -35,6 +41,14 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 		internal RetarderData SetCommonRetarderData(IRetarderInputData data)
 		{
 			var retarder = new RetarderData {
+				SavedInDeclarationMode = data.SavedInDeclarationMode,
+				Vendor = data.Vendor,
+				MakeAndModel = data.MakeAndModel,
+				Creator = data.Creator,
+				Date = data.Date,
+				TypeId = data.TypeId,
+				DigestValue = data.DigestValue,
+				IntegrityStatus = data.IntegrityStatus,
 				Type = data.Type,
 			};
 			if (retarder.Type == RetarderData.RetarderType.Primary || retarder.Type == RetarderData.RetarderType.Secondary) {
@@ -48,7 +62,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 		{
 			var retVal = new CombustionEngineData {
 				SavedInDeclarationMode = data.SavedInDeclarationMode,
-				ModelName = data.ModelName,
+				Vendor = data.Vendor,
+				MakeAndModel = data.MakeAndModel,
+				Creator = data.Creator,
+				Date = data.Date,
+				TypeId = data.TypeId,
+				DigestValue = data.DigestValue,
+				IntegrityStatus = data.IntegrityStatus,
 				Displacement = data.Displacement,
 				IdleSpeed = data.IdleSpeed,
 				ConsumptionMap = FuelConsumptionMap.Create(data.FuelConsumptionMap),
@@ -63,16 +83,30 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 		{
 			return new GearboxData {
 				SavedInDeclarationMode = data.SavedInDeclarationMode,
-				ModelName = data.ModelName,
+				Vendor = data.Vendor,
+				MakeAndModel = data.MakeAndModel,
+				Creator = data.Creator,
+				Date = data.Date,
+				TypeId = data.TypeId,
+				DigestValue = data.DigestValue,
+				IntegrityStatus = data.IntegrityStatus,
 				Type = data.Type
 			};
 		}
 
-		internal AxleGearData CreateAxleGearData(IAxleGearInputData axleGear)
+		internal AxleGearData CreateAxleGearData(IAxleGearInputData data)
 		{
-			var axleLossMap = TransmissionLossMap.Create(axleGear.LossMap, axleGear.Ratio, "AxleGear");
+			var axleLossMap = TransmissionLossMap.Create(data.LossMap, data.Ratio, "AxleGear");
 			return new AxleGearData() {
-				AxleGear = new GearData() { LossMap = axleLossMap, Ratio = axleGear.Ratio, TorqueConverterActive = false }
+				SavedInDeclarationMode = data.SavedInDeclarationMode,
+				Vendor = data.Vendor,
+				MakeAndModel = data.MakeAndModel,
+				Creator = data.Creator,
+				Date = data.Date,
+				TypeId = data.TypeId,
+				DigestValue = data.DigestValue,
+				IntegrityStatus = data.IntegrityStatus,
+				AxleGear = new GearData() { LossMap = axleLossMap, Ratio = data.Ratio, TorqueConverterActive = false }
 			};
 		}
 
diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs
index b5514bf95cd3f4ce9517c8b8f711b7475f56be00..a6c41182bef29417e244ebb913bec03b61c1d381 100644
--- a/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs
+++ b/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs
@@ -95,6 +95,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 			for (var i = 0; i < mission.AxleWeightDistribution.Length; i++) {
 				var axleInput = axles[i];
 				var axle = new Axle {
+					WheelsDimension = axleInput.Wheels,
+					AxleType = axleInput.AxleType,
 					AxleWeightShare = mission.AxleWeightDistribution[i],
 					TwinTyres = axleInput.TwinTyres,
 					RollResistanceCoefficient = axleInput.RollResistanceCoefficient,
@@ -191,7 +193,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 			var retVal = new List<VectoRunData.AuxData>();
 			foreach (var auxData in auxInputData.Auxiliaries) {
 				var aux = new VectoRunData.AuxData { DemandType = AuxiliaryDemandType.Constant };
-
+				aux.Technology = auxData.Technology;
 				switch (AuxiliaryTypeHelper.Parse(auxData.Type)) {
 					case AuxiliaryType.Fan:
 						aux.PowerDemand = DeclarationData.Fan.Lookup(mission, auxData.Technology);
@@ -212,6 +214,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 					case AuxiliaryType.ElectricSystem:
 						aux.PowerDemand = DeclarationData.ElectricSystem.Lookup(mission, auxData.TechList.ToArray());
 						aux.ID = Constants.Auxiliaries.IDs.ElectricSystem;
+						aux.TechList = auxData.TechList.ToArray();
 						break;
 					default:
 						continue;
diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
index cf3d081c6ba3073c62b4c4838b3796ad418748ee..7e4a80d17baf0be53784694818d2387d72e1a784 100644
--- a/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
+++ b/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs
@@ -48,6 +48,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
 
 			var axles = data.Axles;
 			retVal.AxleData = axles.Select(axle => new Axle {
+				WheelsDimension = axle.Wheels,
 				Inertia = axle.Inertia,
 				TwinTyres = axle.TwinTyres,
 				RollResistanceCoefficient = axle.RollResistanceCoefficient,
diff --git a/VectoCore/Models/Declaration/Axle.cs b/VectoCore/Models/Declaration/Axle.cs
index 289bfe0cc2ac0575b0d454e32373dac78a4aa00c..2763dbf090248f56a0b8f29fd38625463f5dcde1 100644
--- a/VectoCore/Models/Declaration/Axle.cs
+++ b/VectoCore/Models/Declaration/Axle.cs
@@ -21,6 +21,8 @@ namespace TUGraz.VectoCore.Models.Declaration
 {
 	public class Axle : SimulationComponentData
 	{
+		public object WheelsDimension { get; internal set; }
+
 		public KilogramSquareMeter Inertia { get; internal set; }
 
 		public double RollResistanceCoefficient { get; internal set; }
diff --git a/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs b/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs
index ba26f053bea9b5422357008b591d9ea879edfc0d..099f2ba81143c169e56912ae22116f603e36cf75 100644
--- a/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs
+++ b/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs
@@ -24,8 +24,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 {
 	public class CombustionEngineData : SimulationComponentData
 	{
-		public string ModelName { get; internal set; }
-
 		[Required, SIRange(1000 / (Constants.Kilo * Constants.Kilo), 20000 / (Constants.Kilo * Constants.Kilo))]
 		public CubicMeter Displacement { get; internal set; }
 
@@ -56,7 +54,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		protected bool Equals(CombustionEngineData other)
 		{
-			return Equals(FullLoadCurve, other.FullLoadCurve) && string.Equals(ModelName, other.ModelName) &&
+			return Equals(FullLoadCurve, other.FullLoadCurve) && string.Equals(MakeAndModel, other.MakeAndModel) &&
 					Equals(Displacement, other.Displacement) && Equals(IdleSpeed, other.IdleSpeed) && Equals(Inertia, other.Inertia) &&
 					Equals(WHTCUrban, other.WHTCUrban) && Equals(WHTCRural, other.WHTCRural) &&
 					Equals(WHTCMotorway, other.WHTCMotorway) && Equals(ConsumptionMap, other.ConsumptionMap);
@@ -80,7 +78,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		{
 			unchecked {
 				var hashCode = (FullLoadCurve != null ? FullLoadCurve.GetHashCode() : 0);
-				hashCode = (hashCode * 397) ^ (ModelName != null ? ModelName.GetHashCode() : 0);
+				hashCode = (hashCode * 397) ^ (MakeAndModel != null ? MakeAndModel.GetHashCode() : 0);
 				hashCode = (hashCode * 397) ^ (Displacement != null ? Displacement.GetHashCode() : 0);
 				hashCode = (hashCode * 397) ^ (IdleSpeed != null ? IdleSpeed.GetHashCode() : 0);
 				hashCode = (hashCode * 397) ^ (Inertia != null ? Inertia.GetHashCode() : 0);
diff --git a/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs b/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs
index 4443faa773c95c0e5b9af82c33eae10546eb91d2..6ba972425c543804994b1433d01e575a78ca9356 100644
--- a/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs
+++ b/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs
@@ -26,6 +26,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 
 		public string MakeAndModel { get; internal set; }
 
+		public string Creator { get; internal set; }
+		public string Date { get; internal set; }
+
 		public string TypeId { get; internal set; }
 
 		public string DigestValue { get; internal set; }
diff --git a/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/OutputData/DeclarationReport.cs
index dd19bd6e50b9eb27be6401e580bd6f5f759514bd..100d38f6d01cfc26981645dba278fd7b080fce63 100644
--- a/VectoCore/OutputData/DeclarationReport.cs
+++ b/VectoCore/OutputData/DeclarationReport.cs
@@ -91,18 +91,18 @@ namespace TUGraz.VectoCore.OutputData
 			if (!_missions.ContainsKey(mission.MissionType)) {
 				_missions[mission.MissionType] = new DeclarationReport.ResultContainer {
 					Mission = mission,
-					ModData = new Dictionary<LoadingType, IModalDataContainer> { { loadingType, modData } }
+					ModData = new Dictionary<LoadingType, IModalDataContainer>()
 				};
-			} else {
-				_missions[mission.MissionType].ModData[loadingType] = modData;
 			}
+			_missions[mission.MissionType].ModData[loadingType] = modData;
+
 
 			if (ResultCount == _missions.Sum(v => v.Value.ModData.Count)) {
 				DoWriteReport();
 			}
 		}
 
-		protected abstract void DoWriteReport();
+		protected internal abstract void DoWriteReport();
 
 		public void InitializeReport(VectoRunData modelData, Segment segment)
 		{
@@ -112,6 +112,6 @@ namespace TUGraz.VectoCore.OutputData
 			DoInitializeReport(modelData, segment);
 		}
 
-		public abstract void DoInitializeReport(VectoRunData modelData, Segment segment);
+		protected abstract void DoInitializeReport(VectoRunData modelData, Segment segment);
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/OutputData/PDF/PDFDeclarationReport.cs b/VectoCore/OutputData/PDF/PDFDeclarationReport.cs
index 665bada7305c7fb343c1d755a0a1f7e5aef9c30b..d897a05e5f88db5e746fe1ef1584de987c6a328e 100644
--- a/VectoCore/OutputData/PDF/PDFDeclarationReport.cs
+++ b/VectoCore/OutputData/PDF/PDFDeclarationReport.cs
@@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.OutputData.PDF
 		/// <summary>
 		/// Creates the report and writes it to a pdf file.
 		/// </summary>
-		protected override void DoWriteReport()
+		protected internal override void DoWriteReport()
 		{
 			var titlePage = CreateTitlePage(_missions);
 			var cyclePages = _missions.OrderBy(m => m.Key).Select((m, i) => CreateCyclePage(m.Value, i + 2, _missions.Count + 1));
@@ -58,9 +58,9 @@ namespace TUGraz.VectoCore.OutputData.PDF
 			MergeDocuments(titlePage, cyclePages, _writer.WriterStream(ReportType.DeclarationReportPdf));
 		}
 
-		public override void DoInitializeReport(VectoRunData modelData, Segment segment)
+		protected override void DoInitializeReport(VectoRunData modelData, Segment segment)
 		{
-			EngineModel = modelData.EngineData.ModelName;
+			EngineModel = modelData.EngineData.MakeAndModel;
 			EngineStr = string.Format("{0} l, {1} kW",
 				modelData.EngineData.Displacement.ConvertTo().Cubic.Dezi.Meter.ToOutputFormat(1),
 				modelData.EngineData.FullLoadCurve.MaxPower.ConvertTo().Kilo.Watt.ToOutputFormat(0));