diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index fd70c5f56e6d9b4857ba8f0941a61eca1aa18d69..6d1e8c88201e7b601229d5a2c47b149bb725f9bd 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -589,15 +589,18 @@ Public Class Vehicle
 		End Get
 	End Property
 
-    Public ReadOnly Property PTOCycleWhileDriving As TableData _
-        Implements IPTOTransmissionInputData.PTOCycleWhileDriving
-        Get
-            If String.IsNullOrWhiteSpace(PtoCycleDriving.FullPath) Then
-                Return Nothing
-            End If
-            Return VectoCSVFile.Read(PtoCycleDriving.FullPath)
-        End Get
-    End Property
+	Public ReadOnly Property PTOCycleWhileDriving As TableData _
+		Implements IPTOTransmissionInputData.PTOCycleWhileDriving
+		Get
+			If String.IsNullOrWhiteSpace(PtoCycleDriving.FullPath) Then
+				Return Nothing
+			End If
+			Return VectoCSVFile.Read(PtoCycleDriving.FullPath)
+		End Get
+	End Property
+
+	Public ReadOnly Property PTOShaftGearWheel As PTOShaftGearWheel? Implements IPTOTransmissionInputData.PTOShaftGearWheel
+	Public ReadOnly Property PTOOtherElement As PTOOtherElement? Implements IPTOTransmissionInputData.PTOOtherElement
 
 
 	Public ReadOnly Property IDeclarationInputDataProvider_AirdragInputData As IAirdragDeclarationInputData _
diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
index 79c115e446cf292c1c906b978105317e4559fc20..b031d8cfdae36eda448360471a5a416a34915929 100644
--- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs
@@ -30,8 +30,6 @@
 */
 
 using System.Collections.Generic;
-using System.Data;
-using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Models.SimulationComponent.Impl;
@@ -207,8 +205,11 @@ namespace TUGraz.VectoCommon.InputData
 
 		TableData PTOCycleWhileDriving { get; }
 
-	}
+		PTOShaftGearWheel? PTOShaftGearWheel { get; }
 
+		PTOOtherElement? PTOOtherElement { get; }
+	}
+	
 	public interface IAxleEngineeringInputData : IAxleDeclarationInputData
 	{
 		/// <summary>
@@ -626,5 +627,99 @@ namespace TUGraz.VectoCommon.InputData
 
 		Watt ElectricPowerDemand { get; }
 	}
-
+	
+	public enum PTOShaftGearWheel
+	{
+		none,
+		only_the_drive_shaft_of_the_PTO,
+		drive_shaft_and_or_up_to_2_gear_wheels,
+		drive_shaft_and_or_more_than_2_gear_wheels,
+		only_one_engaged_gearwheel_above_oil_level
+	}
+
+	public static class PTOShaftGearWheelHelper
+	{
+		public static PTOShaftGearWheel? Parse(string value)
+		{
+			switch (value)
+			{
+				case "none":
+					return PTOShaftGearWheel.none;
+				case "only the drive shaft of the PTO":
+					return PTOShaftGearWheel.only_the_drive_shaft_of_the_PTO;
+				case "drive shaft and/or up to 2 gear wheels":
+					return PTOShaftGearWheel.drive_shaft_and_or_up_to_2_gear_wheels;
+				case "drive shaft and/or more than 2 gear wheels":
+					return PTOShaftGearWheel.drive_shaft_and_or_more_than_2_gear_wheels;
+				case "only one engaged gearwheel above oil level":
+					return PTOShaftGearWheel.only_one_engaged_gearwheel_above_oil_level;
+				default:
+					return null;
+			}
+		}
+
+		public static string ToXMLFormat(this PTOShaftGearWheel ptoGearWheel)
+		{
+			switch (ptoGearWheel)
+			{
+				case PTOShaftGearWheel.none:
+					return "none";
+				case PTOShaftGearWheel.only_the_drive_shaft_of_the_PTO:
+					return "only the drive shaft of the PTO";
+				case PTOShaftGearWheel.drive_shaft_and_or_up_to_2_gear_wheels:
+					return "drive shaft and/or up to 2 gear wheels";
+				case PTOShaftGearWheel.drive_shaft_and_or_more_than_2_gear_wheels:
+					return "drive shaft and/or more than 2 gear wheels";
+				case PTOShaftGearWheel.only_one_engaged_gearwheel_above_oil_level:
+					return "only one engaged gearwheel above oil level";
+				default:
+					return null;
+			}
+		}
+	}
+	
+	public enum PTOOtherElement
+	{
+		none,
+		shift_claw_synchronizer_sliding_gearwheel,
+		multi_disc_clutch,
+		multi_disc_clutch_oil_pump
+	}
+	
+	public static class PTOOtherElementHelper
+	{
+		public static PTOOtherElement? Parse(string value)
+		{
+			switch (value)
+			{
+				case "none":
+					return PTOOtherElement.none;
+				case "shift claw, synchronizer, sliding gearwheel":
+					return PTOOtherElement.shift_claw_synchronizer_sliding_gearwheel;
+				case "multi-disc clutch":
+					return PTOOtherElement.multi_disc_clutch;
+				case "multi-disc clutch, oil pump":
+					return PTOOtherElement.multi_disc_clutch_oil_pump;
+				default:
+					return null;
+			}
+		}
+
+		public static string ToXMLFormat(this PTOOtherElement ptoOtherElement)
+		{
+			switch (ptoOtherElement)
+			{
+				case PTOOtherElement.none:
+					return "none";
+				case PTOOtherElement.shift_claw_synchronizer_sliding_gearwheel:
+					return "shift claw, synchronizer, sliding gearwheel";
+				case PTOOtherElement.multi_disc_clutch:
+					return "multi-disc clutch";
+				case PTOOtherElement.multi_disc_clutch_oil_pump:
+					return "multi-disc clutch, oil pump";
+				default:
+					return null;
+			}
+		}
+	}
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
index cc4ff7201dcc14c8cf3ff45486294df4dfdae267..ff2dfd82277df99b9abc2d6d8926512a9174844a 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs
@@ -396,6 +396,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				}
 			}
 		}
