diff --git a/VECTO3GUI2020/App.xaml b/VECTO3GUI2020/App.xaml
index 2655e63c000b91d4ef3b7958157faf8437f2ea41..a0a32a7f03e28a215c69b6eadd9571c7d05e353b 100644
--- a/VECTO3GUI2020/App.xaml
+++ b/VECTO3GUI2020/App.xaml
@@ -8,7 +8,8 @@
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
             <!-- Add new ResourceDictionaries here-->
-                <ResourceDictionary Source="Resources/ViewModelBindings.xaml"/>
+                <ResourceDictionary Source="/Resources/ViewModelBindings/ViewModelBindings.xaml"/>
+                <ResourceDictionary Source="/Resources/ViewModelBindings/VehicleViewModelBinding.xaml"/>
                 <ResourceDictionary Source="Resources/Converter.xaml"/>
                 <ResourceDictionary Source="Resources/MultistageParameterDataTemplates.xaml"/>
                 <ResourceDictionary Source="Resources\Styles\ButtonStyles.xaml"/>
diff --git a/VECTO3GUI2020/Helper/TemplateSelector/MultistageVehicleDataTemplateSelector.cs b/VECTO3GUI2020/Helper/TemplateSelector/MultistageVehicleDataTemplateSelector.cs
index 5c230dfe950700dc01724da4c9dbe16c46be2a22..406427ba00fb77b20ec55098cd4b62594c947da3 100644
--- a/VECTO3GUI2020/Helper/TemplateSelector/MultistageVehicleDataTemplateSelector.cs
+++ b/VECTO3GUI2020/Helper/TemplateSelector/MultistageVehicleDataTemplateSelector.cs
@@ -29,7 +29,7 @@ namespace VECTO3GUI2020.Helper.TemplateSelector
 				Type type = null;
 
 				switch (vm) {
-					case InterimStageBusVehicleViewModel_v2_8 declvm:
+					case InterimStageBusVehicleViewModel declvm:
 						if (declvm.ExemptedVehicle) {
 							type = typeof(VehicleView_v2_8_exempted);
 						} else {
diff --git a/VECTO3GUI2020/Ninject/Factories/ComponentViewModelFactoryModule.cs b/VECTO3GUI2020/Ninject/Factories/ComponentViewModelFactoryModule.cs
index ff9189b185a4b52f7979ed0a5872ac6fdb5f2e1d..56e05248aedb8397fbfc55408b4d8267fec90fd1 100644
--- a/VECTO3GUI2020/Ninject/Factories/ComponentViewModelFactoryModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/ComponentViewModelFactoryModule.cs
@@ -21,6 +21,8 @@ namespace VECTO3GUI2020.Ninject.Factories
 	{
 		IComponentViewModel CreateComponentViewModel(DataSource source, object inputData);
 		ICommonComponentViewModel CreateCommonComponentViewModel(object inputData);
+
+
 	}
 
 
diff --git a/VECTO3GUI2020/Ninject/Factories/DocumentViewModelFactoryModule.cs b/VECTO3GUI2020/Ninject/Factories/DocumentViewModelFactoryModule.cs
index 095f79dc2be39734c43a383d1b7e27103e9bc1b7..f703b8f85bd3836b4cd2a188f9f0585a96598dc9 100644
--- a/VECTO3GUI2020/Ninject/Factories/DocumentViewModelFactoryModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/DocumentViewModelFactoryModule.cs
@@ -30,11 +30,11 @@ namespace VECTO3GUI2020.Ninject.Factories
 
         public override void Load()
         {
-            Bind<IDocumentViewModelFactory>().To<DocumentViewModelFactory>().Named(DocumentViewModelFactoryScope);
+            Bind<IDocumentViewModelFactory>().To<DocumentViewModelFactory>().InSingletonScope().Named(DocumentViewModelFactoryScope);
 
             #region MultistepViewModel
 
-            Bind<IMultiStepInputViewModelFactory>().ToFactory().Named(MultistepInputScope);
+            Bind<IMultiStepInputViewModelFactory>().ToFactory().InSingletonScope().Named(MultistepInputScope);
             Bind<IDocumentViewModel>().To<MultiStageJobViewModel_v0_1>().WhenParentNamed(MultistepInputScope);
             #endregion
 
diff --git a/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs b/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs
index cae711f13f5dafafe1a6c8ad1d93fc1812bee199..bbde4ae5a62a40f8113a32198cc66cfef56e445c 100644
--- a/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/FactoryModule.cs
@@ -22,8 +22,9 @@ namespace VECTO3GUI2020.Ninject.Factories
             LoadModule<DocumentViewModelFactoryModule>();
             LoadModule<ComponentViewModelFactoryModule>();
             LoadModule<VehicleViewModelFactoryModule>();
+            LoadModule<XMLWriterFactoryModule>();
 
-            Bind<IXMLWriterFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider(fallback: true));
+            //Bind<IXMLWriterFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider(fallback: true));
             //Bind<IMultiStageViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: true, fallback: true));
 
             Bind<IJobEditViewModelFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider());
diff --git a/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs b/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs
index d53b700596d71a5af7cc23c9417dd6a49b85dea3..514e90305a4e9c8759d99e9ee833769bed3c7771 100644
--- a/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/Ninject/Factories/MultiStageViewModelFactory.cs
@@ -1,4 +1,5 @@
 using Ninject;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
@@ -27,8 +28,9 @@ namespace VECTO3GUI2020.Ninject.Factories
 
         private readonly IDocumentViewModelFactory _documentViewModelFactory;
 		private readonly IVehicleViewModelFactory _vehicleViewModelFactory;
+        private readonly IComponentViewModelFactory _componentViewModelFactory;
 
-		public MultiStageViewModelFactory(
+        public MultiStageViewModelFactory(
             IMultiStageViewModelFactoryDefaultInstanceProvider multiStageVmFactoryDefaultInstanceProvider,
             IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider multistageViewModelFactoryFirstParameterAsNameInstanceProvider,
             IDocumentViewModelFactory documentViewModelFactory,
@@ -54,10 +56,14 @@ namespace VECTO3GUI2020.Ninject.Factories
             return _documentViewModelFactory.CreateDocumentViewModel(inputData) as IMultiStageJobViewModel;
         }
 
-        public IVehicleViewModel GetInterimStageVehicleViewModel()
+        public IMultistageVehicleViewModel GetInterimStageVehicleViewModel(StageInputViewModel.CompletedBusArchitecture arch)
         {
-            return _multiStageVmFactoryDefaultInstanceProvider.GetInterimStageVehicleViewModel();
-        }
+
+			if (_vehicleViewModelFactory.CreateNewVehicleViewModel(arch) is IMultistageVehicleViewModel veh) {
+				return veh;
+			};
+			throw new VectoException($"Could not create viewmodel for {arch} completed bus!");
+		}
 
         public IVehicleViewModel GetInterimStageVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData, bool exempted)
 		{
diff --git a/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs b/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs
index 3461abc7ecc6b76d4998b43a08d3979253679d15..64701af2957900d47294b6e490b3b01922e6d2a5 100644
--- a/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/MultistageViewModelModule.cs
@@ -22,7 +22,7 @@ namespace VECTO3GUI2020.Ninject.Factories
     //		Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>().
     //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null));
 
-    //		Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel_v2_8>().
+    //		Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel>().
     //			NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel());
 
     //		Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>().
diff --git a/VECTO3GUI2020/Ninject/Factories/VehicleViewModelFactory.cs b/VECTO3GUI2020/Ninject/Factories/VehicleViewModelFactory.cs
index d3bb6afbafb7b6604806fb468e28296d617119a2..f088d8dececf9673e60184159ba63a7caa0ce209 100644
--- a/VECTO3GUI2020/Ninject/Factories/VehicleViewModelFactory.cs
+++ b/VECTO3GUI2020/Ninject/Factories/VehicleViewModelFactory.cs
@@ -25,6 +25,8 @@ namespace VECTO3GUI2020.Ninject.Factories
 		/// <param name="exempted"></param>
 		/// <returns></returns>
 		IVehicleViewModel CreateVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData, IVehicleDeclarationInputData vehicleInput);
+
+		IVehicleViewModel CreateNewVehicleViewModel(StageInputViewModel.CompletedBusArchitecture arch);
 	}
 
 	public class VehicleViewModelFactoryModule : AbstractNinjectModule
