diff --git a/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs b/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs
index 0cb0972c5f07f435817499fe39c5e93a7ce4a28b..48ad1a6d264c3d862f6bbb8705545abd278fa0fe 100644
--- a/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs
@@ -14,6 +14,7 @@ namespace VECTO3GUI2020.Ninject.Factories
             LoadModule<ComponentViewModelFactoryModule>();
             LoadModule<VehicleViewModelFactoryModule>();
             LoadModule<XMLWriterFactoryModule>();
+			LoadModule<MultistepComponentViewModelFactory>();
 
             //Bind<IXMLWriterFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider(fallback: true));
             //Bind<IMultiStageViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: true, fallback: true));
diff --git a/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs b/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs
index b60790bcd16fd8ded95b9825fcf61b46dcfa0a4c..2940a013e0b9d2d3816ebccc76b813deff2dfcde 100644
--- a/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs
@@ -28,18 +28,18 @@ namespace VECTO3GUI2020.Ninject.Factories
 
         private readonly IDocumentViewModelFactory _documentViewModelFactory;
 		private readonly IVehicleViewModelFactory _vehicleViewModelFactory;
-        private readonly IComponentViewModelFactory _componentViewModelFactory;
+        private readonly IMultistepComponentViewModelFactory _multistepComponentViewModelFactory;
 
         public MultiStageViewModelFactory(
             IMultiStageViewModelFactoryDefaultInstanceProvider multiStageVmFactoryDefaultInstanceProvider,
             IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider multistageViewModelFactoryFirstParameterAsNameInstanceProvider,
             IDocumentViewModelFactory documentViewModelFactory,
-            IVehicleViewModelFactory vehicleViewModelFactory)
+            IVehicleViewModelFactory vehicleViewModelFactory, IMultistepComponentViewModelFactory multistepComponentViewModelFactory)
         {
             _multiStageVmFactoryDefaultInstanceProvider = multiStageVmFactoryDefaultInstanceProvider;
             _multistageViewModelFactoryFirstParameterAsNameInstanceProvider = multistageViewModelFactoryFirstParameterAsNameInstanceProvider;
 
-
+			_multistepComponentViewModelFactory = multistepComponentViewModelFactory;
             _documentViewModelFactory = documentViewModelFactory;
             _vehicleViewModelFactory = vehicleViewModelFactory;
         }
@@ -91,27 +91,19 @@ namespace VECTO3GUI2020.Ninject.Factories
             return _multiStageVmFactoryDefaultInstanceProvider.GetMultistageAirdragViewModel(consolidatedAirdragInputData);
         }
 
-        public IMultistageAuxiliariesViewModel GetAuxiliariesViewModel()
+        public IMultistageAuxiliariesViewModel GetAuxiliariesViewModel(
+			StageInputViewModel.CompletedBusArchitecture arch)
         {
-            return _multiStageVmFactoryDefaultInstanceProvider.GetAuxiliariesViewModel();
+            return _multistepComponentViewModelFactory.CreateNewMultistepBusAuxViewModel(arch);
         }
 
         public IMultistageAuxiliariesViewModel
-            GetAuxiliariesViewModel(IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData)
+			GetAuxiliariesViewModel(StageInputViewModel.CompletedBusArchitecture arch,
+				IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData)
         {
-            return _multiStageVmFactoryDefaultInstanceProvider.GetAuxiliariesViewModel(consolidatedAuxiliariesInputData);
+            return _multistepComponentViewModelFactory.CreateNewMultistepBusAuxViewModel(arch);
         }
 
-        //public ICreateVifViewModel GetCreateNewVifViewModel(bool completed)
-        //{
-        //	return _multiStageVmFactoryDefaultInstanceProvider.GetCreateNewVifViewModel(completed);
-        //}
-
-        //public ICreateVifViewModel GetCreateNewVifViewModel()
-        //{
-        //	return _multiStageVmFactoryDefaultInstanceProvider.GetCreateNewVifViewModel();
-        //}
-
         #endregion
 
 