+
+		public PTOShaftGearWheel? PTOShaftGearWheel => null;
+		public PTOOtherElement? PTOOtherElement => null;
+
 		#endregion
 
 	}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
index a1b9868a6f64008869ef668afd759e0321a1b700..620876b78baf8e9b75e068606ffc9bb15bc2b150 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationComponentsDataProvider.cs
@@ -153,6 +153,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		{ }
 
 		protected override XNamespace SchemaNamespace => NAMESPACE_URI;
+
+		#region Overrides of XMLDeclarationComponentsDataProviderV10
+
+		public override IAngledriveInputData AngledriveInputData
+			=> ElementExists(XMLNames.Component_Angledrive) ? base.AngledriveInputData : null;
+
+		public override IRetarderInputData RetarderInputData
+			=> ElementExists(XMLNames.Component_Retarder) ? base.RetarderInputData : null;
+
+		public override IAirdragDeclarationInputData AirdragInputData
+			=> ElementExists(XMLNames.Component_AirDrag) ? base.AirdragInputData : null;
+
+		#endregion
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs
index 4d6bb336ca74b8905224e32044647b0fc5634ffa..eff48b3e6c175c6a9ad6ec69e845d35d7d1f730c 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationPTODataProvider.cs
@@ -84,6 +84,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public virtual TableData PTOCycleDuringStop => null;
 
 		public TableData PTOCycleWhileDriving => null;
+		public virtual PTOShaftGearWheel? PTOShaftGearWheel => null;
+		public virtual PTOOtherElement? PTOOtherElement => null;
 
 		#endregion
 	}
@@ -97,9 +99,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public new const string XSD_TYPE = "PTOType";
 
 		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
-
 		
 		public XMLDeclarationPTODataProviderV20(IXMLDeclarationVehicleData vehicle, XmlNode componentNode, string sourceFile)
 			: base(vehicle, componentNode, sourceFile) { }
+
+
+		#region Overrides of XMLDeclarationPTODataProviderV10
+
+		public override PTOOtherElement? PTOOtherElement =>
+			PTOOtherElementHelper.Parse(GetString(XMLNames.Vehicle_PTO_OtherElements));
+
+		public override PTOShaftGearWheel? PTOShaftGearWheel =>
+			PTOShaftGearWheelHelper.Parse(GetString(XMLNames.Vehicle_PTO_ShaftsGearWheels));
+
+		#endregion
 	}
 }
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 4d0b8ed383636db6f78fc578ea737ae5b1d3b085..b772d39a4f59c508513a099f1bacd72b11c91983 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -1132,6 +1132,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public XMLDeclarationHeavyLorryDataProviderV210(
 			IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) 
 			: base(jobData, xmlNode, sourceFile) { }
