diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs
index 58b66f6a99fdd48a9ee8d47c5d5b945fa1860a27..221cff965463c7a69ab14a7f1eedd01d8ca0f74d 100644
--- a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs
+++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs
@@ -248,6 +248,8 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
 				CreateExemptedElements();
 				return;
 			}
+
+			throw new NotImplementedException("Old Implementation");
 			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer));
 			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress,
 				_inputData.ManufacturerAddress));
@@ -413,34 +415,28 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
 
 		private void CreateExemptedElements()
 		{
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Manufacturer, _inputData.Manufacturer));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_ManufacturerAddress,
-				_inputData.ManufacturerAddress));
 
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_VIN, _inputData.VIN));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Date, XMLExtension.ToXmlFormat(DateTime.Today)));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat()));
 
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0)));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM,
-				_inputData.GrossVehicleMassRating?.ToXMLFormat(0)));
+			// ReSharper disable once CoVariantArrayConversion
+			_Xelement.Add(_groupWriterFactory
+				.GetVehicleDeclarationGroupWriter(GroupNames.Vehicle_CompletedBus_GeneralParametersSequenceGroup,
+					_defaultNamespace).GetGroupElements(_inputData));
 
+			_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Component_Model, _inputData.Model));
+            _Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_LegislativeCategory, _inputData.LegislativeClass.ToXMLFormat()));
+			_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.CorrectedActualMass, _inputData.CurbMassChassis?.ToXMLFormat(0)));
+            _Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_TPMLM,
+                _inputData.GrossVehicleMassRating?.ToXMLFormat(0)));
 
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat()));
+			_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_RegisteredClass, _inputData.RegisteredClass.ToXMLFormat()));
 
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck, _inputData.NumberPassengerSeatsLowerDeck));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck, _inputData.NumberPassengersStandingUpperDeck));
-
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck, _inputData.NumberPassengerSeatsUpperDeck));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck, _inputData.NumberPassengersStandingUpperDeck));
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Vehicle_BodyworkCode, _inputData.VehicleCode.ToXMLFormat()));
-
-			_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry));
+			_Xelement.Add(_groupWriterFactory.GetVehicleDeclarationGroupWriter(GroupNames.Vehicle_CompletedBus_PassengerCountSequenceGroup, _defaultNamespace).GetGroupElements(_inputData));
+			
+			_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Vehicle_BodyworkCode, _inputData.VehicleCode.ToXMLFormat()));
 
-			//_Xelement.Add(new XElement(_defaultNamespace + XMLNames.Bus_HeighIntegratedBody, _inputData.Height?.ConvertToMilliMeter()));
+			_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Bus_LowEntry, _inputData.LowEntry));
 
-			_Xelement.DescendantsAndSelf().Where(e => e.Value.IsNullOrEmpty()).Remove();
+			_Xelement.AddIfContentNotNull(new XElement(_defaultNamespace + XMLNames.Bus_HeightIntegratedBody, _inputData.Height?.ConvertToMilliMeter()));
 		}
 
 		#endregion
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
index b9560cbdb3d7608712930cbf5ae9241a8b9a815a..e487bb508388f1170b0c2c1ee26f37c9b9e24a9b 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLMultistageBusReport.cs
@@ -16,6 +16,7 @@ using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
 using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.CompletedBus;
 using TUGraz.VectoCore.Utils;
 using TUGraz.VectoHashing;
 