diff --git a/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs b/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs
index 64701af2957900d47294b6e490b3b01922e6d2a5..7c6465ad72217188e4a7aa8da12af936c151b32e 100644
--- a/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs
@@ -1,6 +1,13 @@
-using Ninject.Extensions.Factory;
+using System;
+using System.Diagnostics;
+using System.Xml.Linq;
+using Ninject.Extensions.Factory;
 using Ninject.Modules;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoCore.Utils.Ninject;
 using VECTO3GUI2020.Model.Multistage;
 using VECTO3GUI2020.ViewModel.Implementation.Common;
 using VECTO3GUI2020.ViewModel.Interfaces.Common;
@@ -11,50 +18,56 @@ using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
 
 namespace VECTO3GUI2020.Ninject.Factories
 {
-    //   public class MultistageViewModelModule : NinjectModule
-    //   {
-    //	public override void Load()
-    //	{
+	public interface IMultistepComponentViewModelFactory
+	{
+		IMultistageAuxiliariesViewModel CreateMultistepBusAuxViewModel(StageInputViewModel.CompletedBusArchitecture arch, IBusAuxiliariesDeclarationData consolidatedInputData);
+		IMultistageAuxiliariesViewModel CreateNewMultistepBusAuxViewModel(StageInputViewModel.CompletedBusArchitecture arch);
+	}
 
-    //		Bind<IViewModelBase>().To<NewMultiStageJobViewModel>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetNewMultistageJobViewModel());
 
-    //		Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null));
+	public class MultistepComponentViewModelFactory : AbstractNinjectModule
+	{
+		private string scopeName = "MultistepComponent";
+		#region Overrides of NinjectModule
 
-    //		Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel());
+		public override void Load()
+		{
+			Bind<IMultistepComponentViewModelFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(new[] {
+				new CombineArgumentsToNameInstanceProvider.MethodSettings() {
+					methods = new[] {
+						typeof(IMultistepComponentViewModelFactory).GetMethod(nameof(IMultistepComponentViewModelFactory.CreateNewMultistepBusAuxViewModel)),
+						typeof(IMultistepComponentViewModelFactory).GetMethod(nameof(IMultistepComponentViewModelFactory.CreateMultistepBusAuxViewModel))
+					},
+					combineToNameDelegate = (args) => {
+						if (args.Length >= 1 && args[0] is StageInputViewModel.CompletedBusArchitecture arch) {
+							return arch.ToString();
+						}
+						throw new ArgumentException($"arg[0] must be {nameof(StageInputViewModel.CompletedBusArchitecture)}");
+					},
+					skipArguments = 1,
+					takeArguments = 1
+				}
+			})).Named(scopeName);
+			AddBinding<IMultistageAuxiliariesViewModel, MultistageAuxiliariesViewModel_Conventional>(StageInputViewModel.CompletedBusArchitecture.Conventional);
+			AddBinding<IMultistageAuxiliariesViewModel, MultistageAuxiliariesViewModel_xEV>(StageInputViewModel.CompletedBusArchitecture.HEV);
+			AddBinding<IMultistageAuxiliariesViewModel, MultistageAuxiliariesViewModel_xEV>(StageInputViewModel.CompletedBusArchitecture.PEV);
+			AddBinding<IMultistageAuxiliariesViewModel, MultistageAuxiliariesViewModel_xEV>(StageInputViewModel.CompletedBusArchitecture.IEPC);
+		}
 
-    //		Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetManufacturingStageViewModel(null, false));
+		[DebuggerStepThrough]
+		public string GetName(StageInputViewModel.CompletedBusArchitecture arch)
+		{
+			return arch.ToString();
+		}
+		#endregion
 
-    //		Bind<IMultistageAirdragViewModel>().To<MultistageAirdragViewModel>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultistageAirdragViewModel());
 
-    //		Bind<IMultistageAuxiliariesViewModel>().To<MultistageAuxiliariesViewModel>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetAuxiliariesViewModel(null));
+		public void AddBinding<TInterface, TConcrete>(StageInputViewModel.CompletedBusArchitecture arch)
+			where TConcrete : class, TInterface
+		{
+			Bind<TInterface>().To<TConcrete>().WhenParentNamed(scopeName).Named(GetName(arch));
+		}
 
-    //		Bind<IMultistageDependencies>().To<MultistageLazyDependencies>();
+	}
 