+		
+		#region Overrides of XMLDeclarationVehicleDataProviderV10
+		
+		public override IAdvancedDriverAssistantSystemDeclarationInputData ADAS => ADASReader.ADASInputData;
+
+		public override IList<ITorqueLimitInputData> TorqueLimits =>
+			ElementExists(XMLNames.Vehicle_TorqueLimits) ? base.TorqueLimits : null;
+
+		public override TankSystem? TankSystem =>
+			ElementExists(XMLNames.Vehicle_NgTankSystem)
+				? EnumHelper.ParseEnum<TankSystem>(GetString(XMLNames.Vehicle_NgTankSystem))
+				: (TankSystem?)null;
+
+		#endregion
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV210InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV210InjectModule.cs
index dbb032facb78102f03b31a2017a1947fec5e01fa..7b651f2872f20c1dd4b50291744a46733224ba71 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV210InjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV210InjectModule.cs
@@ -130,8 +130,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 
 			Bind<IXMLComponentReader>().To<XMLComponentReaderV210_CompletedBus>().Named(XMLComponentReaderV210_CompletedBus.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLComponentReader>().To<XMLComponentReaderV210_HEV_PxHeavyLorry>().Named(XMLComponentReaderV210_HEV_PxHeavyLorry.QUALIFIED_XSD_TYPE);
-			
+			Bind<IXMLComponentReader>().To<XMLComponentReaderV210_HEV_PxHeavyLorry>()
+				.Named(XMLComponentReaderV210_HEV_PxHeavyLorry.QUALIFIED_XSD_TYPE);
+
+			Bind<IXMLComponentReader>().To<XMLComponentReaderV210_HEV_PxHeavyLorry>()
+				.Named(XMLComponentReaderV210_HEV_PxHeavyLorry.QUALIFIED_XSD_HEV_Px_TYPE);
+
 			Bind<IXMLComponentReader>().To<XMLPrimaryBusHEVPxDeclarationComponentReaderV201>()
 				.Named(XMLPrimaryBusHEVPxDeclarationComponentReaderV201.QUALIFIED_XSD_TYPE);
 
@@ -272,9 +276,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 			
 			Bind<IXMLIEPCInputData>().To<XMLDeclarationIEPCDataProviderV2101>().Named(XMLDeclarationIEPCDataProviderV2101.QUALIFIED_XSD_TYPE);
 
-			Bind<IXMLComponentReader>().To<XMLComponentReaderV210_Lorry>()
-				.Named(XMLComponentReaderV210_Lorry.QUALIFIED_XSD_TYPE);
-
 			Bind<IXMLAuxiliaryReader>().To<XMLComponentReaderV210_Lorry>()
 				.Named(XMLComponentReaderV210_Lorry.AUXILIARIES_READER_QUALIFIED_XSD_TYPE);
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs
index 8a544b337f3f843b89f6aac3740c550fa3eb4765..0800f0a56321eb4cb418d5b798bc8a267c61d405 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs
@@ -333,6 +333,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		protected virtual IIEPCDeclarationInputData IEPCCreator(string version, XmlNode componentNode,
 			string sourceFile)
 		{
+			if (componentNode == null)
+				return null;
+
 			return Factory.CreateIEPCData(version, Vehicle, componentNode, sourceFile);
 		}
 	}
@@ -365,7 +368,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
 
-		public new const string XSD_TYPE = "Components_Conventional_LorryType";
 		//public new const string AXLE_READER_TYPE = "AxleDataDeclarationType";
 		public new const string AUX_READER_TYPE = "AUX_Conventional_LorryDataType";
 		public const string AUX_HEV_P_READER_TYPE = "AUX_HEV-P_LorryDataType";
@@ -373,7 +375,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 		public const string AUX_PEV_E2_READER_TYPE = "AUX_PEV_LorryDataType";
 
 
-		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 		//public new static readonly string AXLES_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLES_READER_TYPE);
 		//public new static readonly string AXLE_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, AXLE_READER_TYPE);
 		//public new static readonly string GEARBOX_READER_QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI, GEARBOX_READER_TYPE);