@@ -39,10 +41,12 @@ namespace VECTO3GUI2020.Ninject.Factories
 				new CombineArgumentsToNameInstanceProvider.MethodSettings() {
 					combineToNameDelegate = (args) => {
 						if (args.Length >= 2) {
+							//Step inputviewmodel with consolidate vehicle data from previous steps
 							if (args[0] is IVehicleDeclarationInputData consolidatedVehicle) {
-								return DefaultName(consolidatedVehicle.ExemptedVehicle);
+								return ArchName(consolidatedVehicle.VehicleType, consolidatedVehicle.ExemptedVehicle).ToString();
 							}
 
+							//Standalone step input
 							if (args[1] is IVehicleDeclarationInputData vehicle) {
 								return CombineToName(vehicle.DataSource.TypeVersion, vehicle.DataSource.Type);
 							}
@@ -53,20 +57,40 @@ namespace VECTO3GUI2020.Ninject.Factories
 					takeArguments = 2,
 					skipArguments = 0,
 				},
+				new CombineArgumentsToNameInstanceProvider.MethodSettings() {
+					methods = new[]{typeof(IVehicleViewModelFactory).GetMethod(nameof(IVehicleViewModelFactory.CreateNewVehicleViewModel))},
+					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);
 
-			///Empty vehicle view models
-			AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(false);
-			AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(true);
+            ///Empty vehicle view models //Create depending on jobtype
+			AddVehicleViewModelBinding<InterimStageConventionalBusVehicleViewModel>(VectoSimulationJobType.ConventionalVehicle);
+			//One for hev is enough map to same name
+			AddVehicleViewModelBinding<InterimStageHevBusVehicleViewModel>(         VectoSimulationJobType.ParallelHybridVehicle);
+
+			AddVehicleViewModelBinding<InterimStagePevBusVehicleViewModel>(         VectoSimulationJobType.BatteryElectricVehicle);
+
+			AddVehicleViewModelBinding<InterimStageIEPCBusVehicleViewModel>(VectoSimulationJobType.IEPC_E);
+
+			AddVehicleViewModelBinding<InterimStageExemptedBusVehicleViewModel>(VectoSimulationJobType.EngineOnlySimulation, true);
+
+			
 
-			///Vehicle Viewmodels for existing files
-			AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(XMLDeclarationConventionalCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE);
-			AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(XMLDeclarationHevCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationHevCompletedBusDataProviderV24.XSD_TYPE);
+            ///Vehicle Viewmodels for existing files
+            AddVehicleViewModelBinding<InterimStageConventionalBusVehicleViewModel>(XMLDeclarationConventionalCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE);
+			AddVehicleViewModelBinding<InterimStageHevBusVehicleViewModel>(XMLDeclarationHevCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationHevCompletedBusDataProviderV24.XSD_TYPE);
 			
-			AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(XMLDeclarationPEVCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationPEVCompletedBusDataProviderV24.XSD_TYPE);
-			AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(XMLDeclarationIepcCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationIepcCompletedBusDataProviderV24.XSD_TYPE);
+			AddVehicleViewModelBinding<InterimStagePevBusVehicleViewModel>(XMLDeclarationPEVCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationPEVCompletedBusDataProviderV24.XSD_TYPE);
+			AddVehicleViewModelBinding<InterimStageIEPCBusVehicleViewModel>(XMLDeclarationIepcCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationIepcCompletedBusDataProviderV24.XSD_TYPE);
 
-            AddVehicleViewModelBinding<InterimStageBusVehicleViewModel_v2_8>(XMLDeclarationExemptedCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationExemptedCompletedBusDataProviderV24.XSD_TYPE); 
+            AddVehicleViewModelBinding<InterimStageExemptedBusVehicleViewModel>(XMLDeclarationExemptedCompletedBusDataProviderV24.NAMESPACE_URI, XMLDeclarationExemptedCompletedBusDataProviderV24.XSD_TYPE); 
 
         }
 
@@ -76,15 +100,32 @@ namespace VECTO3GUI2020.Ninject.Factories
 			Bind<IVehicleViewModel>().To<TConcrete>().WhenAnyAncestorNamed(scopeName).Named(CombineToName(ns, type));
 		}
 
-		private void AddVehicleViewModelBinding<TConcrete>(bool exempted) where TConcrete : IVehicleViewModel
+		private void AddVehicleViewModelBinding<TConcrete>(VectoSimulationJobType jobType, bool exempted = false) where TConcrete : IVehicleViewModel
 		{
-			Bind<IVehicleViewModel>().To<TConcrete>().WhenAnyAncestorNamed(scopeName).Named(DefaultName(exempted));
+			Bind<IVehicleViewModel>().To<TConcrete>().WhenAnyAncestorNamed(scopeName).Named(ArchName(jobType, exempted).ToString());
 		}
 
 
-		public static string DefaultName(bool exempted)
+		public static StageInputViewModel.CompletedBusArchitecture ArchName(VectoSimulationJobType jobType, bool exempted = false)
 		{
-			return exempted ? "exempted" : "default";
+			if (exempted) {
+				return StageInputViewModel.CompletedBusArchitecture.Exempted;
+			}
+			switch(jobType){
+				case VectoSimulationJobType.ConventionalVehicle:
+					return StageInputViewModel.CompletedBusArchitecture.Conventional;
+				case VectoSimulationJobType.ParallelHybridVehicle:
+				case VectoSimulationJobType.SerialHybridVehicle:
+				case VectoSimulationJobType.IHPC:
+                    return StageInputViewModel.CompletedBusArchitecture.HEV;
+				case VectoSimulationJobType.BatteryElectricVehicle:
+					return StageInputViewModel.CompletedBusArchitecture.PEV;
+				case VectoSimulationJobType.IEPC_E:
+				case VectoSimulationJobType.IEPC_S:
+					return StageInputViewModel.CompletedBusArchitecture.IEPC;
+				default:
+					throw new ArgumentOutOfRangeException(nameof(jobType), jobType, null);
+			}
 		}
         public static string CombineToName(XNamespace ns, string type)
 		{
diff --git a/VECTO3GUI2020/Ninject/Factories/XMLWriterFactoryModule.cs b/VECTO3GUI2020/Ninject/Factories/XMLWriterFactoryModule.cs
index 55ea1fb55720aa0db062d9e38483f8b16761f38c..fa51e19417d7241a54d4ffc791dc42681abb2f67 100644
--- a/VECTO3GUI2020/Ninject/Factories/XMLWriterFactoryModule.cs
+++ b/VECTO3GUI2020/Ninject/Factories/XMLWriterFactoryModule.cs
@@ -1,6 +1,10 @@
 using System;
+using System.Xml.Linq;
 using Ninject.Extensions.Factory;
 using Ninject.Modules;
+using TUGraz.VectoCommon.InputData;
+using TUGraz.VectoCore.Utils;
+using TUGraz.VectoCore.Utils.Ninject;
 using VECTO3GUI2020.Ninject.Util;
 using VECTO3GUI2020.Util.XML.Implementation;
 using VECTO3GUI2020.Util.XML.Implementation.ComponentWriter;
@@ -10,98 +14,125 @@ using VECTO3GUI2020.Util.XML.Interfaces;
 namespace VECTO3GUI2020.Ninject.Factories
 {
     public class XMLWriterFactoryModule : NinjectModule
-    {
+	{
+		private const string scope = nameof(IXMLWriterFactoryInternal);
         public override void Load()
-        {
+		{
+			Bind<IXMLWriterFactory>().To<XMLWriterFactory>();
+			Bind<IXMLWriterFactoryInternal>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(false, new [] {
+				new CombineArgumentsToNameInstanceProvider.MethodSettings() {
+					combineToNameDelegate = ((args) => {
+						if (args[0] is DataSource dataSource) {
+							return GetName(dataSource.TypeVersion, dataSource.Type);
+						}
+						throw new ArgumentException();
+					}),
+					methods = new []{typeof(IXMLWriterFactoryInternal).GetMethod(nameof(IXMLWriterFactoryInternal.CreateWriter))},
+					skipArguments = 1,
+					takeArguments = 1,
+				}
+			})).Named(scope);
+
+			//Array.ForEach(
+			//    XMLVehicleWriter_v2_10.SUPPORTEDVERSIONS,
+			//    sv =>
+			//        Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_10>().Named(sv));
+			Array.ForEach(XMLVehicleWriter_v2_10.SUPPORTEDVERSIONS,
+				sv => Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_10>().WhenParentNamed(scope).Named(GetName(sv.version, sv.type)));
+
+
+
+			#region
+
+			//Array.ForEach(
+			//    XMLDeclarationJobWriter_v1_0.SUPPORTED_VERSIONS,
+			//    sv =>
+			//        Bind<IXMLDeclarationJobWriter>().To<XMLDeclarationJobWriter_v1_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLDeclarationJobWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv =>
+			//        Bind<IXMLDeclarationJobWriter>().To<XMLDeclarationJobWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLPTOWriter_v1_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLPTOWriter_v1_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLPTOWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLPTOWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLVehicleWriter_v1_0.SUPPORTEDVERSIONS,
+			//    (sv) =>
+			//        Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v1_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLVehicleWriter_v2_0.SUPPORTEDVERSIONS,
+			//    sv =>
+			//        Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_0>().Named(sv));
+
+
+			//Array.ForEach(
+			//    XMLComponentsWriter_v1_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentsWriter>().To<XMLComponentsWriter_v1_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLComponentsWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentsWriter>().To<XMLComponentsWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLEngineWriter_v1_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLEngineWriter_v1_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLEngineWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLEngineWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLGearboxWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLGearboxWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLRetarderWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLRetarderWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLAxleGearWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLAxleGearWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLAxleWheelsWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLAxleWheelsWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLAxleWheelWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLAxleWheelWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLTyreWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLTyreWriter_v2_0>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLTyreWriter_v2_3.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLTyreWriter_v2_3>().Named(sv));
+
+			//Array.ForEach(
+			//    XMLAuxiliariesWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLAuxiliariesWriter_v2_0>().Named(sv));
+			//Array.ForEach(
+			//    XMLAirDragWriter_v2_0.SUPPORTED_VERSIONS,
+			//    sv => Bind<IXMLComponentWriter>().To<XMLAirDragWriter_v2_0>().Named(sv));
+
+			//Bind<IXMLBusAuxiliariesWriter>().To<XMLBusAuxiliariesWriterMultistage>();
 
+			#endregion
 
-            Array.ForEach(
-                XMLDeclarationJobWriter_v1_0.SUPPORTED_VERSIONS,
-                sv =>
-                    Bind<IXMLDeclarationJobWriter>().To<XMLDeclarationJobWriter_v1_0>().Named(sv));
+		}
 
-            Array.ForEach(
-                XMLDeclarationJobWriter_v2_0.SUPPORTED_VERSIONS,
-                sv =>
-                    Bind<IXMLDeclarationJobWriter>().To<XMLDeclarationJobWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLPTOWriter_v1_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLPTOWriter_v1_0>().Named(sv));
-
-            Array.ForEach(
-                XMLPTOWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLPTOWriter_v2_0>().Named(sv));
-
-
-            Array.ForEach(
-                XMLVehicleWriter_v1_0.SUPPORTEDVERSIONS,
-                (sv) =>
-                    Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v1_0>().Named(sv));
-
-            Array.ForEach(
-                XMLVehicleWriter_v2_0.SUPPORTEDVERSIONS,
-                sv =>
-                    Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLVehicleWriter_v2_10.SUPPORTEDVERSIONS,
-                sv =>
-                    Bind<IXMLVehicleWriter>().To<XMLVehicleWriter_v2_10>().Named(sv));
-
-            Array.ForEach(
-                XMLComponentsWriter_v1_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentsWriter>().To<XMLComponentsWriter_v1_0>().Named(sv));
-
-            Array.ForEach(
-                XMLComponentsWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentsWriter>().To<XMLComponentsWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLEngineWriter_v1_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLEngineWriter_v1_0>().Named(sv));
-
-            Array.ForEach(
-                XMLEngineWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLEngineWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLGearboxWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLGearboxWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLRetarderWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLRetarderWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLAxleGearWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLAxleGearWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLAxleWheelsWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLAxleWheelsWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLAxleWheelWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLAxleWheelWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLTyreWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLTyreWriter_v2_0>().Named(sv));
-
-            Array.ForEach(
-                XMLTyreWriter_v2_3.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLTyreWriter_v2_3>().Named(sv));
-
-            Array.ForEach(
-                XMLAuxiliariesWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLAuxiliariesWriter_v2_0>().Named(sv));
-            Array.ForEach(
-                XMLAirDragWriter_v2_0.SUPPORTED_VERSIONS,
-                sv => Bind<IXMLComponentWriter>().To<XMLAirDragWriter_v2_0>().Named(sv));
-
-            Bind<IXMLBusAuxiliariesWriter>().To<XMLBusAuxiliariesWriterMultistage>();
-
-        }
-    }
+        public string GetName(XNamespace version, string xsdType)
+		{
+			return XMLHelper.CombineNamespace(version, xsdType);
+		}
+	}
 }