-    //		Bind<ICreateVifViewModel>().To<CreateVifViewModel>().
-    //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetCreateNewVifViewModel());
-
-    //		Bind<IDocumentViewModel>().To<StageInputViewModel>()
-    //			.Named(typeof(XMLDeclarationInputDataProviderV20).ToString());
-
-    //		Bind<IDocumentViewModel>().To<StageInputViewModel>()
-    //			.NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetStageInputViewModel(default(bool)));
-
-    //		Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelMultiStage>()
-    //			.WhenInjectedInto(typeof(IMultiStageJobViewModel));
-
-    //		Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelNewVif>()
-    //			.WhenInjectedInto(typeof(ICreateVifViewModel));
-
-    //		Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelStageInput>()
-    //			.WhenInjectedInto(typeof(IStageViewModelBase));
-
-    //		Bind<JSONJob>().ToSelf();
-    //	}
-    //}
 }
diff --git a/VECTO3GUI2020/Ninject/MultistageModule.cs b/VECTO3GUI2020/Ninject/MultistageModule.cs
index caadf12e0753ba85ada6a6d42b5f9f2caedabbe4..e69b3286a00e170deb907c5a72dde4ec888c5fbb 100644
--- a/VECTO3GUI2020/Ninject/MultistageModule.cs
+++ b/VECTO3GUI2020/Ninject/MultistageModule.cs
@@ -22,29 +22,15 @@ namespace VECTO3GUI2020.Ninject
 			Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>().
 				NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null));
 
-			//Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel>().
-			//	NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel());
-
 			Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>().
 				NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetManufacturingStageViewModel(null, false));
 
 			Bind<IMultistageAirdragViewModel>().To<MultistageAirdragViewModel>().
 				NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultistageAirdragViewModel());
 
-			Bind<IMultistageAuxiliariesViewModel>().To<MultistageAuxiliariesViewModel>().
-				NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetAuxiliariesViewModel(null));
 
 			Bind<IMultistageDependencies>().To<MultistageLazyDependencies>();
 
-			//Bind<ICreateVifViewModel>().To<CreateVifViewModel>().
-			//	NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetCreateNewVifViewModel());
-
-			//Bind<IDocumentViewModel>().To<StageInputViewModel>()
-			//	.Named(typeof(XMLDeclarationInputDataProviderV20).ToString());
-
-			//Bind<IDocumentViewModel>().To<StageInputViewModel>()
-			//	.NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetStageInputViewModel(default(bool)));
-
 			Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelMultiStage>()
 				.WhenInjectedInto(typeof(IMultiStageJobViewModel));
 