@@ -512,15 +513,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
 
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V210_JOBS;
 
-		public new const string XSD_TYPE = "Components_HEV-Px_LorryType";
+		public new const string XSD_TYPE = "Components_Conventional_LorryType";
+		public const string XSD_HEV_Px_TYPE = "Components_HEV-Px_LorryType";
 		
 		public new static readonly string QUALIFIED_XSD_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		public static readonly string QUALIFIED_XSD_HEV_Px_TYPE = XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_HEV_Px_TYPE);
 
 		public XMLComponentReaderV210_HEV_PxHeavyLorry(IXMLDeclarationVehicleData vehicle, XmlNode componentsNode)
 			: base(vehicle, componentsNode) { }
 
 		
 		public override IBusAuxiliariesDeclarationData BusAuxiliariesInputData => null;
+		public override IIEPCDeclarationInputData IEPCInputData => null;
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
index 696230b40430dfbe12e58cfd5f0566c91987c4ca..bd7eef71bbec7ac4e1eda949c94e081bded3fdb1 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
@@ -245,7 +245,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider
 				BaseNode, DataSource.SourcePath, XMLNames.Vehicle_PTOCycle, XMLNames.Vehicle_PTOCycle_Entry,
 				AttributeMappings.PTOCycleMap);
 
-		public TableData PTOCycleWhileDriving => null;
+		public virtual TableData PTOCycleWhileDriving => null;
+		public virtual PTOShaftGearWheel? PTOShaftGearWheel => null;
+		public virtual PTOOtherElement? PTOOtherElement => null;
 
 		#endregion
 
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.10/WithoutOptionalEntries/Conventional_heavyLorry_AMT_n_opt.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.10/WithoutOptionalEntries/Conventional_heavyLorry_AMT_n_opt.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7c974439c331b1c6607088c6260f069dc8112777
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.10/WithoutOptionalEntries/Conventional_heavyLorry_AMT_n_opt.xml
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:v2.10.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2">
+	<v2.0:Vehicle xsi:type="Vehicle_Conventional_HeavyLorryDeclarationType" id="a">
+		<Manufacturer>TU Graz</Manufacturer>
+		<ManufacturerAddress>Inffeldgasse 19</ManufacturerAddress>
+		<Model>HEV Heavy Lorry Px</Model>
+		<VIN>1234</VIN>
+		<Date>2017-01-01T00:00:00Z</Date>
+		<LegislativeCategory>N3</LegislativeCategory>
+		<ChasisConfiguration>Rigid Lorry</ChasisConfiguration>
+		<AxleConfiguration>4x2</AxleConfiguration>
+		<CorrectedActualMass>6000</CorrectedActualMass>
+		<TechnicalPermissibleMaximumLadenMass>12000</TechnicalPermissibleMaximumLadenMass>
+		<IdlingSpeed>650</IdlingSpeed>
+		<RetarderType>None</RetarderType>
+		<AngledriveType>None</AngledriveType>
+		<PTO xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="v2.0:PTOType">
+			<v2.0:PTOShaftsGearWheels>none</v2.0:PTOShaftsGearWheels>
+			<v2.0:PTOOtherElements>none</v2.0:PTOOtherElements>
+		</PTO>
+		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
+		<VocationalVehicle>false</VocationalVehicle>
+		<SleeperCab>false</SleeperCab>
+		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
+		<ADAS xsi:type="ADAS_Conventional_Type">
+			<EngineStopStart>true</EngineStopStart>
+			<EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop>
+			<EcoRollWithEngineStop>true</EcoRollWithEngineStop>
+			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
+		</ADAS>
+		<Components xsi:type="Components_Conventional_LorryType">
+			<Engine>
+				<v2.0:Data xsi:type="v1.0:EngineDataDeclarationType" id="ENG-gooZah3D" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Generic Engine Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Engine</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>VectoEngine x.y</AppVersion>
+					<Displacement>12730</Displacement>
+					<IdlingSpeed>560</IdlingSpeed>
+					<RatedSpeed>2200</RatedSpeed>
+					<RatedPower>380000</RatedPower>
+					<MaxEngineTorque>2300</MaxEngineTorque>
+					<WHTCUrban>1.0097</WHTCUrban>
+					<WHTCRural>1.0035</WHTCRural>
+					<WHTCMotorway>1.0200</WHTCMotorway>
+					<BFColdHot>1.0000</BFColdHot>
+					<CFRegPer>1.0000</CFRegPer>
+					<CFNCV>1.0000</CFNCV>
+					<FuelType>NG</FuelType>
+					<FuelConsumptionMap>
+						<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00"/>
+						<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00"/>
+						<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00"/>
+					</FuelConsumptionMap>
+					<FullLoadAndDragCurve>
+						<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00"/>
+						<Entry engineSpeed="1800.00" maxTorque="1800.00" dragTorque="-300.00"/>
+						<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00"/>
+					</FullLoadAndDragCurve>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference>
+						<di:DigestMethod Algorithm=""/>
+						<di:DigestValue/>
+					</di:Reference>
+				</v2.0:Signature>
+			</Engine>
+			<Gearbox>
+				<v2.0:Data id="gbx-vi2Oak2N" xsi:type="v2.0:GearboxDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck Gearbox</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<TransmissionType>AMT</TransmissionType>
+					<MainCertificationMethod>Standard values</MainCertificationMethod>
+					<Gears xsi:type="GearsDeclarationType">
+						<Gear number="1">
+							<Ratio>14.930</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+						<Gear number="2">
+							<Ratio>11.640</Ratio>
+							<MaxTorque>1900</MaxTorque>
+							<MaxSpeed>2000</MaxSpeed>
+							<TorqueLossMap>
+								<Entry inputSpeed="0.00" inputTorque="-1000.00" torqueLoss="25.06"/>
+								<Entry inputSpeed="0.00" inputTorque="50.00" torqueLoss="6.06"/>
+								<Entry inputSpeed="0.00" inputTorque="3000.00" torqueLoss="54.06"/>
+								<Entry inputSpeed="2100.00" inputTorque="-1000.00" torqueLoss="35.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="50.00" torqueLoss="16.69"/>
+								<Entry inputSpeed="2100.00" inputTorque="3000.00" torqueLoss="64.69"/>
+							</TorqueLossMap>
+						</Gear>
+					</Gears>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#gbx-vi2Oak2N">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>ieNmjofFObDBGnB7+GX9of3HYe3ydK/ra+YvmULVJIk=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Gearbox>
+			<TorqueConverter><!-- optional -->
+				<v2.0:Data xsi:type="v1.0:TorqueConverterDataDeclarationType" id="TQ-1234" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0">
+					<Manufacturer>Some Manufacturer</Manufacturer>
+					<Model>Some Model</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-02-15T11:00:00Z</Date>
+					<AppVersion>TC CalcApp 123</AppVersion>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<Characteristics>
+						<Entry speedRatio="0.0000" torqueRatio="1.00" inputTorqueRef="300.00"/>
+						<Entry speedRatio="0.5000" torqueRatio="1.00" inputTorqueRef="200.00"/>
+						<Entry speedRatio="0.9000" torqueRatio="0.90" inputTorqueRef="200.00"/>
+					</Characteristics>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference>
+						<di:DigestMethod Algorithm=""></di:DigestMethod>
+						<di:DigestValue></di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</TorqueConverter>
+			<Axlegear>
+				<v2.0:Data id="AXL-EC3ohnoh" xsi:type="v2.0:AxlegearDataDeclarationType"  xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Manufacturer>Generic Gearbox Manufacturer</Manufacturer>
+					<Model>Generic 40t Long Haul Truck AxleGear</Model>
+					<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+					<Date>2017-01-11T11:00:00Z</Date>
+					<AppVersion>3.0.1</AppVersion>
+					<LineType>Single portal axle</LineType>
+					<Ratio>2.590</Ratio>
+					<CertificationMethod>Standard values</CertificationMethod>
+					<TorqueLossMap>
+						<Entry inputSpeed="0.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="0.00" inputTorque="15000.00" torqueLoss="265.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="-5000.00" torqueLoss="115.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="0.00" torqueLoss="40.00"/>
+						<Entry inputSpeed="2100.00" inputTorque="35000.00" torqueLoss="565.00"/>
+					</TorqueLossMap>
+				</v2.0:Data>
+				<v2.0:Signature>
+					<di:Reference URI="#AXL-EC3ohnoh">
+						<di:Transforms>
+							<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+							<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+						</di:Transforms>
+						<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+						<di:DigestValue>o4nYTajmWKaduxys5ShmnfJbYd23rpxZ01JbuG6dmzU=</di:DigestValue>
+					</di:Reference>
+				</v2.0:Signature>
+			</Axlegear>
+			<AxleWheels>
+				<v2.0:Data xsi:type="v2.0:AxleWheelsDataDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+					<Axles>
+						<Axle axleNumber="1" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleNonDriven</AxleType>
+							<TwinTyres>false</TwinTyres>
+							<Steered>true</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0055</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>4TkUGQTX8tevHOU9Cj9uyCFuI/aqcEYlo/gyVjVQmv0=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+						<Axle axleNumber="2" xsi:type="AxleDataDeclarationType">
+							<AxleType>VehicleDriven</AxleType>
+							<TwinTyres>true</TwinTyres>
+							<Steered>false</Steered>
+							<Tyre>
+								<Data id="WHL-5432198760-315-70-R22.5" xsi:type="TyreDataDeclarationType">
+									<Manufacturer>Generic Wheels Manufacturer</Manufacturer>
+									<Model>Generic Wheel</Model>
+									<CertificationNumber>e12*0815/8051*2017/05E0000*00</CertificationNumber>
+									<Date>2017-01-11T14:00:00Z</Date>
+									<AppVersion>Tyre Generation App 1.0</AppVersion>
+									<Dimension>315/70 R22.5</Dimension>
+									<RRCDeclared>0.0063</RRCDeclared>
+									<FzISO>31300</FzISO>
+								</Data>
+								<Signature>
+									<di:Reference URI="#WHL-5432198760-315-70-R22.5">
+										<di:Transforms>
+											<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization"/>
+											<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+										</di:Transforms>
+										<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+										<di:DigestValue>KljvtvGUUQ/L7MiLVAqU+bckL5PNDNNwdeLH9kUVrfM=</di:DigestValue>
+									</di:Reference>
+								</Signature>
+							</Tyre>
+						</Axle>
+					</Axles>
+				</v2.0:Data>
+			</AxleWheels>
+			<Auxiliaries>
+				<Data xsi:type="AUX_Conventional_LorryDataType">
+					<Fan>
+						<Technology>Hydraulic driven - Constant displacement pump</Technology>
+					</Fan>
+					<SteeringPump>
+						<Technology axleNumber="1">Variable displacement elec. controlled</Technology>
+					</SteeringPump>
+					<ElectricSystem>
+						<Technology>Standard technology - LED headlights, all</Technology>
+					</ElectricSystem>
+					<PneumaticSystem>
+						<Technology>Medium Supply 2-stage</Technology>
+					</PneumaticSystem>
+					<HVAC>
+						<Technology>Default</Technology>
+					</HVAC>
+				</Data>
+			</Auxiliaries>
+		</Components>
+	</v2.0:Vehicle>
+</tns:VectoInputDeclaration>
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 982515fb4fd681366192fd30bbfa0efc099e0e41..3db1b5c29d1ea30be65536a510fa61a72abb924b 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -5884,6 +5884,9 @@
     <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-sample_LNG.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\WithoutOptionalEntries\Conventional_heavyLorry_AMT_n_opt.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\CompletedBus\Conventional_completedBus_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs
index a419a6ec918c95ed79f3f20253369284b714a5ed..7141b8a4dcd6960d5d94048e5917c57fadc41696 100644
--- a/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationInputv210.cs
@@ -35,6 +35,7 @@ namespace TUGraz.VectoCore.Tests.XML
 
 		private const string BASE_DIR = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\Distributed\";
 		private const string ADDITONAL_TESTS_DIR = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\";
+		private const string Optional_TESTS_DIR = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.10\WithoutOptionalEntries";
 
 
 		[TestCase(@"HeavyLorry\Conventional_heavyLorry_AMT.xml"),
@@ -133,10 +134,11 @@ namespace TUGraz.VectoCore.Tests.XML
 			return runs;
 		}
 
-		[TestCase(@"HeavyLorry\Conventional_heavyLorry_AMT.xml")]
-		public void TestConventionalHeavyLorry(string jobfile)
+		[TestCase(@"HeavyLorry\Conventional_heavyLorry_AMT.xml", BASE_DIR)]
+		[TestCase(@"Conventional_heavyLorry_AMT_n_opt.xml", Optional_TESTS_DIR)]
+		public void TestConventionalHeavyLorry(string jobfile, string testDir)
 		{
-			var filename = Path.Combine(BASE_DIR, jobfile);
+			var filename = Path.Combine(testDir, jobfile);
 			var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename));
 
 			Assert.NotNull(dataProvider);