diff --git a/VECTO3GUI2020/Ninject/MultistageModule.cs b/VECTO3GUI2020/Ninject/MultistageModule.cs
index 275135c596a7345eb59b9e7dd25a23a79b6436fd..caadf12e0753ba85ada6a6d42b5f9f2caedabbe4 100644
--- a/VECTO3GUI2020/Ninject/MultistageModule.cs
+++ b/VECTO3GUI2020/Ninject/MultistageModule.cs
@@ -22,8 +22,8 @@ namespace VECTO3GUI2020.Ninject
 			Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>().
 				NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null));
 
-			Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel_v2_8>().
-				NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel());
+			//Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel>().
+			//	NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel());
 
 			Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>().
 				NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetManufacturingStageViewModel(null, false));
diff --git a/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs b/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs
index 1165316258c5a4a499ca51ca80c031a0ce9d86cd..8827dc17c7036228cbda46ad8b0f33b1ad6b9ecd 100644
--- a/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs
+++ b/VECTO3GUI2020/Ninject/Vehicle/ComponentModule.cs
@@ -32,8 +32,8 @@ namespace VECTO3GUI2020.Ninject.Vehicle
 
 
 	        
-			Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel_v2_8>().Named(InterimStageBusVehicleViewModel_v2_8.VERSION);
-			Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel_v2_8>().Named(InterimStageBusVehicleViewModel_v2_8.VERSION_EXEMPTED);
+			Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel>().Named(InterimStageBusVehicleViewModel.VERSION);
+			Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel>().Named(InterimStageBusVehicleViewModel.VERSION_EXEMPTED);
 
 
             Bind<IComponentViewModel>().To<EngineViewModel_v1_0>().Named(EngineViewModel_v1_0.VERSION);
diff --git a/VECTO3GUI2020/Resources/ViewModelBindings/VehicleViewModelBinding.xaml b/VECTO3GUI2020/Resources/ViewModelBindings/VehicleViewModelBinding.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..add55091c0c1e50a748afe424f905e7792c0151c
--- /dev/null
+++ b/VECTO3GUI2020/Resources/ViewModelBindings/VehicleViewModelBinding.xaml
@@ -0,0 +1,44 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+                    xmlns:local="clr-namespace:VECTO3GUI2020"
+                    xmlns:interfaces="clr-namespace:VECTO3GUI2020.ViewModel.Interfaces"
+                    xmlns:views="clr-namespace:VECTO3GUI2020.Views"
+                    xmlns:jobeditviews="clr-namespace:VECTO3GUI2020.Views.JobEditViews"
+                    xmlns:impl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation"
+                    xmlns:jobeditimpl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit"
+                    xmlns:vehicleimpl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle"
+                    xmlns:vehicleviews="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle"
+                    xmlns:multistageviews="clr-namespace:VECTO3GUI2020.Views.Multistage"
+                    xmlns:additionaljobInfoViews="clr-namespace:VECTO3GUI2020.Views.Multistage.AdditionalJobInfoViews"
+                    xmlns:componentimpl="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.JobEdit.Vehicle.Components"
+                    xmlns:componentviews="clr-namespace:VECTO3GUI2020.Views.JobEditViews.Vehicle.Components"
+                    xmlns:multistageimpl="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation"
+                    xmlns:viewModel="clr-namespace:VECTO3GUI2020.ViewModel"
+                    xmlns:common="clr-namespace:VECTO3GUI2020.ViewModel.Implementation.Common">
+
+
+    <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:InterimStageExemptedBusVehicleViewModel}">
+        <multistageviews:VehicleView_v2_8/>
+    </DataTemplate>
+
+    <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:InterimStageConventionalBusVehicleViewModel}">
+        <multistageviews:VehicleView_v2_8/>
+    </DataTemplate>
+
+    <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:InterimStageHevBusVehicleViewModel}">
+        <multistageviews:VehicleView_v2_8/>
+    </DataTemplate>
+
+    <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:InterimStageIEPCBusVehicleViewModel}">
+        <multistageviews:VehicleView_v2_8/>
+    </DataTemplate>
+
+    <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:InterimStagePevBusVehicleViewModel}">
+        <multistageviews:VehicleView_v2_8/>
+    </DataTemplate>
+
+
+
+
+
+</ResourceDictionary>
\ No newline at end of file
diff --git a/VECTO3GUI2020/Resources/ViewModelBindings.xaml b/VECTO3GUI2020/Resources/ViewModelBindings/ViewModelBindings.xaml
similarity index 98%
rename from VECTO3GUI2020/Resources/ViewModelBindings.xaml
rename to VECTO3GUI2020/Resources/ViewModelBindings/ViewModelBindings.xaml
index 989565530245f6076ecc56cb6d37d494b058d07d..22a017dff7bce12582a4b453a22256a96e04d3e0 100644
--- a/VECTO3GUI2020/Resources/ViewModelBindings.xaml
+++ b/VECTO3GUI2020/Resources/ViewModelBindings/ViewModelBindings.xaml
@@ -205,9 +205,6 @@
         <multistageviews:ManufacturingStageView></multistageviews:ManufacturingStageView>
     </DataTemplate>
 