diff --git a/VECTO3GUI2020/Resources/XML/XMLTypes.cs b/VECTO3GUI2020/Resources/XML/XMLTypes.cs
index 81c8bcaeb4e5634b7e24c5fab293763fe7f46db2..3cc7b697a06b292e3f25415e7acc7d633611ce63 100644
--- a/VECTO3GUI2020/Resources/XML/XMLTypes.cs
+++ b/VECTO3GUI2020/Resources/XML/XMLTypes.cs
@@ -1,11 +1,28 @@
-namespace VECTO3GUI2020.Resources.XML
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
+
+namespace VECTO3GUI2020.Resources.XML
 {
 	public static class XMLTypes
 	{
-		
+		#region Vehicle
+
+		public const string Vehicle_Conventional_CompletedBusDeclarationType =
+			XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE;
+		public const string Vehicle_Hev_CompletedBusDeclarationType =
+			XMLDeclarationHevCompletedBusDataProviderV24.XSD_TYPE;
+		public const string Vehicle_Pev_CompletedBusDeclarationType =
+			XMLDeclarationPEVCompletedBusDataProviderV24.XSD_TYPE;
+		public const string Vehicle_Iepc_CompletedBusDeclarationType =
+			XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE;
+
+		public const string Vehicle_Exempted_CompletedBusDeclarationType =
+			XMLDeclarationExemptedCompletedBusDataProviderV24.XSD_TYPE;
+
+
+        #endregion
 
-		#region Components
-		public const string Components_xEV_CompletedBusType = "Components_xEV_CompletedBusType";
+        #region Components
+        public const string Components_xEV_CompletedBusType = "Components_xEV_CompletedBusType";
 		public const string Components_Conventional_CompletedBusType = "Components_Conventional_CompletedBusType";
 		#endregion 
 
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
index 813df32c9a351a28ad05b07511e9a63342bf79a4..b45d4c152f99810f6d4caa6fd78a1d47389f36bc 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
@@ -16,6 +16,8 @@ using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
 using TUGraz.VectoCore.Utils;
 using VECTO3GUI2020.Helper;
 using VECTO3GUI2020.Properties;
+using VECTO3GUI2020.Resources.XML;
+using VECTO3GUI2020.Util.XML;
 using VECTO3GUI2020.ViewModel.Implementation.Common;
 using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components;
 using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
@@ -107,13 +109,18 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		#endregion
 
-
+		protected bool _exemptedVehicle;
 
 		public string Name => "Vehicle";
 
 		public bool IsPresent => true;
 
-		public DataSource DataSource { get; private set; }
+		public DataSource DataSource => new DataSource() {
+			TypeVersion = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24,
+			Type = XMLType
+		};
+
+		public abstract string XMLType { get; }
 
 		public bool SavedInDeclarationMode => true;
 
@@ -151,11 +158,11 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			InitEmpty();
 		}
 
-		protected InterimStageBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData, IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory)
+		protected InterimStageBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData, IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory, bool exemptedVehicle = false)
 		{
 			_multiStageViewModelFactory = multistepViewModelFactory;
 			var vehicleData = consolidatedVehicleData ?? vehicleInput;
-			_exemptedVehicle = vehicleData.ExemptedVehicle;
+			_exemptedVehicle = exemptedVehicle;
 
             if (consolidatedVehicleData != null && vehicleInput == null) {
 				InitConsolidated(consolidatedVehicleData);
@@ -174,38 +181,6 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		private void SetDataSource(IVehicleDeclarationInputData inputData)
 		{
-			//if (inputData.DataSource == null) {
-			//	XNamespace version = XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24;
-			//	var type = "";
-			//	if (inputData.ExemptedVehicle) {
-			//		type = XMLDeclarationExemptedCompletedBusDataProviderV24.XSD_TYPE;
-			//	} else {
-			//		switch (inputData.VehicleType) {
-			//			case VectoSimulationJobType.ConventionalVehicle:
-			//				type = XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE;
-			//			case VectoSimulationJobType.ParallelHybridVehicle:
-			//			case VectoSimulationJobType.SerialHybridVehicle:
-			//			case VectoSimulationJobType.IHPC:
-			//				break;
-   //                     case VectoSimulationJobType.BatteryElectricVehicle:
-			//				break;
-			
-			//			case VectoSimulationJobType.IEPC_E:
-			//				break;
-			//			case VectoSimulationJobType.IEPC_S:
-			//				break;
-
-			//			case VectoSimulationJobType.EngineOnlySimulation:
-			//				break;
-   //                     default:
-			//				throw new ArgumentOutOfRangeException();
-			//		}
-
-   //             }
-				
-			//} else {
-			//	DataSource = inputData.DataSource;
-			//}
 
 		}
 
@@ -213,7 +188,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		{
 			if (!_exemptedVehicle) {
 				MultistageAirdragViewModel = _multiStageViewModelFactory.GetMultistageAirdragViewModel();
-				MultistageAuxiliariesViewModel = _multiStageViewModelFactory.GetAuxiliariesViewModel();
+				MultistageAuxiliariesViewModel = _multiStageViewModelFactory.GetAuxiliariesViewModel(Architecture);
 				MultistageAirdragViewModel.AirdragViewModelChanged += ((sender, args) => {
 					if (sender is IMultistageAirdragViewModel vm)
 					{
@@ -250,7 +225,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 				});
 
 				MultistageAuxiliariesViewModel =
-					_multiStageViewModelFactory.GetAuxiliariesViewModel(consolidatedVehicleData?.Components?
+					_multiStageViewModelFactory.GetAuxiliariesViewModel(Architecture, consolidatedVehicleData?.Components?
 						.BusAuxiliaries);
 			}
 
@@ -272,7 +247,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			if (!_exemptedVehicle)
 			{
 				MultistageAirdragViewModel = _multiStageViewModelFactory.GetMultistageAirdragViewModel();
-				MultistageAuxiliariesViewModel = _multiStageViewModelFactory.GetAuxiliariesViewModel();
+				MultistageAuxiliariesViewModel = _multiStageViewModelFactory.GetAuxiliariesViewModel(Architecture);
 			}
 
 			CreateParameterViewModels();
@@ -440,9 +415,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public void SetVehicleInputData(IVehicleDeclarationInputData vehicleInputData, bool checkExempted)
 		{
-			if (checkExempted && vehicleInputData.ExemptedVehicle != ExemptedVehicle) {
-				throw new VectoException(ExemptedVehicle ? "Only exempted stage inputs are allowed" : "Exempted Vehicle not allowed");
-			}
+			//if (checkExempted && vehicleInputData.ExemptedVehicle != ExemptedVehicle) {
+			//	throw new VectoException(ExemptedVehicle ? "Only exempted stage inputs are allowed" : "Exempted Vehicle not allowed");
+			//}
 
 			if (ExemptedVehicle) {
 				SetExemptedVehicleInputData(vehicleInputData);
@@ -1283,7 +1258,6 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		private bool _airdragModifiedMultistepMandatory;
 		private int? _numberPassengersStandingLowerDeck;
 		private int? _numberPassengersStandingUpperDeck;
-		protected bool _exemptedVehicle;
 
 	}
 
@@ -1303,6 +1277,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		public override StageInputViewModel.CompletedBusArchitecture Architecture =>
 			StageInputViewModel.CompletedBusArchitecture.Conventional;
 
+		public override string XMLType => XMLTypes.Vehicle_Conventional_CompletedBusDeclarationType;
+
 		#endregion
 	}
 	
@@ -1311,20 +1287,19 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 	{
 		public InterimStageExemptedBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData,
 			IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory) : base(
-			consolidatedVehicleData, vehicleInput, multistepViewModelFactory)
+			consolidatedVehicleData, vehicleInput, multistepViewModelFactory,exemptedVehicle:true)
 		{
-			_exemptedVehicle = true;
 		}
 
 		public InterimStageExemptedBusVehicleViewModel(IMultiStageViewModelFactory multistepViewModelFactory) : base(multistepViewModelFactory, exempted:true)
 		{
 			
 		}
+		public override string XMLType => XMLTypes.Vehicle_Exempted_CompletedBusDeclarationType;
 
+        #region Overrides of InterimStageBusVehicleViewModel
 
-		#region Overrides of InterimStageBusVehicleViewModel
-
-		public override StageInputViewModel.CompletedBusArchitecture Architecture =>
+        public override StageInputViewModel.CompletedBusArchitecture Architecture =>
 			StageInputViewModel.CompletedBusArchitecture.Exempted;
 
 		#endregion
@@ -1345,7 +1320,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		{
 			get => StageInputViewModel.CompletedBusArchitecture.HEV;
 		}
-	}
+
+		public override string XMLType => XMLTypes.Vehicle_Hev_CompletedBusDeclarationType;
+    }
 
 	public class InterimStagePevBusVehicleViewModel : InterimStageBusVehicleViewModel
 	{
@@ -1363,9 +1340,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		{
 			get { return StageInputViewModel.CompletedBusArchitecture.PEV; }
 		}
-
-		#endregion
-	}
+		public override string XMLType => XMLTypes.Vehicle_Pev_CompletedBusDeclarationType;
+        #endregion
+    }
 
 	public class InterimStageIEPCBusVehicleViewModel : InterimStageBusVehicleViewModel
 	{
@@ -1381,8 +1358,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public override StageInputViewModel.CompletedBusArchitecture Architecture =>
 			StageInputViewModel.CompletedBusArchitecture.IEPC;
-
-		#endregion
-	}
+		public override string XMLType => XMLTypes.Vehicle_Iepc_CompletedBusDeclarationType;
+        #endregion
+    }
 
 }