@@ -144,27 +146,54 @@ namespace TUGraz.VectoCore.Tests.XML
 
 			var vehicle = dataProvider.JobInputData.Vehicle;
 			Assert.NotNull(vehicle);
+			TestADASData(vehicle.ADAS);
 			Assert.IsNotNull(vehicle.Components);
 			Assert.IsNotNull(vehicle.Components.EngineInputData);
 			Assert.IsNull(vehicle.Components.ElectricMachines);
+			Assert.IsNull(vehicle.Components.IEPC);
 			Assert.IsNotNull(vehicle.Components.GearboxInputData);
 			TestTorqueConverter(vehicle);
-			Assert.IsNotNull(vehicle.Components.AngledriveInputData);//optional
-			Assert.IsNotNull(vehicle.Components.RetarderInputData);//optional
+
+			if (testDir == Optional_TESTS_DIR) {//optional test
+				Assert.IsNull(vehicle.TankSystem);
+				Assert.IsNull(vehicle.Components.AngledriveInputData);//optional
+				Assert.IsNull(vehicle.Components.RetarderInputData);//optional
+				Assert.IsNull(vehicle.Components.AirdragInputData);//optional
+				Assert.IsNull(vehicle.TorqueLimits);//optional
+			} else {
+				Assert.IsNotNull(vehicle.TankSystem);
+				Assert.IsNotNull(vehicle.Components.AngledriveInputData);//optional
+				Assert.IsNotNull(vehicle.Components.RetarderInputData);//optional
+				Assert.IsNotNull(vehicle.Components.AirdragInputData);//optional
+				Assert.IsNotNull(vehicle.TorqueLimits);//optional
+			}
 			Assert.IsNotNull(vehicle.Components.AxleGearInputData);
 			Assert.IsNotNull(vehicle.Components.AxleWheels);
 			Assert.IsNotNull(vehicle.Components.AuxiliaryInputData);