-    <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:InterimStageBusVehicleViewModel_v2_8}">
-        <multistageviews:VehicleView_v2_8/>
-    </DataTemplate>
 
     <DataTemplate x:Shared="False" DataType="{x:Type multistageimpl:MultiStageJobViewModel_v0_1}">
         <multistageviews:MultiStageView/>
diff --git a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs
index d81f3a11e18dace97d64808396d94ff9e4287074..90534113aba3fa3fba4ee1e0bb4f43ce8f5479aa 100644
--- a/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs
+++ b/VECTO3GUI2020/Util/XML/Implementation/ComponentWriter/XMLVehicleWriter.cs
@@ -8,6 +8,7 @@ using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
 using TUGraz.VectoCore.OutputData.XML.ComponentWriter;
 using TUGraz.VectoCore.OutputData.XML.GroupWriter;
 using TUGraz.VectoCore.Utils;
@@ -194,9 +195,11 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
 	public class XMLVehicleWriter_v2_10 : XMLVehicleWriter
 	{
 		private readonly bool _exempted;
-		public static readonly string[] SUPPORTEDVERSIONS = {
-			typeof(InterimStageBusVehicleViewModel_v2_8).ToString(),
-			typeof(StageInputViewModel).ToString()
+		public static readonly (XNamespace version, string type)[] SUPPORTEDVERSIONS = {
+			(XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24, XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE)
+
+			//typeof(InterimStageBusVehicleViewModel).ToString(),
+			//typeof(StageInputViewModel).ToString()
 		};
 
 		private readonly IGroupWriterFactory _groupWriterFactory;
@@ -209,7 +212,7 @@ namespace VECTO3GUI2020.Util.XML.Implementation.ComponentWriter
 			IComponentWriterFactory componentWriterFactory) : base(inputData, xmlWriterFactory)
 		{
 			
-			//TODO: CHECK ALL POSSIBIBILITIES FOR VEHICLES
+			
 			_exempted = inputData.ExemptedVehicle;
 
 			_conventional = !_exempted;
diff --git a/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs b/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs
index f55e85d7d01c7c78cf57259cdb66d9d12b30b256..53a6380c3f41c1a4d2f5e0c81d26c5c9d737d8d5 100644
--- a/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs
+++ b/VECTO3GUI2020/Util/XML/Implementation/DocumentWriter/XMLDeclarationJobWriter.cs
@@ -46,6 +46,8 @@ namespace VECTO3GUI2020.Util.XML.Implementation.DocumentWriter
 
     public class XMLDeclarationJobWriter_v1_0 : XMLDeclarationJobWriter
 	{
+		
+
 		public static readonly string[] SUPPORTED_VERSIONS = {
 			typeof(XMLDeclarationJobInputDataProviderV10).ToString()
 		};
diff --git a/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs b/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs
index 94c82c81bd5e50e00ded437f64ef98ca70e7fd71..8641d7754bb528ad264146cb991f4dbb49ebea29 100644
--- a/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs
+++ b/VECTO3GUI2020/Util/XML/Interfaces/IXMLWriterFactory.cs
@@ -1,5 +1,6 @@
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.Models.Connector.Ports;
 using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces;
 using TUGraz.VectoCore.OutputData.XML.Engineering.Writer;
 using VECTO3GUI2020.Util.XML.Implementation.ComponentWriter;
@@ -21,4 +22,75 @@ namespace VECTO3GUI2020.Util.XML.Interfaces
 
 		IXMLBusAuxiliariesWriter CreateBuxAuxiliariesWriter(IBusAuxiliariesDeclarationData inputData);
 	}
+
+	public interface IXMLWriterFactoryInternal
+	{
+		TWriter CreateWriter<TWriter, TData>(DataSource source, TData inputData);
+	}
+
+	public class XMLWriterFactory : IXMLWriterFactory
+	{
+		private IXMLWriterFactoryInternal _internalFactory;
+
+		private TWriter CreateWriter<TWriter, TData>(DataSource source, TData inputData)
+		{
+			return _internalFactory.CreateWriter<TWriter, TData>(source, inputData);
+		}
+
+
+		#region Implementation of IXMLWriterFactory
+
+		public IXMLDeclarationJobWriter CreateJobWriter(IDeclarationJobInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLVehicleWriter CreateVehicleWriter(IVehicleDeclarationInputData inputData)
+		{
+			return _internalFactory.CreateWriter<IXMLVehicleWriter, IVehicleDeclarationInputData>(inputData.DataSource, inputData);
+			//throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentWriter CreateComponentWriter(IComponentInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentWriter CreateComponentWriter(IAuxiliariesDeclarationInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentWriter CreateComponentWriter(IAxlesDeclarationInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentWriter CreateComponentWriter(IAxleDeclarationInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentWriter CreateComponentWriter(IAirdragDeclarationInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentWriter CreateComponentWriter(IPTOTransmissionInputData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLComponentsWriter CreateComponentsWriter(IVehicleComponentsDeclaration inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		public IXMLBusAuxiliariesWriter CreateBuxAuxiliariesWriter(IBusAuxiliariesDeclarationData inputData)
+		{
+			throw new System.NotImplementedException();
+		}
+
+		#endregion
+	}
 }
diff --git a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs
index 8b6e590614d0ef9c4fe99e38be9c4bf7ef2acd22..ceb592c14e9e75535b1a79adb3efddde0f5ba65b 100644
--- a/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs
+++ b/VECTO3GUI2020/ViewModel/Interfaces/JobEdit/Vehicle/Components/IComponentViewModelFactory.cs
@@ -2,6 +2,7 @@
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
 using VECTO3GUI2020.Ninject.Factories;
+using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
 
 namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components
 {
@@ -27,6 +28,9 @@ namespace VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components
 		IComponentViewModel CreateComponentViewModel(IAxleDeclarationInputData inputData);
 		IComponentViewModel CreateComponentViewModel(IAuxiliariesDeclarationInputData inputData);
 		IComponentViewModel CreateComponentViewModel(IAuxiliaryDeclarationInputData inputData);
+
+
+
 	}
 
 	public class ComponentViewModelFactory : IComponentViewModelFactory
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
similarity index 86%
rename from VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
rename to VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
index 3c0a2a2f29591a4f7aebc9e40dd88e96b10ff8a1..9bf584c84d7c31aa8037254826ffbf4e2ddd95ab 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel_v2_8.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
@@ -6,12 +6,14 @@ using System.Diagnostics;
 using System.Resources;
 using System.Runtime.CompilerServices;
 using System.Xml;
+using System.Xml.Linq;
 using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
+using TUGraz.VectoCore.Utils;
 using VECTO3GUI2020.Helper;
 using VECTO3GUI2020.Properties;
 using VECTO3GUI2020.ViewModel.Implementation.Common;
@@ -58,7 +60,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 	}
 
 
-	public class InterimStageBusVehicleViewModel_v2_8 : ViewModelBase, IMultistageVehicleViewModel,
+	public abstract class InterimStageBusVehicleViewModel : ViewModelBase, IMultistageVehicleViewModel,
 		IVehicleComponentsDeclaration, IAdvancedDriverAssistantSystemDeclarationInputData, IDataErrorInfo
 	{
 		public static readonly Type INPUTPROVIDERTYPE = typeof(XMLDeclarationConventionalCompletedBusDataProviderV24);
@@ -110,7 +112,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public bool IsPresent => true;
 
-		public DataSource DataSource => throw new NotImplementedException();
+		public DataSource DataSource { get; private set; }
 
 		public bool SavedInDeclarationMode => true;
 
@@ -141,54 +143,98 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			}
 		}
 
-		private InterimStageBusVehicleViewModel_v2_8(string inputProviderType, IMultiStageViewModelFactory multiStageViewModelFactory)
+		protected InterimStageBusVehicleViewModel(IMultiStageViewModelFactory multiStageViewModelFactory, bool exempted = false)
 		{
-			if (inputProviderType == VERSION_EXEMPTED)
-			{
-				_exemptedVehicle = true;
-			}
-
+			_exemptedVehicle = exempted;
 			_multiStageViewModelFactory = multiStageViewModelFactory;
-
-			
+			InitEmpty();
 		}
 
-		public InterimStageBusVehicleViewModel_v2_8(IVehicleDeclarationInputData consolidatedVehicleData, IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory)
+		protected InterimStageBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData, IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory)
 		{
 			_multiStageViewModelFactory = multistepViewModelFactory;
 			var vehicleData = consolidatedVehicleData ?? vehicleInput;
 			_exemptedVehicle = vehicleData.ExemptedVehicle;
 
             if (consolidatedVehicleData != null && vehicleInput == null) {
-				InitEmpty(consolidatedVehicleData);
-
-
-
+				InitConsolidated(consolidatedVehicleData);
 
 				return;
 			}
 
 			if (vehicleInput != null && consolidatedVehicleData == null) {
-				InitVehicleData(consolidatedVehicleData);
-
-
+				InitVehicleData(vehicleInput);
 
 				return;
 			}
 
-
 			throw new ArgumentException($"Either {nameof(consolidatedVehicleData)} OR {vehicleInput} must be specified");
+		}
+
+		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;
+			//}
 
 		}
 