\ No newline at end of file
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs
index 918e5b32ab4dd579c5fb84d6a180ce47950bea56..3e00f6cdacce13de3ad746d017a340470a8c5469 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageAuxiliariesViewModel.cs
@@ -34,15 +34,15 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 	}
 
 
-	public class MultistageAuxiliariesViewModel : ViewModelBase, IMultistageAuxiliariesViewModel, IDataErrorInfo
+	public abstract class MultistageAuxiliariesViewModel : ViewModelBase, IMultistageAuxiliariesViewModel, IDataErrorInfo
 	{
 
-		public MultistageAuxiliariesViewModel()
+		protected MultistageAuxiliariesViewModel()
 		{
 			CreateParameterViewModels();
 		}
 
-		public MultistageAuxiliariesViewModel(IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData)
+		protected MultistageAuxiliariesViewModel(IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData)
 		{
 			ConsolidatedInputData = consolidatedAuxiliariesInputData;
 
@@ -682,4 +682,29 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		#endregion
 	}
+
+
+	public class MultistageAuxiliariesViewModel_Conventional : MultistageAuxiliariesViewModel
+	{
+		public MultistageAuxiliariesViewModel_Conventional() : base()
+		{
+
+		}
+
+		protected MultistageAuxiliariesViewModel_Conventional(IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData) : base(consolidatedAuxiliariesInputData)
+		{
+		
+		}
+    }
+
+	public class MultistageAuxiliariesViewModel_xEV : MultistageAuxiliariesViewModel
+	{
+		public MultistageAuxiliariesViewModel_xEV() : base()
+		{
+			
+		}
+
+		protected MultistageAuxiliariesViewModel_xEV(IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData) : base(consolidatedAuxiliariesInputData)
+		{ }
+	}
 }
