diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index 20e9863570ab2e91f10ccc5e6223fe71502159f9..188dbe194ab500c719c3b29a8048afed4d67fd4a 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -1118,21 +1118,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		}
 	}
 
-
-
+	
 	// ---------------------------------------------------------------------------------------
 
-
 	public class XMLDeclarationInterimStageBusDataProviderV28 : XMLDeclarationVehicleDataProviderV20
 	{
 		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28;
-
 		public new const string XSD_TYPE = "InterimStageInputType";
-
 		public new static readonly string QUALIFIED_XSD_TYPE =
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		private IAdvancedDriverAssistantSystemDeclarationInputData _adas;
+
 		public XMLDeclarationInterimStageBusDataProviderV28(
 			IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile)
 		{
@@ -1143,7 +1140,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		{
 			get { return null; }
 		}
-
 		
 		public override LegislativeClass LegislativeClass
 		{
@@ -1162,22 +1158,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override bool AirdragModifiedMultistage
 		{
-			get
-			{
-				return GetBool(XMLNames.Bus_AirdragModifiedMultistage);
-			}
+			get { return GetBool(XMLNames.Bus_AirdragModifiedMultistage); }
 		}
 
 		public override RegistrationClass RegisteredClass
 		{
-			get
-			{
-				return RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First(); 
-			}
+			get { return RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First(); }
 		}
 		
-		
-
 		public override int NumberOfPassengersLowerDeck
 		{
 			get
@@ -1198,10 +1186,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override VehicleCode VehicleCode
 		{
-			get
-			{
-				return GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>();
-			}
+			get { return GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>(); }
 		}
 
 		public override bool LowEntry
@@ -1211,34 +1196,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 
 		public override Meter Height
 		{
-			get
-			{
-				 return GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>(); 
-			}
+			get { return GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>(); }
 		}
 
 		public override Meter Length
 		{
-			get
-			{
-				return GetDouble(XMLNames.Bus_VehicleLength).SI<Meter>();
-			}
+			get { return GetDouble(XMLNames.Bus_VehicleLength).SI<Meter>(); }
 		}
 
 		public override Meter Width
 		{
-			get
-			{
-				return GetDouble(XMLNames.Bus_VehicleWidth).SI<Meter>();
-			}
+			get { return GetDouble(XMLNames.Bus_VehicleWidth).SI<Meter>();}
 		}
 
 		public override Meter EntranceHeight
 		{
-			get
-			{
-				return GetDouble(XMLNames.Bus_EntranceHeight).SI<Meter>();
-			}
+			get { return GetDouble(XMLNames.Bus_EntranceHeight).SI<Meter>(); }
 		}
 
 		public override ConsumerTechnology DoorDriveTechnology
@@ -1252,13 +1225,100 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		}
 
 		public override StateOfCompletion StateOfCompletion
+		{
+			get { return StateOfCompletionHelper.Parse(GetString(XMLNames.Bus_StateOfCompletion)); }
+		}
+
+		protected override DataSourceType SourceType { get; }
+
+		#region Overrides of AbstractXMLResource
+
+		protected override XNamespace SchemaNamespace
+		{
+			get { return NAMESPACE_URI; }
+		}
+		
+		#endregion
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	public class XMLDeclarationExemptedInterimStageBusDataProviderV28 : XMLDeclarationVehicleDataProviderV20
+	{
+		public new static readonly XNamespace NAMESPACE_URI = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V28;
+		public new const string XSD_TYPE = "ExemptedInterimStageInputType";
+		public new static readonly string QUALIFIED_XSD_TYPE =
+			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
+		
+		public XMLDeclarationExemptedInterimStageBusDataProviderV28(IXMLDeclarationJobInputData jobData,
+			XmlNode xmlNode, string sourceFile)
+			: base(jobData, xmlNode, sourceFile)
+		{
+
+			SourceType = DataSourceType.XMLEmbedded;
+		}
+		
+		public override LegislativeClass LegislativeClass
+		{
+			get { return GetString(XMLNames.Bus_LegislativeCategory).ParseEnum<LegislativeClass>(); }
+		}
+
+		public override Kilogram CurbMassChassis
+		{
+			get { return GetDouble(XMLNames.Bus_CorrectedActualMass).SI<Kilogram>(); }
+		}
+
+		public override Kilogram GrossVehicleMassRating
+		{
+			get { return GetDouble(XMLNames.Vehicle_TPMLM).SI<Kilogram>(); }
+		}
+		
+		public override RegistrationClass RegisteredClass
+		{
+			get { return RegistrationClassHelper.Parse(GetString(XMLNames.Vehicle_RegisteredClass)).First(); }
+		}
+
+		public override int NumberOfPassengersLowerDeck
 		{
 			get
 			{
-				return StateOfCompletionHelper.Parse(GetString(XMLNames.Bus_StateOfCompletion));
+				var node = GetNode(XMLNames.Bus_NumberPassengersLowerDeck);
+				return XmlConvert.ToInt32(node.InnerText);
 			}
 		}
 
+		public override int NumberOfPassengersUpperDeck
+		{
+			get
+			{
+				var node = GetNode(XMLNames.Bus_NumberPassengersUpperDeck);
+				return XmlConvert.ToInt32(node.InnerText);
+			}
+		}
+
+		public override VehicleCode VehicleCode
+		{
+			get { return GetString(XMLNames.Vehicle_VehicleCode).ParseEnum<VehicleCode>(); }
+		}
+
+		public override bool LowEntry
+		{
+			get { return GetBool(XMLNames.Bus_LowEntry); }
+		}
+
+		public override Meter Height
+		{
+			get { return GetDouble(XMLNames.Bus_HeighIntegratedBody).SI<Meter>(); }
+		}
+		
+		public override XmlElement PTONode
+		{
+			get { return null; }
+		}
+
+		public override XmlElement ComponentNode { get{ return null; }}
+
 		protected override DataSourceType SourceType { get; }
 
 		#region Overrides of AbstractXMLResource
@@ -1267,9 +1327,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		{
 			get { return NAMESPACE_URI; }
 		}
-		
-		#endregion
 
+		#endregion
 	}
 }
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs
index b6702c58eb3f0fa3651b9fb22e3c18727e4ce31c..6ab77f5b7a26f38e5296bde25f5a18fc0f16fa64 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV28InjectModule.cs
@@ -14,7 +14,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
 		{
 			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationInterimStageBusDataProviderV28>()
 				.Named(XMLDeclarationInterimStageBusDataProviderV28.QUALIFIED_XSD_TYPE);
-
+			
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationExemptedInterimStageBusDataProviderV28>()
+				.Named(XMLDeclarationExemptedInterimStageBusDataProviderV28.QUALIFIED_XSD_TYPE);
+			
 			Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationInterimStageBusComponentsDataProviderV28>()
 				.Named(XMLDeclarationInterimStageBusComponentsDataProviderV28.QUALIFIED_XSD_TYPE);
 
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputTest.cs
index a9cd67da5cad753ab5218c55478dcb32d43d9941..5ee3ff34d81c73f895d5b438db3a77534a482db7 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputTest.cs
@@ -15,8 +15,8 @@ namespace TUGraz.VectoCore.Tests.XML
 		protected IXMLInputDataReader xmlInputReader;
 		private IKernel _kernel;
 
-		const string VehicleStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml";
-
+		const string VehicleInterimStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_full-sample.xml";
+		const string VehicleExemptedInterimStageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-exempted_input_full-sample.xml";
 
 		[OneTimeSetUp]
 		public void RunBeforeAnyTests()
@@ -28,9 +28,9 @@ namespace TUGraz.VectoCore.Tests.XML
 		}
 
 		[TestCase]
-		public void TestVehicleStageInput()
+		public void TestVehicleInterimStageInput()
 		{
-			var reader = XmlReader.Create(VehicleStageInput);
+			var reader = XmlReader.Create(VehicleInterimStageInput);
 			var inputDataProvider = xmlInputReader.CreateDeclaration(reader);
 			var vehicle = inputDataProvider.JobInputData.Vehicle;
 
@@ -41,7 +41,7 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(DateTime.Parse("2020-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date);
 			Assert.AreEqual("Sample Bus Model", vehicle.Model);
 			Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass);
-			Assert.AreEqual(500, vehicle.CurbMassChassis.Value());//CurbMassChassis
+			Assert.AreEqual(500, vehicle.CurbMassChassis.Value());//CorrectedActualMass
 			Assert.AreEqual(3500, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass
 			Assert.AreEqual(false, vehicle.AirdragModifiedMultistage);
 			Assert.AreEqual(TankSystem.Compressed, vehicle.TankSystem);//NgTankSystem
@@ -115,5 +115,30 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(false, hvacAux.AirElectricHeater);
 			Assert.AreEqual(false, hvacAux.OtherHeatingTechnology);
 		}
+
+
+		[TestCase]
+		public void TestVehicleExemptedInterimStageInput()
+		{
+			var reader = XmlReader.Create(VehicleExemptedInterimStageInput);
+			var inputDataProvider = xmlInputReader.CreateDeclaration(reader);
+			var vehicle = inputDataProvider.JobInputData.Vehicle;
+			
+			Assert.AreEqual("VEH-1234567890", vehicle.Identifier);
+			Assert.AreEqual("Some Manufacturer", vehicle.Manufacturer);
+			Assert.AreEqual("Infinite Loop", vehicle.ManufacturerAddress);
+			Assert.AreEqual("VEH-1234567891", vehicle.VIN);
+			Assert.AreEqual(DateTime.Parse("2021-01-09T11:00:00Z").ToUniversalTime(), vehicle.Date);
+			Assert.AreEqual("Sample Bus Model 2", vehicle.Model);
+			Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass);
+			Assert.AreEqual(7000, vehicle.CurbMassChassis.Value());//CorrectedActualMass
+			Assert.AreEqual(10000, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass
+			Assert.AreEqual(RegistrationClass.A, vehicle.RegisteredClass);//ClassBus
+			Assert.AreEqual(10, vehicle.NumberOfPassengersLowerDeck);
+			Assert.AreEqual(20, vehicle.NumberOfPassengersUpperDeck);
+			Assert.AreEqual(VehicleCode.CC, vehicle.VehicleCode);
+			Assert.AreEqual(true, vehicle.LowEntry);
+			Assert.AreEqual(2500, vehicle.Height.Value());
+		}
 	}
 }