-		private void InitEmpty(IVehicleDeclarationInputData consolidatedVehicleData)
+		private void InitEmpty()
 		{
-			ConsolidatedVehicleData = consolidatedVehicleData;
+			if (!_exemptedVehicle) {
+				MultistageAirdragViewModel = _multiStageViewModelFactory.GetMultistageAirdragViewModel();
+				MultistageAuxiliariesViewModel = _multiStageViewModelFactory.GetAuxiliariesViewModel();
+				MultistageAirdragViewModel.AirdragViewModelChanged += ((sender, args) => {
+					if (sender is IMultistageAirdragViewModel vm)
+					{
+						if (AirdragModifiedMultistepMandatory)
+						{
+							if (vm.AirDragViewModel != null)
+							{
+								AirdragModifiedMultistep = true;
+							}
+						}
+					}
+				});
+            }
 
+			CreateParameterViewModels();
+		}
 
+		private void InitConsolidated(IVehicleDeclarationInputData consolidatedVehicleData)
+		{
+			ConsolidatedVehicleData = consolidatedVehicleData;
 
-			if (!_exemptedVehicle)
-			{
+			if (!_exemptedVehicle) {
 				MultistageAirdragViewModel = _multiStageViewModelFactory.GetMultistageAirdragViewModel(consolidatedVehicleData?.Components?.AirdragInputData);
 
 				MultistageAirdragViewModel.AirdragViewModelChanged += ((sender, args) => {
@@ -209,18 +255,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 						.BusAuxiliaries);
 			}
 
-
 			CreateParameterViewModels();
 
-
-			if (consolidatedVehicleData?.AirdragModifiedMultistep != null)
-			{
+			if (consolidatedVehicleData?.AirdragModifiedMultistep != null) {
 				AirdragModifiedMultistepMandatory = true;
 				AirdragModifiedMultistepEditingEnabled = true;
 			}
 
-			if (consolidatedVehicleData?.Components?.AirdragInputData != null)
-			{
+			if (consolidatedVehicleData?.Components?.AirdragInputData != null) {
 				AirdragModifiedMultistepMandatory = true;
 				AirdragModifiedMultistepEditingEnabled = true;
 			}
@@ -239,8 +281,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
             SetVehicleInputData(vehicleInput);
         }
 
-		private void CreateParameterViewModels()
-		{
+		private void CreateParameterViewModels() {
 			_parameterViewModels = new Dictionary<string, MultistageParameterViewModel>();
 			var properties = this.GetType().GetProperties();
 			var backedUpParameters = new HashSet<string>() {
@@ -1244,7 +1285,71 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		private bool _airdragModifiedMultistepMandatory;
 		private int? _numberPassengersStandingLowerDeck;
 		private int? _numberPassengersStandingUpperDeck;
-		private bool _exemptedVehicle;
+		protected bool _exemptedVehicle;
+
+	}
+
+
+	public class InterimStageConventionalBusVehicleViewModel : InterimStageBusVehicleViewModel
+	{
+		public InterimStageConventionalBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData,
+			IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory)
+			: base(consolidatedVehicleData, vehicleInput, multistepViewModelFactory)
+		{
+
+		}
+		public InterimStageConventionalBusVehicleViewModel(IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) { }
+    }
+	
+
+    public class InterimStageExemptedBusVehicleViewModel : InterimStageBusVehicleViewModel
+	{
+		public InterimStageExemptedBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData,
+			IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory) : base(
+			consolidatedVehicleData, vehicleInput, multistepViewModelFactory)
+		{
+			_exemptedVehicle = true;
+		}
+
+		public InterimStageExemptedBusVehicleViewModel(IMultiStageViewModelFactory multistepViewModelFactory) : base(multistepViewModelFactory, exempted:true)
+		{
+			
+		}
 
 	}
+
+	public class InterimStageHevBusVehicleViewModel : InterimStageBusVehicleViewModel
+	{
+		public InterimStageHevBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData,
+			IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory) : base(
+			consolidatedVehicleData, vehicleInput, multistepViewModelFactory)
+		{
+
+		}
+
+		public InterimStageHevBusVehicleViewModel(IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) { }
+	}
+
+	public class InterimStagePevBusVehicleViewModel : InterimStageBusVehicleViewModel
+	{
+		public InterimStagePevBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData,
+			IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory) : base(
+			consolidatedVehicleData, vehicleInput, multistepViewModelFactory)
+		{
+
+		}
+		public InterimStagePevBusVehicleViewModel(IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) { }
+    }
+
+	public class InterimStageIEPCBusVehicleViewModel : InterimStageBusVehicleViewModel
+	{
+		public InterimStageIEPCBusVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData,
+			IVehicleDeclarationInputData vehicleInput, IMultiStageViewModelFactory multistepViewModelFactory) : base(
+			consolidatedVehicleData, vehicleInput, multistepViewModelFactory)
+		{
+
+		}
+		public InterimStageIEPCBusVehicleViewModel(IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) { }
+    }
+
 }
\ No newline at end of file
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs
index d77c0e4c1d4ba7a28af751a41a46d8e6d49777e1..9cd834fa9f4361268692f00126b5c3d8fc731c64 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs
@@ -1,5 +1,9 @@
 using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
 using System.IO;
+using System.Linq;
+using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Utils;
 using VECTO3GUI2020.Properties;