\ No newline at end of file
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
index f184661710a2142ea2c103852bc7407924a05058..b93c2ce500415e99472ca37103f8410aa12f90c3 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
@@ -48,8 +48,8 @@ IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
 		IMultistageAirdragViewModel GetMultistageAirdragViewModel(
 			IAirdragDeclarationInputData consolidatedAirdragInputData);
 
-		IMultistageAuxiliariesViewModel GetAuxiliariesViewModel();
-		IMultistageAuxiliariesViewModel GetAuxiliariesViewModel(
+		IMultistageAuxiliariesViewModel GetAuxiliariesViewModel(StageInputViewModel.CompletedBusArchitecture arch);
+		IMultistageAuxiliariesViewModel GetAuxiliariesViewModel(StageInputViewModel.CompletedBusArchitecture arch,
 			IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData);
 	}
 }
diff --git a/Vecto3GUI2020Test/ViewModelTests/FactoryTests/ComponentViewModelFactoryTest.cs b/Vecto3GUI2020Test/ViewModelTests/FactoryTests/ComponentViewModelFactoryTest.cs
index fa391e5afdbc066df59e48098512b605f3c7cf4f..5763f060b3390515f9ab96398d7f7a1c6b046c50 100644
--- a/Vecto3GUI2020Test/ViewModelTests/FactoryTests/ComponentViewModelFactoryTest.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/FactoryTests/ComponentViewModelFactoryTest.cs
@@ -5,6 +5,7 @@ using TUGraz.VectoCore.Utils;
 using VECTO3GUI2020.Ninject.Factories;
 using VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components;
 using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components;
+using VECTO3GUI2020.ViewModel.MultiStage.Implementation;
 using Vecto3GUI2020Test.MockInput;
 using Vecto3GUI2020Test.Utils;
 
@@ -60,5 +61,16 @@ public class ComponentViewModelFactoryTest
 		}
 	}
 
+	[Test]
+	public void CreateMultistepAuxiliaryViewModel([Values] StageInputViewModel.CompletedBusArchitecture arch)
+	{
+		if (arch == StageInputViewModel.CompletedBusArchitecture.Exempted) {
+			return;
+		}
+		var multistepComponentFactory = _kernel.Get<IMultistepComponentViewModelFactory>();
+
+		var auxVm = multistepComponentFactory.CreateNewMultistepBusAuxViewModel(arch);
+	}
+
 
 }