@@ -26,8 +27,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		protected override XElement GetVehicleElement(string vehicleId)
 		{
 			return new XElement(tns + XMLNames.Tag_Vehicle,
-				new XAttribute("xmlns", v210),
 				new XAttribute(xsi + XMLNames.Attr_Type, "Vehicle_Exempted_CompletedBusType"),
+				new XAttribute("xmlns", v210),
 				new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
 				new XElement(v210 + XMLNames.Component_Manufacturer, _vehicleInputData.Manufacturer),
 				new XElement(v210 + XMLNames.Component_ManufacturerAddress, _vehicleInputData.ManufacturerAddress),
@@ -222,10 +223,20 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 				new XElement(tns + XMLNames.Report_DataWrap,
 					new XAttribute(xsi + XMLNames.Attr_Type, "BusManufacturingStageDataType"),
 					new XAttribute(XMLNames.Component_ID_Attr, multistageId),
+					new XAttribute("xmlns", tns),
 					GetHashPreviousStageElement(),
 					GetVehicleElement(vehicleId),
 					GetApplicationInformation()));
 
+			//TODO:REMOVE
+			try {
+				var vehicleElement = GetVehicleElement(vehicleId);
+				Debug.WriteLine(vehicleElement.ToString());
+#pragma warning disable 168
+			} catch (Exception e) {
+#pragma warning restore 168
+				//
+			}
 			var sigXElement = GetSignatureElement(stage);
 			stage.LastNode.Parent.Add(sigXElement);
 			return stage;
@@ -255,50 +266,26 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		
 		protected virtual XElement GetVehicleElement(string vehicleId)
 		{
+
+			//CHeck airdrag entry
+			GetAirdragModifiedMultistageEntry();
 			return new XElement(tns + XMLNames.Tag_Vehicle,
-				new XAttribute("xmlns", v210),
 				new XAttribute(xsi + XMLNames.Attr_Type, "Vehicle_Conventional_CompletedBusDeclarationType"),
 				new XAttribute(XMLNames.Component_ID_Attr, vehicleId),
-				new XElement(v210 + XMLNames.Component_Manufacturer, _vehicleInputData.Manufacturer),
-				new XElement(v210 + XMLNames.Component_ManufacturerAddress, _vehicleInputData.ManufacturerAddress),
-				new XElement(v210 + XMLNames.Vehicle_VIN, _vehicleInputData.VIN),
-				new XElement(v210 + XMLNames.Component_Date,
-					XmlConvert.ToString(_vehicleInputData.Date, XmlDateTimeSerializationMode.Utc)),
-				_vehicleInputData.Model != null
-					? new XElement(v210 + XMLNames.Component_Model, _vehicleInputData.Model) : null,
-				_vehicleInputData.LegislativeClass != null
-					? new XElement(v210 + XMLNames.Vehicle_LegislativeCategory, _vehicleInputData.LegislativeClass.ToXMLFormat()) : null,
-				_vehicleInputData.CurbMassChassis != null
-					? new XElement(v210 + XMLNames.CorrectedActualMass, _vehicleInputData.CurbMassChassis.ToXMLFormat(0)) : null,
-				_vehicleInputData.GrossVehicleMassRating != null
-					? new XElement(v210 + XMLNames.TPMLM, _vehicleInputData.GrossVehicleMassRating.ToXMLFormat(0)) : null,
-				GetAirdragModifiedMultistageEntry(),
-				_vehicleInputData.TankSystem != null 
-					? new XElement(v210 + XMLNames.Vehicle_NgTankSystem, _vehicleInputData.TankSystem.ToString()) : null,
-				_vehicleInputData.RegisteredClass != null
-					? new XElement(v210 + XMLNames.Vehicle_RegisteredClass, _vehicleInputData.RegisteredClass.ToXMLFormat()) : null,
-				_vehicleInputData.NumberPassengerSeatsLowerDeck != null 
-					? new XElement(v210 + XMLNames.Bus_NumberPassengerSeatsLowerDeck, _vehicleInputData.NumberPassengerSeatsLowerDeck) : null,
-				_vehicleInputData.NumberPassengersStandingLowerDeck != null
-					? new XElement(v210 + XMLNames.Bus_NumberPassengersStandingLowerDeck, _vehicleInputData.NumberPassengersStandingLowerDeck) : null,
-				_vehicleInputData.NumberPassengerSeatsUpperDeck != null
-					? new XElement(v210 + XMLNames.Bus_NumberPassengerSeatsUpperDeck, _vehicleInputData.NumberPassengerSeatsUpperDeck) : null,
-				_vehicleInputData.NumberPassengersStandingUpperDeck != null
-					? new XElement(v210 + XMLNames.Bus_NumberPassengersStandingUpperDeck, _vehicleInputData.NumberPassengersStandingUpperDeck) : null,
+				new XAttribute("xmlns", v210),
+				CompletedBusGeneralParametersWriterV2_10_2.GetGroupElements(_vehicleInputData, v210),
+				CompletedBusParametersWriterV2_10_2.GetGroupElements(_vehicleInputData, v210),
+				_vehicleInputData.TankSystem != null
+					? new XElement(v210 + XMLNames.Vehicle_NgTankSystem, _vehicleInputData.TankSystem.ToString())
+					: null,
+				CompletedBusPassengerCountWriter_V2_10_2.GetGroupElements(_vehicleInputData, v210),
 				_vehicleInputData.VehicleCode != null
-					? new XElement(v210 + XMLNames.Vehicle_BodyworkCode, _vehicleInputData.VehicleCode.ToXMLFormat()) : null,
-				_vehicleInputData.LowEntry != null
-					? new XElement(v210 + XMLNames.Bus_LowEntry, _vehicleInputData.LowEntry) : null,
-				_vehicleInputData.Height != null
-					? new XElement(v210 + XMLNames.Bus_HeightIntegratedBody, _vehicleInputData.Height.ConvertToMilliMeter().ToXMLFormat(0)) : null,
-				_vehicleInputData.Length != null
-					? new XElement(v210 + XMLNames.Bus_VehicleLength, _vehicleInputData.Length.ConvertToMilliMeter().ToXMLFormat(0)) : null,
-				_vehicleInputData.Width != null 
-					? new XElement(v210 + XMLNames.Bus_VehicleWidth, _vehicleInputData.Width.ConvertToMilliMeter().ToXMLFormat(0)) : null,
-				_vehicleInputData.EntranceHeight != null 
-					? new XElement(v210 + XMLNames.Bus_EntranceHeight, _vehicleInputData.EntranceHeight.ConvertToMilliMeter().ToXMLFormat(0)) : null,
-				_vehicleInputData.DoorDriveTechnology != null
-					? new XElement(v210 + XMLNames.Bus_DoorDriveTechnology, _vehicleInputData.DoorDriveTechnology.ToXMLFormat()) : null,
+                    ? new XElement(v210 + XMLNames.Vehicle_BodyworkCode, _vehicleInputData.VehicleCode.ToXMLFormat())
+                    : null,
+                _vehicleInputData.LowEntry != null
+                    ? new XElement(v210 + XMLNames.Bus_LowEntry, _vehicleInputData.LowEntry)
+                    : null,
+                CompletedBusDimensionsWriter_V2_10_2.GetGroupElements(_vehicleInputData, v210),
 				new XElement(v210 + XMLNames.Bus_VehicleDeclarationType, _vehicleInputData.VehicleDeclarationType.GetLabel()),
 				GetADAS(_vehicleInputData.ADAS),
 				GetBusVehicleComponents(_vehicleInputData.Components)
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
index b32cabe304e9759924347a98e3a972fccd6e0b2f..42baf75f54dce3ae80831fc19565c555d4f29ef2 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/XMLPrimaryBusVehicleReport.cs
@@ -151,7 +151,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 				GetTorqueLimits(modelData),
 				VehicleComponents(modelData, fuelModes)
 			);
-
+			
 			InputDataIntegrity = new XElement(tns + XMLNames.Report_InputDataSignature,
 											modelData.InputDataHash == null ? XMLHelper.CreateDummySig(di) : new XElement(modelData.InputDataHash));
 		}
diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs
index 128904dbff29291c6d10acc983ffa9efe7ae7768..c0d005308ac847441b8a6449d9c4d99170284096 100644
--- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusDimensionsWriter.cs
@@ -8,6 +8,7 @@ using Castle.Components.DictionaryAdapter;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.CompletedBus
 {
@@ -15,16 +16,28 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
     {
 		public CompletedBusDimensionsWriter_V2_10_2(XNamespace writerNamespace) : base(writerNamespace) { }
 
-		public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
+		public static XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle, XNamespace writerNamespace)
 		{
+			if (vehicle.IsAnyNull(vehicle.Height, vehicle.Length, vehicle.Width, vehicle.EntranceHeight)) {
+				return new XElement[0];
+			}
 			return new XElement[] {
-				new XElement(_writerNamespace + XMLNames.Bus_HeightIntegratedBody,
+				new XElement(writerNamespace + XMLNames.Bus_HeightIntegratedBody,
 					vehicle.Height.ConvertToMilliMeter()),
-				new XElement(_writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter()),
-				new XElement(_writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter()),
-				new XElement(_writerNamespace + XMLNames.Bus_EntranceHeight,
+				new XElement(writerNamespace + XMLNames.Bus_VehicleLength, vehicle.Length.ConvertToMilliMeter()),
+				new XElement(writerNamespace + XMLNames.Bus_VehicleWidth, vehicle.Width.ConvertToMilliMeter()),
+				new XElement(writerNamespace + XMLNames.Bus_EntranceHeight,
 					vehicle.EntranceHeight.ConvertToMilliMeter())
 			};
 		}
+
+		#region Implementation of IVehicleDeclarationGroupWriter
+
+		public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
+		{
+			return GetGroupElements(vehicle, _writerNamespace);
+		}
+
+		#endregion
 	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusGeneralParametersWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusGeneralParametersWriter.cs
index 9a1cb766336c5b282397d1ca7de4527799e4cd2b..cc19f92a53a27630b6ef3fec090ac9c7a3bd57a0 100644
--- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusGeneralParametersWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusGeneralParametersWriter.cs
@@ -22,13 +22,18 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
 		#region Overrides of GroupWriter
 
 		public XElement[] GetGroupElements(IVehicleDeclarationInputData inputData)
+		{
+			return GetGroupElements(inputData, _writerNamespace);
+		}
+
+		public static XElement[] GetGroupElements(IVehicleDeclarationInputData inputData, XNamespace writerNamespace)
 		{
 			return new XElement[] {
-				new XElement(_writerNamespace + XMLNames.Component_Manufacturer, inputData.Manufacturer),
-				new XElement(_writerNamespace + XMLNames.Component_ManufacturerAddress,
-				inputData.ManufacturerAddress),
-				new XElement(_writerNamespace + XMLNames.Vehicle_VIN, inputData.VIN),
-				new XElement(_writerNamespace + XMLNames.Component_Date, inputData.Date.ToXmlFormat())
+				new XElement(writerNamespace + XMLNames.Component_Manufacturer, inputData.Manufacturer),
+				new XElement(writerNamespace + XMLNames.Component_ManufacturerAddress,
+					inputData.ManufacturerAddress),
+				new XElement(writerNamespace + XMLNames.Vehicle_VIN, inputData.VIN),
+				new XElement(writerNamespace + XMLNames.Component_Date, inputData.Date.ToXmlFormat())
 			};
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusParametersWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusParametersWriter.cs
index f8e517108fe90cfe034987f71532f33d6dcf439a..3007e2023d85180073e96ba84241413d3c1d1f64 100644
--- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusParametersWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusParametersWriter.cs
@@ -15,45 +15,52 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
 	{
 		public CompletedBusParametersWriterV2_10_2(XNamespace writerNamespace) : base(writerNamespace) { }
 
-		#region Overrides of GroupWriter
 
-		public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
+		public static XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle, XNamespace writerNamespace)
 		{
 			var elements = new List<XElement>();
 
 			if (vehicle.Model != null) {
-				elements.Add( new XElement(_writerNamespace + XMLNames.Component_Model, 
+				elements.Add(new XElement(writerNamespace + XMLNames.Component_Model,
 					vehicle.Model));
 			}
 
 			if (vehicle.LegislativeClass != null) {
-				elements.Add(new XElement(_writerNamespace + XMLNames.Vehicle_LegislativeCategory,
+				elements.Add(new XElement(writerNamespace + XMLNames.Vehicle_LegislativeCategory,
 					vehicle.LegislativeClass.ToXMLFormat()));
 			}
 
 			if (vehicle.CurbMassChassis != null) {
-				elements.Add(new XElement(_writerNamespace + XMLNames.CorrectedActualMass,
+				elements.Add(new XElement(writerNamespace + XMLNames.CorrectedActualMass,
 					vehicle.CurbMassChassis.ToXMLFormat(0)));
 			}
 
 			if (vehicle.GrossVehicleMassRating != null) {
-				elements.Add(new XElement(_writerNamespace + XMLNames.Vehicle_TPMLM,
+				elements.Add(new XElement(writerNamespace + XMLNames.Vehicle_TPMLM,
 					vehicle.GrossVehicleMassRating.ToXMLFormat(0)));
 			}
 
 			if (vehicle.AirdragModifiedMultistage != null) {
-                elements.Add(new XElement(_writerNamespace + XMLNames.Bus_AirdragModifiedMultistage,
-                    vehicle.AirdragModifiedMultistage));
+				elements.Add(new XElement(writerNamespace + XMLNames.Bus_AirdragModifiedMultistage,
+					vehicle.AirdragModifiedMultistage));
 			}
 
 			if (vehicle.RegisteredClass != null) {
-				elements.Add(new XElement(_writerNamespace + XMLNames.Vehicle_RegisteredClass, 
+				elements.Add(new XElement(writerNamespace + XMLNames.Vehicle_RegisteredClass,
 					vehicle.RegisteredClass.ToXMLFormat()));
 			}
 
 			return elements.ToArray();
 		}
-		#endregion
 
+
+		#region Implementation of IVehicleDeclarationGroupWriter
+
+		public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
+		{
+			return GetGroupElements(vehicle, _writerNamespace);
+		}
+
+		#endregion
 	}
 }
diff --git a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusPassengerCountWriter.cs b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusPassengerCountWriter.cs
index 0f1be56963923b2493316586ea254cbd0df2cfbc..4efe71fc36acdb9c76da679fd472f98361e9d9fd 100644
--- a/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusPassengerCountWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/GroupWriter/Declaration/Vehicle/CompletedBus/CompletedBusPassengerCountWriter.cs
@@ -7,6 +7,7 @@ using System.Xml.Linq;
 using Castle.Components.DictionaryAdapter;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.CompletedBus
 {
@@ -15,29 +16,39 @@ namespace TUGraz.VectoCore.OutputData.XML.GroupWriter.Declaration.Vehicle.Comple
 		public CompletedBusPassengerCountWriter_V2_10_2(XNamespace writerNamespace) : base(writerNamespace) { }
 
 
-		#region Implementation of IGroupWriter
 
 
-		public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
+		public static XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle, XNamespace writerNamespace)
 		{
+			if (vehicle.IsAnyNull(vehicle.NumberPassengersStandingLowerDeck, vehicle.NumberPassengersStandingUpperDeck,
+				vehicle.NumberPassengerSeatsLowerDeck, vehicle.NumberPassengerSeatsUpperDeck)) {
+				return new XElement[0];
+			}
 			return new XElement[] {
-				new XElement(_writerNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck,
+				new XElement(writerNamespace + XMLNames.Bus_NumberPassengerSeatsLowerDeck,
 					vehicle.NumberPassengerSeatsLowerDeck),
 
-				new XElement(_writerNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck,
+				new XElement(writerNamespace + XMLNames.Bus_NumberPassengersStandingLowerDeck,
 					vehicle.NumberPassengersStandingLowerDeck),
 
-				new XElement(_writerNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck,
+				new XElement(writerNamespace + XMLNames.Bus_NumberPassengerSeatsUpperDeck,
 					vehicle.NumberPassengerSeatsUpperDeck),
 
-				new XElement(_writerNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck,
+				new XElement(writerNamespace + XMLNames.Bus_NumberPassengersStandingUpperDeck,
 					vehicle.NumberPassengersStandingUpperDeck),
 			};
 		}
 
-		#endregion
 
 
+		#region Implementation of IVehicleDeclarationGroupWriter
+
+		public XElement[] GetGroupElements(IVehicleDeclarationInputData vehicle)
+		{
+			return GetGroupElements(vehicle, _writerNamespace);
+		}
+
+		#endregion
 	}
 
 }