@@ -14,6 +18,15 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 {
 	public class StageInputViewModel : StageViewModelBase, IDocumentViewModel, IJobEditViewModel
 	{
+		public enum CompletedBusArchitecture
+		{
+			Conventional,
+			HEV,
+			PEV,
+			IEPC,
+			Exempted
+		}
+
 		private bool _canBeEdited;
 		private DataSource _dataSource;
 		private readonly XmlDocumentType _documentType;
@@ -21,6 +34,40 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		private bool _selected;
 		private static uint _newDocumentCounter = 0;
 
+
+		private CompletedBusArchitecture _architecture;
+		private ObservableCollection<CompletedBusArchitecture> _architectureItems =
+			new ObservableCollection<CompletedBusArchitecture>(Enum.GetValues(typeof(CompletedBusArchitecture)).Cast<CompletedBusArchitecture>());
+
+		public ObservableCollection<CompletedBusArchitecture> ArchitectureItems
+		{
+			get => _architectureItems;
+			set => SetProperty(ref _architectureItems, value);
+		}
+
+		public CompletedBusArchitecture Architecture
+		{
+			get => _architecture;
+			set
+			{
+				if (SetProperty(ref _architecture, value)) {
+					UpdateVehicleViewModel();
+				}
+			}
+		}
+
+		private void UpdateVehicleViewModel()
+		{
+			if (VehicleViewModel.ShowConsolidatedData) {
+				throw new VectoException("This is only intended on \"standalone\" step inputs");
+			}
+			var oldVm = _vehicleViewModel;
+			var newVm = _viewModelFactory.GetInterimStageVehicleViewModel(Architecture);
+			newVm.SetVehicleInputData(oldVm);
+			VehicleViewModel = newVm;
+		}
+
+
 		private StageInputViewModel(IMultiStageViewModelFactory multistageViewModelFactory,
 			IAdditionalJobInfoViewModel additionalJobInfoViewModel) : base(multistageViewModelFactory)
 		{
@@ -32,16 +79,22 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		public StageInputViewModel(bool exemptedVehicle, IMultiStageViewModelFactory multiStageViewModelFactory, IAdditionalJobInfoViewModel additionalJobInfoViewModel) : this(multiStageViewModelFactory, additionalJobInfoViewModel)
 		{
-			_vehicleViewModel = _viewModelFactory.CreateStageInputVehicleViewModel(
-				exemptedVehicle
-				? InterimStageBusVehicleViewModel_v2_8.VERSION_EXEMPTED
-				: InterimStageBusVehicleViewModel_v2_8.VERSION) as IMultistageVehicleViewModel;
+			Architecture = exemptedVehicle
+				? CompletedBusArchitecture.Exempted
+				: CompletedBusArchitecture.Conventional;
+
+
+			_vehicleViewModel = multiStageViewModelFactory.GetInterimStageVehicleViewModel(Architecture);
+
+			
 
 			Title = $"{GUILabels.Edit_step_input} - New file";
 
 			_documentName = $"New {(exemptedVehicle ? "exempted " : "")}step input {++_newDocumentCounter}";
+			
 			Init();
-		}
+			return;
+        }
 
 		public StageInputViewModel(IDeclarationInputDataProvider inputData, IMultiStageViewModelFactory multiStageViewModelFactory, IAdditionalJobInfoViewModel additionalJobInfoViewModel) : this(multiStageViewModelFactory,additionalJobInfoViewModel)
 		{
@@ -49,14 +102,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 			//_vehicleViewModel =
 			//	_viewModelFactory.CreateStageInputVehicleViewModel(inputData.JobInputData.Vehicle) as IMultistageVehicleViewModel;
-			//(_vehicleViewModel as InterimStageBusVehicleViewModel_v2_8).ShowConsolidatedData = false;
+			//	(_vehicleViewModel as InterimStageBusVehicleViewModel).ShowConsolidatedData = false;
 
 			_dataSource = inputData.DataSource;
 			VehicleInputDataFilePath = _dataSource.SourceFile;
 
 			Title = $"{GUILabels.Edit_step_input} - {Path.GetFileName(_dataSource.SourceFile)}";
-			return;
-            Init();
+			Init();
+            return;
 		}
 
 		#region Overrides of StageViewModelBase
@@ -84,9 +137,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		private void Init()
 		{
 			UpdateTitle();
-			Components.Add("vehicle", VehicleViewModel as IViewModelBase);
-			Components.Add("auxiliaries", VehicleViewModel.MultistageAuxiliariesViewModel as IViewModelBase);
-			Components.Add("airdrag", VehicleViewModel.MultistageAirdragViewModel as IViewModelBase);
+			Components["vehicle"] = VehicleViewModel as IViewModelBase;
+			Components["auxiliaries"] = VehicleViewModel.MultistageAuxiliariesViewModel as IViewModelBase;
+			Components["airdrag"] = VehicleViewModel.MultistageAirdragViewModel as IViewModelBase;
 			CurrentView = VehicleViewModel as IViewModelBase;
 
 			ShowSaveAndCloseButtons = true;
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs
index 1de18c002ca923e6d5efc05913e671193dfcc9dd..b00c7e3b93ccfce147128e7a4b18b3bd20671a66 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageViewModelBase.cs
@@ -106,7 +106,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 		private bool SwitchViewCanExecute(string viewToShow)
 		{
-			return Components[viewToShow] != null;
+			var found = Components.TryGetValue(viewToShow, out var vm);
+			return found && vm != null;
 		}
 
 		private IRelayCommand _saveInputDataCommand;
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
index 771f220bd465596990ecbca28d48677d89c1a521..5fa7479e285b5b77ce674e3f271a75da187025a0 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Interfaces/IMultiStageViewModelFactory.cs
@@ -5,6 +5,7 @@ using System.Text;
 using System.Threading.Tasks;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Utils;
+using VECTO3GUI2020.Ninject.Factories;
 using VECTO3GUI2020.ViewModel.Implementation;
 using VECTO3GUI2020.ViewModel.Interfaces.Common;
 using VECTO3GUI2020.ViewModel.Interfaces.Document;
@@ -16,10 +17,11 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces
 {
 
 	public interface IMultiStageViewModelFactory : 
-		IMultiStageViewModelFactoryDefaultInstanceProvider,		IDocumentViewModelFactory,
+		IMultiStageViewModelFactoryDefaultInstanceProvider,		IDocumentViewModelFactory, 
 IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
     {
-		
+		//IVehicleViewModel GetInterimStageVehicleViewModel(StageInputViewModel.CompletedBusArchitecture arch);
+		IMultistageVehicleViewModel GetInterimStageVehicleViewModel(StageInputViewModel.CompletedBusArchitecture arch);
 	}
 
 
@@ -35,7 +37,7 @@ IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
 
 		IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData);
 
-		IVehicleViewModel GetInterimStageVehicleViewModel();
+		//IVehicleViewModel GetInterimStageVehicleViewModel();
 
 		IVehicleViewModel GetInterimStageVehicleViewModel(IVehicleDeclarationInputData consolidatedVehicleData, bool exempted);
 
diff --git a/VECTO3GUI2020/Views/JoblistView.xaml b/VECTO3GUI2020/Views/JoblistView.xaml
index 1b52ba6ed0fa71863b56f49bde428897d5497062..4136a2984b3c565afde4ac1289abb84744ba66e4 100644
--- a/VECTO3GUI2020/Views/JoblistView.xaml
+++ b/VECTO3GUI2020/Views/JoblistView.xaml
@@ -14,7 +14,7 @@
              d:DesignHeight="450" d:DesignWidth="1000">
 
 
-    <Grid>
+    <Grid d:Background="Pink">
         <Grid.RowDefinitions>
             <RowDefinition Height="2*"/>
             <RowDefinition Height="5"/>
diff --git a/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml b/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml
index 21a1ba5b48ebed8ed7a3f59915a23f32853c604e..154f54cc6b59a314e7d15f5d601230fd753998dc 100644
--- a/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml
+++ b/VECTO3GUI2020/Views/Multistage/ManufacturingStageView.xaml
@@ -8,21 +8,23 @@
              xmlns:system="clr-namespace:System;assembly=mscorlib"
              xmlns:properties="clr-namespace:VECTO3GUI2020.Properties"
              mc:Ignorable="d" 
-             d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance implementation:ManufacturingStageViewModel_v0_1 }">
+             d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance implementation:StageInputViewModel}">
+
+    <!--d:DataContext="{d:DesignInstance implementation:ManufacturingStageViewModel_v0_1 }"-->
     <Grid>
-        <DockPanel>
+        <DockPanel d:Background="LightPink">
 
        
-        <DockPanel DockPanel.Dock="Top" LastChildFill="False">
+        <DockPanel DockPanel.Dock="Top" LastChildFill="False" d:Background="Aqua">
             <UniformGrid DockPanel.Dock="Left" Width="350" Rows="1" HorizontalAlignment="Left">
                 <Button Style="{DynamicResource MultiStageButtonStyle1}" 
-                        Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Vehicle">Vehicle</Button>
+                        Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Vehicle" x:Name="TopButton">Vehicle</Button>
                 <Button Style="{DynamicResource MultiStageButtonStyle1}" 
                         Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Airdrag">Airdrag</Button>
                 <Button Style="{DynamicResource MultiStageButtonStyle1}" 
                         Margin="4" Command="{Binding SwitchComponentViewCommand}" CommandParameter="Auxiliaries">Auxiliaries</Button>
             </UniformGrid>
-                <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Margin="0 10 20 10" >
+                <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" Margin="0 10 20 10" d:Visibility="Visible" d:Background="Green">
                     <StackPanel.Visibility>
                         <PriorityBinding>
                             <Binding Path="StepCount" Converter="{StaticResource AlwaysVisibleConverter}"/>
@@ -43,6 +45,17 @@
                     </Label>
                 </StackPanel>
 
+                <StackPanel d:Background="Red"
+                            DockPanel.Dock="Right" 
+                            Orientation="Horizontal" 
+                            HorizontalAlignment="Center" 
+                            VerticalAlignment="Center" 
+                            Margin="0 10 20 10">
+                    <Label Padding="4">Architecture</Label>
+                    <ComboBox MinWidth="150" ItemsSource="{Binding ArchitectureItems, UpdateSourceTrigger=PropertyChanged}" SelectedValue="{Binding Architecture, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
+                    </ComboBox>
+                </StackPanel>
+
             
         </DockPanel>
             <UniformGrid Rows="1" Width="350" DockPanel.Dock="Bottom" HorizontalAlignment="Right" 
@@ -54,7 +67,7 @@
                         Command="{Binding CloseWindowCommand}" 
                         CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}">Close</Button>
             </UniformGrid>
-            <ContentControl DockPanel.Dock="Top" ContentTemplateSelector="{StaticResource MultistageVehicleDataTemplateSelector}"   Content="{Binding CurrentView}"/>
+            <ContentControl DockPanel.Dock="Top" ContentTemplateSelector="{StaticResource MultistageVehicleDataTemplateSelector}" Content="{Binding CurrentView}" d:Background="Beige"/>
         </DockPanel>
     </Grid>
 </UserControl>