\ No newline at end of file
diff --git a/Vecto3GUI2020Test/ViewModelTests/JobListViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/JobListViewModelTests.cs
index 41153d6123b6a5f09f62b99046776af180dec9bd..044ef9ba0f30c9932611815a0751700bcc3a6967 100644
--- a/Vecto3GUI2020Test/ViewModelTests/JobListViewModelTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/JobListViewModelTests.cs
@@ -133,6 +133,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		}
 
 		[Test, Description("File -> Create Exempted Interim/Completed Input")]
+		[Ignore("Command removed")]
 		public void CreateExemptedStepInput()
 		{
 			_jobListViewModel.NewExemptedCompletedInputCommand.Execute(null);
@@ -186,18 +187,9 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		}
 
 		[TestCase(true, TestName = "Exempted")]
-		[TestCase(false, TestName = "NotExempted")]
 		public void addNewFilesToJobList(bool exempted)
 		{
-			if (exempted)
-			{
-				_jobListViewModel.NewExemptedCompletedInputCommand.Execute(null);
-			}
-			else
-			{
-				_jobListViewModel.NewCompletedInputCommand.Execute(null);
-			}
-
+			_jobListViewModel.NewCompletedInputCommand.Execute(null);
 			Assert.AreEqual(1, _jobListViewModel.Jobs.Count);
 		}
 
diff --git a/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs
index 3a51f0eb107d23ac241809d7562ca0374e67a41c..757b42a486621b97b7bf8e32f64f35b2c8667c34 100644
--- a/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/MultistageAuxiliariesViewModelTests.cs
@@ -3,26 +3,38 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using Ninject;
 using NUnit.Framework;
 using TUGraz.VectoCommon.BusAuxiliaries;
 using VECTO3GUI2020.ViewModel.MultiStage.Implementation;
+using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
 
 namespace Vecto3GUI2020Test.ViewModelTests
 {
 	[TestFixture]
 	public class MultistageAuxiliariesViewModelTests : ViewModelTestBase
 	{
+		private IMultiStageViewModelFactory _viewModelFactory;
+
+		[SetUp]
+		public void Setup()
+		{
+			_kernel = TestHelper.GetKernel();
+			_viewModelFactory = _kernel.Get<IMultiStageViewModelFactory>();
+		}
+		[TestCase(StageInputViewModel.CompletedBusArchitecture.Conventional)]
+		[TestCase(StageInputViewModel.CompletedBusArchitecture.HEV)]
+        public void TestAllowedValuesHeatPumpTypeDriver(StageInputViewModel.CompletedBusArchitecture arch)
+		{
+			var auxVm = _viewModelFactory.GetAuxiliariesViewModel(
+				arch) as MultistageAuxiliariesViewModel; 
 
-		[Test]
-        public void TestAllowedValuesHeatPumpTypeDriver()
-        {
-            var auxVm = new MultistageAuxiliariesViewModel(null);
 			auxVm.SystemConfiguration = BusHVACSystemConfiguration.Configuration6;
-			Assert.AreEqual(auxVm.HeatPumpTypeDriverAllowedValues.Count,1);
-            Assert.Contains(HeatPumpType.not_applicable, auxVm.HeatPumpTypeDriverAllowedValues);
+			Assert.AreEqual(auxVm.HeatPumpTypeDriverAllowedValues.Count, 1);
+			Assert.Contains(HeatPumpType.not_applicable, auxVm.HeatPumpTypeDriverAllowedValues);
 
 			auxVm.SystemConfiguration = BusHVACSystemConfiguration.Configuration3;
-            Assert.IsFalse(auxVm.HeatPumpTypeDriverAllowedValues.Contains(HeatPumpType.not_applicable));
+			Assert.IsFalse(auxVm.HeatPumpTypeDriverAllowedValues.Contains(HeatPumpType.not_applicable));
 
 			auxVm.SystemConfiguration = BusHVACSystemConfiguration.Configuration10;
 			Assert.AreEqual(auxVm.HeatPumpTypeDriverAllowedValues.Count, 1);
@@ -33,25 +45,27 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		}
 
 
-        [Test]
-        public void TestEnumParameters()
+		[TestCase(StageInputViewModel.CompletedBusArchitecture.Conventional)]
+		[TestCase(StageInputViewModel.CompletedBusArchitecture.HEV)]
+        public void TestEnumParameters(StageInputViewModel.CompletedBusArchitecture arch)
         {
-            var auxVm = new MultistageAuxiliariesViewModel(null);
-            auxVm.HeatPumpTypeCoolingDriverCompartment = HeatPumpType.none;
-            Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
-            auxVm.HeatPumpTypeCoolingDriverCompartment = HeatPumpType.R_744;
-            Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
+			var auxVm = _viewModelFactory.GetAuxiliariesViewModel(
+				arch) as MultistageAuxiliariesViewModel;
+			auxVm.HeatPumpTypeCoolingDriverCompartment = HeatPumpType.none;
+			Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
+			auxVm.HeatPumpTypeCoolingDriverCompartment = HeatPumpType.R_744;
+			Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
 
-            auxVm.HeatPumpGroupEditingEnabled = false;
-            auxVm.ParameterViewModels[nameof(auxVm.HeatPumpTypeCoolingDriverCompartment)].CurrentContent =
-                HeatPumpType.R_744;
-            Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
+			auxVm.HeatPumpGroupEditingEnabled = false;
+			auxVm.ParameterViewModels[nameof(auxVm.HeatPumpTypeCoolingDriverCompartment)].CurrentContent =
+				HeatPumpType.R_744;
+			Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
 
-            auxVm.ParameterViewModels[nameof(auxVm.HeatPumpTypeCoolingDriverCompartment)].CurrentContent =
-                HeatPumpType.none;
+			auxVm.ParameterViewModels[nameof(auxVm.HeatPumpTypeCoolingDriverCompartment)].CurrentContent =
+				HeatPumpType.none;
 
 
-            Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
+			Assert.IsTrue(auxVm.HeatPumpGroupEditingEnabled);
 		}
 	}
 }
diff --git a/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
index 2525fa144741e040c820ccea287b2dc53802fc4b..ed1e8d923455e668df5d212dccd0241d140230f0 100644
--- a/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
@@ -183,6 +183,35 @@ namespace Vecto3GUI2020Test.ViewModelTests
         }
 
 
