diff --git a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
index 21f936fb99193c2107f54669469e4da0b438a575..5ee05781a8fe37544ab138246e2cb3e607f6672b 100644
--- a/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/Implementation/JobListViewModel.cs
@@ -22,11 +22,13 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
+using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
 using TUGraz.VectoCore.OutputData;
@@ -106,6 +108,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
             IDialogHelper dialogHelper,
             IWindowHelper windowHelper,
 			IMultiStageViewModelFactory multiStageViewModelFactory,
+			ISimulatorFactoryFactory simulatorFactoryFactory,
 			IOutputViewModel outputViewModel) : this()
         {
             _documentViewModelFactory = documentViewModelFactory;
@@ -114,6 +117,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 			_inputDataReader = inputDataReader;
 			_multiStageViewModelFactory = multiStageViewModelFactory;
 			_outputViewModel = outputViewModel;
+			_simFactoryFactory = simulatorFactoryFactory;
 
 			_outputMessage = new Progress<MessageEntry>((message) => {
 				_outputViewModel.AddMessage(message);
@@ -518,7 +522,8 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 					}
 
 					var fileWriter = new FileOutputWriter(GetOutputDirectory(fullFileName));
-					var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, input, fileWriter);
+					var runsFactory = _simFactoryFactory.Factory(mode, input, fileWriter);
+					//var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, input, fileWriter);
 					runsFactory.WriteModalResults = Settings.Default.WriteModalResults;
 					runsFactory.ModalResults1Hz = Settings.Default.ModalResults1Hz;
 					runsFactory.Validate = Settings.Default.Validate;
@@ -793,6 +798,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
 		private ICommand _openAdditionalJobInformationCommand;
 		private IRelayCommand _openSourceFileCommand;
 		private IRelayCommand _showSourceFileInExplorerCommand;
+		private readonly ISimulatorFactoryFactory _simFactoryFactory;
 
 
 		public ICommand OpenSourceFileCommand
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
index 6ef16df4754cfe923802acce507e565b1c0809c3..4213b9d04cf4cdae5d6220aa9b9b175bce0ed993 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
@@ -18,6 +18,7 @@ using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.FileIO.XML;
 using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
+using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
@@ -81,7 +82,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			IMultistageDependencies multistageDependencies,
 			IXMLInputDataReader inputDataReader, 
 			IJobListViewModel jobListViewModel,
-			IAdditionalJobInfoViewModel additionalJobInfo)
+			IAdditionalJobInfoViewModel additionalJobInfo,
+			ISimulatorFactoryFactory simulatorFactoryFactory)
 		{
 			
 			_dataSource = inputData.DataSource;
@@ -90,11 +92,11 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			_jobListViewModel = jobListViewModel;
 			_inputData = inputData;
 			_vmFactory = vmFactory;
+			_simFactoryFactory = simulatorFactoryFactory;
 			_consolidateManufacturingStage = _jobInputData.ConsolidateManufacturingStage;
 			_manufacturingStages = _jobInputData.ManufacturingStages;
 			_primaryVehicle = _jobInputData.PrimaryVehicle;
 			_dialogHelper = multistageDependencies.DialogHelperLazy;
-			_inputDataReader = inputDataReader;
 			_inputComplete = inputData.JobInputData.InputComplete;
 			_invalidEntries = inputData.JobInputData?.InvalidEntries?.Distinct().ToList();
 			_additionalJobInfoVm = additionalJobInfo;
@@ -217,16 +219,12 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 				var inputData =
 					new XMLDeclarationVIFInputData(vifData.MultistageJobInputData, vifData.VehicleInputData);
 
-				var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer);
+				var factory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, writer);
+				//var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer);
 
 				var jobContainer = new JobContainer(new NullSumWriter());
 
 				jobContainer.AddRuns(factory);
-				//var runs = factory.SimulationRuns().ToList();
-				//foreach (var run in runs) {
-				//	jobContainer.AddRun(run);
-				//}
-
 				jobContainer.Execute();
 				jobContainer.WaitFinished();
 
@@ -265,8 +263,6 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
 	
 		private readonly Lazy<IDialogHelper> _dialogHelper;
-		private readonly IXMLInputDataReader _inputDataReader;
-		private string _vehicleInputDataFilePath = null;
 		private readonly IMultistageDependencies _multistageDependencies;
 		private readonly DataSource _dataSource;
 		private readonly IMultistageBusInputDataProvider _inputData;
@@ -274,6 +270,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 		private readonly bool _exempted;
 		private readonly IJobListViewModel _jobListViewModel;
 		private readonly IList<string> _invalidEntries;
+		private readonly ISimulatorFactoryFactory _simFactoryFactory;
 
 
 		public string VehicleInputDataFilePath
diff --git a/VectoConsole/Program.cs b/VectoConsole/Program.cs
index 50155f95b51c7a8408d6658b0b981fafc62c6f27..e52d3071705443971a6d2910ddc6b9266a966ad1 100644
--- a/VectoConsole/Program.cs
+++ b/VectoConsole/Program.cs
@@ -49,6 +49,7 @@ using TUGraz.VectoCore;
 using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
 using TUGraz.VectoCore.OutputData;
@@ -228,7 +229,8 @@ Examples:
 					}
 
 					fileWriter = new FileOutputWriter(file);
-					var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, dataProvider, fileWriter);
+					var runsFactory = _kernel.Get<ISimulatorFactoryFactory>().Factory(mode, dataProvider, fileWriter);
+					//var runsFactory = SimulatorFactory.CreateSimulatorFactory(mode, dataProvider, fileWriter);
 					runsFactory.ModalResults1Hz = args.Contains("-1Hz");
 					runsFactory.WriteModalResults = args.Contains("-mod");
 					runsFactory.ActualModalData = args.Contains("-act");