diff --git a/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml
index 5fb13f8d3cbcdce2ba840f84557e1eec004af5b4..a9ce8d0a4888e00250691c29129e3f93ad63c03c 100644
--- a/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml
+++ b/VECTO3GUI2020/Views/Multistage/VehicleView_v2_8.xaml
@@ -7,7 +7,7 @@
              xmlns:custom="clr-namespace:VECTO3GUI2020.Views.Multistage.CustomControls" xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.MultiStage.Implementation"
              xmlns:properties="clr-namespace:VECTO3GUI2020.Properties"
              xmlns:resources="clr-namespace:System.Resources;assembly=mscorlib"
-             d:DataContext="{d:DesignInstance Type=implementation:InterimStageBusVehicleViewModel_v2_8}"
+             d:DataContext="{d:DesignInstance Type=implementation:InterimStageBusVehicleViewModel}"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800" BorderBrush="{DynamicResource ButtonHighlightColor}" BorderThickness="2px" Margin="4px">
     <UserControl.Resources>
diff --git a/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs b/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs
index c2a312fdc352c860b221b040a7ff336d92390d31..9c955c82ee6fac5c9eba8b23eb206331b9ca7dad 100644
--- a/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/AirdragTests.cs
@@ -24,7 +24,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var vm = LoadFileFromPath(TestData.consolidated_multiple_stages_airdrag);
 
 			var vehicleVm = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-				InterimStageBusVehicleViewModel_v2_8;
+				InterimStageBusVehicleViewModel;
 
 			Assert.IsTrue(vehicleVm.AirdragModifiedMultistepEditingEnabled);
 
@@ -41,7 +41,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			var vehicleVm =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			Assert.IsFalse(vehicleVm.AirdragModifiedMultistepEditingEnabled);
 		}
@@ -59,7 +59,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var vm = LoadFileFromPath(TestData.primary_vehicle_only);
 			var vehicleVm =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleVm.AirdragModifiedMultistep);
 
@@ -92,7 +92,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			Assert.IsNotNull(secondstageVm);
 			var secondStageVehicleVm =
 				(secondstageVm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel) as
-				InterimStageBusVehicleViewModel_v2_8;
+				InterimStageBusVehicleViewModel;
 			Assert.IsTrue(secondStageVehicleVm.AirdragModifiedMultistepEditingEnabled);
 			Assert.IsTrue(secondStageVehicleVm.AirdragModifiedMultistepMandatory);
 			Assert.IsNull(secondStageVehicleVm.ConsolidatedVehicleData.AirdragModifiedMultistep);
@@ -110,7 +110,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var vm = LoadFileFromPath(TestData.primary_vehicle_only);
 			var vehicleVm =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleVm.AirdragModifiedMultistep);
 
@@ -135,7 +135,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			//var vm = loadFile(primary_vehicle_only);
 			//var vehicleVM =
 			//	vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-			//		InterimStageBusVehicleViewModel_v2_8;
+			//		InterimStageBusVehicleViewModel;
 
 			//Assert.IsNull(vehicleVM.AirdragModifiedMultistage);
 
@@ -152,7 +152,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		{
 			var vm = LoadFileFromPath(TestData.consolidated_multiple_stages_airdrag);
 
-			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleViewModel.AirdragModifiedMultistep);
 
@@ -184,7 +184,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		{
 			var vm = LoadFileFromPath(TestData.consolidated_multiple_stages_airdrag);
 
-			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleViewModel.AirdragModifiedMultistep);
 
@@ -221,7 +221,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		{
 			var vm = LoadFileFromPath(TestData.consolidated_multiple_stages_airdrag);
 
-			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleViewModel.AirdragModifiedMultistep);
 
@@ -248,7 +248,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 		{
 			var vm = LoadFileFromPath(TestData.consolidated_multiple_stages_airdrag);
 
-			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleViewModel = vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleViewModel.AirdragModifiedMultistep);
 
diff --git a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
index 1252aecfaf634d4a54c0b2575f0d57b47d025001..539280729bc61c3260d4c140e90719d35ce74a52 100644
--- a/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/ExemptedTests.cs
@@ -32,7 +32,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			var vehicleVm =
 				multistageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			Assert.IsTrue(vehicleVm.ExemptedVehicle);
 
@@ -98,7 +98,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			var vehicleVm =
 				multistageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			Assert.IsTrue(vehicleVm.ExemptedVehicle);
 
diff --git a/Vecto3GUI2020Test/ViewModelTests/FactoryTests/DocumentViewModelFactoryTest.cs b/Vecto3GUI2020Test/ViewModelTests/FactoryTests/DocumentViewModelFactoryTest.cs
index 1c3bccfa5a813dc641f0b090fade7a1e48f5caa6..83dacbfbd9f7a2f39c487948ceee6203be441f46 100644
--- a/Vecto3GUI2020Test/ViewModelTests/FactoryTests/DocumentViewModelFactoryTest.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/FactoryTests/DocumentViewModelFactoryTest.cs
@@ -50,6 +50,14 @@ namespace Vecto3GUI2020Test.ViewModelTests.FactoryTests
 			Assert.NotNull(stepInputViewModel);
 		}
 
+		[TestCase]
+		public void NewStepInput()
+		{
+			var exempted = false;
+			var document = _documentViewModelFactory.GetCreateNewStepInputViewModel(exempted);
+
+		}
+
 
 		[TestCase(XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24, XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE)]
 		[TestCase(XMLDefinitions.DECLARATION_DEFINITIONS_NAMESPACE_URI_V24, XMLDeclarationConventionalCompletedBusDataProviderV24.XSD_TYPE)]
diff --git a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs
index 03a5c274d5bbf028fb604bd1ca72d56d53f1a5b6..2732ae6fa89474f7c5df94aba41bed11e7005ffc 100644
--- a/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/LoadAndSaveVehicleData.cs
@@ -32,7 +32,7 @@ namespace Vecto3GUI2020Test
 		{
 			//Load Primary Vehicle VIF
 			var newMultiStageJob = LoadFileFromPath(TestData.primary_vehicle_only);
-			var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+			var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 			Assert.NotNull(vehicle);
 			vehicle.Manufacturer = "test1";
 			vehicle.ManufacturerAddress = "testAddress2";
@@ -57,7 +57,7 @@ namespace Vecto3GUI2020Test
 		{
 			//load file
 			var newMultiStageJob = LoadFileFromPath(TestData.primary_vehicle_only);
-			var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+			var vehicle = newMultiStageJob.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 
 		}
 
@@ -69,7 +69,7 @@ namespace Vecto3GUI2020Test
 			var newMultistageJobViewModel = LoadFileFromPath(TestData.consolidated_multiple_stages_airdrag) as NewMultiStageJobViewModel;
 
 			var vehicle = newMultistageJobViewModel.MultiStageJobViewModel.VehicleInputData as
-				InterimStageBusVehicleViewModel_v2_8;
+				InterimStageBusVehicleViewModel;
 
 			Assert.NotNull(vehicle);
 
@@ -78,7 +78,7 @@ namespace Vecto3GUI2020Test
 
 			newMultistageJobViewModel.AddVifFile(Path.GetFullPath(TestData.consolidated_multiple_stages_hev));
 			Assert.AreEqual(Path.GetFullPath(TestData.consolidated_multiple_stages_hev), newMultistageJobViewModel.VifPath);
-			vehicle = newMultistageJobViewModel.MultiStageJobViewModel.VehicleInputData as InterimStageBusVehicleViewModel_v2_8;
+			vehicle = newMultistageJobViewModel.MultiStageJobViewModel.VehicleInputData as InterimStageBusVehicleViewModel;
 			Assert.IsFalse(vehicle.AirdragModifiedMultistepEditingEnabled);
 
 		}
@@ -106,7 +106,7 @@ namespace Vecto3GUI2020Test
 				multiStageJobViewModel.ManufacturingStageViewModel as ManufacturingStageViewModel_v0_1;
 
 			var vehicleViewModel =
-				manufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+				manufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 
 
@@ -150,7 +150,7 @@ namespace Vecto3GUI2020Test
 			Assert.IsTrue(string.IsNullOrEmpty(vehicleViewModel.VIN));
 			Assert.IsNull(vehicleViewModel.Model);
 
-			var vehicleViewModelV28 = vehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleViewModelV28 = vehicleViewModel as InterimStageBusVehicleViewModel;
 			Assert.NotNull(vehicleViewModelV28);
 
 			Assert.Null(vehicleViewModelV28.HeightInMm);
@@ -200,7 +200,7 @@ namespace Vecto3GUI2020Test
 
 			var vehicleVm =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 
 			var airdragLoadResult = vehicleVm.MultistageAirdragViewModel.LoadAirdragFile(Path.GetFullPath(TestData.airdragLoadTestFile));
@@ -276,7 +276,7 @@ namespace Vecto3GUI2020Test
 
 			//manStageViewModel.LoadStageInputData(vehicleInputDataFilePath);
 