+			Assert.IsNotNull(vehicle.Components.AuxiliaryInputData.Auxiliaries);
 			Assert.IsNull(vehicle.Components.BusAuxiliaries);
-			Assert.IsNotNull(vehicle.Components.AirdragInputData);
 			Assert.IsNull(vehicle.Components.ElectricStorage);
-			Assert.IsNotNull(vehicle.Components.PTOTransmissionInputData); 
+			TestPTOData(vehicle.Components.PTOTransmissionInputData);
 			Assert.IsNull(vehicle.CargoVolume);
-			Assert.IsNotNull(vehicle.TorqueLimits);
 			Assert.IsNull(vehicle.ElectricMotorTorqueLimits);//Vehicle EM Drive Limits
 			Assert.IsNull(vehicle.MaxPropulsionTorque);//Vehicle Max Prop. Limits
 		}
 
+		private void TestADASData(IAdvancedDriverAssistantSystemDeclarationInputData adas)
+		{
+			Assert.IsNotNull(adas);
+			Assert.AreEqual(true, adas.EngineStopStart);
+			Assert.AreEqual(EcoRollType.WithEngineStop, adas.EcoRoll);
+			Assert.AreEqual(PredictiveCruiseControlType.Option_1_2_3, adas.PredictiveCruiseControl);
+		}
 
+		private void TestPTOData(IPTOTransmissionInputData pto)
+		{
+			Assert.IsNotNull(pto);
+			Assert.AreEqual(PTOShaftGearWheel.none, pto.PTOShaftGearWheel);
+			Assert.AreEqual(PTOOtherElement.none, pto.PTOOtherElement);
+		}
+		
 		[TestCase(@"MediumLorry\Conventional_mediumLorry_AMT.xml")]
 		public void TestConventionalMediumLorry(string jobfile)
 		{