+		[Test]
+		public void CreateAndSaveMinimalInput([Values] StageInputViewModel.CompletedBusArchitecture arch, [Values] bool addAuxInput, [Values] bool loadAirdrag)
+		{
+			var stepInput = _viewModelFactory.GetCreateNewStepInputViewModel(false) as StageInputViewModel;
+			Assert.NotNull(stepInput.VehicleViewModel);
+
+			var oldVm = stepInput.VehicleViewModel;
+			stepInput.Architecture = arch;
+			Assert.NotNull(stepInput.VehicleViewModel);
+			Assert.AreNotSame(oldVm, stepInput.VehicleViewModel);
+			Assert.That(stepInput.Title.Contains(arch.ToString()));
+
+
+			var vehicleVm = stepInput.VehicleViewModel as InterimStageBusVehicleViewModel;
+			vehicleVm.Manufacturer	= $"A {arch}_manufacturer";
+
+
+			if (addAuxInput && arch != StageInputViewModel.CompletedBusArchitecture.Exempted) {
+				var auxVm = vehicleVm.MultistageAuxiliariesViewModel as MultistageAuxiliariesViewModel;
+				auxVm.BrakelightsLED = true;
+			}
+
+			if (loadAirdrag && arch != StageInputViewModel.CompletedBusArchitecture.Exempted) {
+				Assert.Fail();
+			}
+			
+			stepInput.SaveInputDataExecute($"{arch}_step_input.xml");
+			_dialogHelper.AssertNoErrorDialogs();
+		}
 
 
 	}
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFilev2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFilev2.xml
index f23081c95c253aa94db05313e647a0d1193dbc87..62309d37c9d68f3b5f10144436ec4568b490238e 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFilev2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/AirdragLoadTestFilev2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0 https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/VectoComponent.xsd">
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent V:\\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
     <tns:AirDrag>
         <Data id="TestAirDrag1234" xsi:type="AirDragDataDeclarationType">
             <Manufacturer>Test AirDrag Manufacturer</Manufacturer>