-			var vehicleViewModel = manStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleViewModel = manStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 			Assert.NotNull(vehicleViewModel);
 			//Assert.IsFalse(getMockDialogHelper().Verify);
 
diff --git a/Vecto3GUI2020Test/ViewModelTests/StageViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
similarity index 97%
rename from Vecto3GUI2020Test/ViewModelTests/StageViewModelTests.cs
rename to Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
index 191257ae143ffc2d43f87db31391e7211639302a..4a174d4eab9fdadf34b6f90165a047a22e3a1b67 100644
--- a/Vecto3GUI2020Test/ViewModelTests/StageViewModelTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
@@ -19,7 +19,7 @@ using Vecto3GUI2020Test.Utils;
 namespace Vecto3GUI2020Test.ViewModelTests
 {
 	[TestFixture]
-	public class StageViewModelTests
+	public class StepViewModelTests
 	{
 		private IKernel _kernel;
 		private MockWindowHelper _windowHelper;
@@ -38,7 +38,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			IMultiStageViewModelFactory vmFactory = _kernel.Get<IMultiStageViewModelFactory>();
 
 			var StageInput = vmFactory.GetCreateNewStepInputViewModel(exempted) as StageInputViewModel;
-			var vehicleVm = StageInput.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleVm = StageInput.VehicleViewModel as InterimStageBusVehicleViewModel;
 			vehicleVm.Manufacturer = "adsf";
 			vehicleVm.ManufacturerAddress = "asdf 123";
 			vehicleVm.VIN = "1234567890";
@@ -64,7 +64,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			IMultiStageViewModelFactory vmFactory = _kernel.Get<IMultiStageViewModelFactory>();
 
 			var StageInput = vmFactory.GetCreateNewStepInputViewModel(false) as StageInputViewModel;
-			var vehicleVm = StageInput.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var vehicleVm = StageInput.VehicleViewModel as InterimStageBusVehicleViewModel;
 			vehicleVm.Manufacturer = "adsf";
 			vehicleVm.ManufacturerAddress = "asdf 123";
 			vehicleVm.VIN = "1234567890";
@@ -130,6 +130,14 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 
 
+		[Test]
+		public void CreateStepInput()
+		{
+
+
+
+		}
+
 
 
 	}
diff --git a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs
index 772927586af252b6da27c05cc419f7b844851ff3..3f85f070fb031a8afe6804fc1486e02e73b0fa74 100644
--- a/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/VIFTests.cs
@@ -40,7 +40,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			//Set Mandatory Fields
 			var vehicle =
-				multistagevm.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+				multistagevm.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 			vehicle.ManufacturerAddress = "Address";
 			vehicle.Manufacturer = "Manufacturer";
 			vehicle.VIN = "VIN12345678";
@@ -69,7 +69,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			//Set Necessary Fields
 			var vehicleVm =
-				multistagevm.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+				multistagevm.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 
 			vehicleVm.Manufacturer = "adsf";
 			vehicleVm.ManufacturerAddress = "asdf 123";
@@ -131,7 +131,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			var multistagevm = LoadFileFromPath(_finalVif);
 
-			var VehicleViewModel = multistagevm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+			var VehicleViewModel = multistagevm.MultiStageJobViewModel.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			VehicleViewModel.Manufacturer = "Manufacturer";
             VehicleViewModel.ManufacturerAddress = "Manufacturer Address";
@@ -169,7 +169,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var jobListVm = _kernel.Get<IJobListViewModel>();
 
 			var vehicleVm =
-				multistagevm.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+				multistagevm.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			Assert.IsTrue(vehicleVm.ExemptedVehicle);
 			vehicleVm.Manufacturer = "Test Manufacturer 1";
@@ -210,7 +210,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var jobListVm = _kernel.Get<IJobListViewModel>();
 
 			var vehicleVm =
-				multistagevm.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel_v2_8;
+				multistagevm.ManufacturingStageViewModel.VehicleViewModel as InterimStageBusVehicleViewModel;
 
 			Assert.IsTrue(vehicleVm.ExemptedVehicle);
 			vehicleVm.Manufacturer = "Test Manufacturer 1";
@@ -264,7 +264,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			multiStageViewModel.ManufacturingStageViewModel.LoadStageInputData(Path.GetFullPath(TestData.stageInputFullSample));
 			
 			var vehicle =
-				multiStageViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+				multiStageViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 			vehicle.ManufacturerAddress = "Address";
 			vehicle.Manufacturer = "Manufacturer";
 			vehicle.VIN = "VIN12345678";
diff --git a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs
index 2f459a6b21c7c91698ffe3d2b5fa7bedbf0a3dfb..b87145048f14d137a51b8bc06e9003662db436e9 100644
--- a/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/VehicleViewModelTests.cs
@@ -16,7 +16,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var vm = LoadFileFromPath(TestData.primary_vehicle_only);
 			var vehicleVM =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 			var enteredString = "test";
 			var modelParam = vehicleVM.ParameterViewModels[nameof(vehicleVM.Model)];
 			//Null after loading
@@ -68,7 +68,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var vm = LoadFileFromPath(TestData.primary_vehicle_only);
 			var vehicleVM =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			Assert.IsNull(vehicleVM.CurbMassChassis?.Value());
 			var curbMassParameter = vehicleVM.ParameterViewModels[nameof(vehicleVM.CurbMassChassis)];
@@ -88,7 +88,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var vm = LoadFileFromPath(TestData.primary_vehicle_only);
 			var vehicleVM =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 			var vmConc = vm.MultiStageJobViewModel as MultiStageJobViewModel_v0_1;
 			vmConc.ManufacturingStageViewModel.LoadStageInputData(TestData.stageInputFullSample);
 			Assert.IsFalse(vmConc.ManufacturingStageViewModel.VehicleViewModel.HasErrors);
@@ -106,7 +106,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 
 			var vehicleViewModel =
 				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as
-					InterimStageBusVehicleViewModel_v2_8;
+					InterimStageBusVehicleViewModel;
 
 			var vehicleData = vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle;
 
@@ -133,7 +133,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			Assert.NotNull(vm);
 
 			var vehicleViewModel =
-				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+				vm.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 
 			//Assert.NotNull(vm.MultiStageJobViewModel.ManufacturingStages);
 			//Assert.IsNotEmpty(vm.MultiStageJobViewModel.ManufacturingStages);
diff --git a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs
index baded159152531137f0040cd4853ee76cf0d85b0..06239d9eb9a3349bf3f9edf30aa0066381ee41a1 100644
--- a/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/ViewModelTestBase.cs
@@ -47,7 +47,7 @@ namespace Vecto3GUI2020Test
 
 			Assert.NotNull(newMultistageJobViewModel.MultiStageJobViewModel);
 
-			var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel_v2_8;
+			var manstageVehicleViewModel = newMultistageJobViewModel.MultiStageJobViewModel.ManufacturingStageViewModel.Vehicle as InterimStageBusVehicleViewModel;
 			Assert.NotNull(manstageVehicleViewModel);
 
 			//Assert.AreEqual(GetTestDataPath(fileName), newMultistageJobViewModel.VifPath);
@@ -57,7 +57,7 @@ namespace Vecto3GUI2020Test
 				var auxiliariesViewModel = manstageVehicleViewModel.MultistageAuxiliariesViewModel;
 				Assert.NotNull(auxiliariesViewModel);
 
-				var airdragViewModel = (manstageVehicleViewModel as InterimStageBusVehicleViewModel_v2_8)?.MultistageAirdragViewModel;
+				var airdragViewModel = (manstageVehicleViewModel as InterimStageBusVehicleViewModel)?.MultistageAirdragViewModel;
 				Assert.NotNull(airdragViewModel);
 			}
 			return newMultistageJobViewModel;
diff --git a/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs b/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs
index 1cfd49d07de0a50946c871db6e3e83f11fbb4784..1714092c65d76aac48bd3494a9efb968498188f2 100644
--- a/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs
+++ b/VectoCore/VectoCore/Utils/Ninject/CombineArgumentsToNameInstanceProviders.cs
@@ -28,10 +28,15 @@ namespace TUGraz.VectoCore.Utils.Ninject
 			/// Specifies the number of arguments that are passed to the <see cref="combineToNameDelegate"/>
 			/// </summary>
 			public int takeArguments;
-			/// <summary>
-			/// Sets the methods for which these settings apply, leave empty for default settings
-			/// </summary>
-			public MethodInfo[] methods;
+
+            //TODO: use expressions instead of method info 
+			// Expression<Func<int, string>> expression = i => i.ToString();
+			// MethodInfo method = ((MethodCallExpression)expression.Body).Method;
+
+            /// <summary>
+            /// Sets the methods for which these settings apply, leave empty for default settings
+            /// </summary>
+            public MethodInfo[] methods;
 		}
 
 		public delegate string CombineToName(params object[] arguments);