diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
index 59fb4431bd455c4bc0af83fd959a1c98df25f0c7..c9970582d135c7ccfb49e6c000b10e30b6e1592d 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactory.cs
@@ -61,7 +61,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 	public abstract class SimulatorFactory : LoggingObject, ISimulatorFactory
 	{
 		private static int _jobNumberCounter;
-		
+		private static IKernel _kernel; //Kernel is only used when the SimulatorFactory is created with the Factory Method.
 
 		protected Func<ISimulatorFactory> _followingSimulatorFactoryCreator = null;
 
@@ -80,22 +80,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 		[Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)]
 		public static ISimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, IDeclarationReport declarationReport = null, IVTPReport vtpReport=null, bool validate = true)
 		{
-			return new StandardKernel(new VectoNinjectModule()).Get<ISimulatorFactoryFactory>().Factory(mode, dataProvider, writer, declarationReport, vtpReport, validate);
-			//switch (mode)
-			//{
-			//	case ExecutionMode.Declaration:
-
-			//		return new SimulatorFactoryDeclaration(dataProvider, writer, declarationReport, vtpReport, validate);
-			//	case ExecutionMode.Engineering:
-			//		return new SimulatorFactoryEngineering(dataProvider, writer, validate);
-			//	default:
-			//		throw new VectoException("Unkown factory mode in SimulatorFactory: {0}", mode);
-			//}
-		}
-		[Obsolete("Creation of new SimulatorFactories should be done with SimulatorFactoryFactory NInject Factory", false)]
-		public static ISimulatorFactory CreateSimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer)
-		{
-			return CreateSimulatorFactory(mode, dataProvider, writer, null, null, true);
+			lock (_kernel) {
+				if (_kernel == null) {
+					_kernel = new StandardKernel(new VectoNinjectModule());
+				}
+			}
+			return _kernel.Get<ISimulatorFactoryFactory>().Factory(mode, dataProvider, writer, declarationReport, vtpReport, validate);
 		}
 
 		protected SimulatorFactory(ExecutionMode mode, IOutputDataWriter writer, bool validate = true)
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
index 4558d8ffa09bc121d386cfda036be00026e07aee..4cdc0bfa2803ed678585321cdd7f152f2c93bf20 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory/SimulatorFactoryDeclaration.cs
@@ -78,9 +78,6 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 						DataReader = new DeclarationModeCompletedMultistageBusVectoRunDataFactory(
 							multistageVifInputData.MultistageJobInputData,
 							reportCompleted);
-
-						
-
 					}
 					else
 					{
@@ -142,7 +139,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
 #pragma warning disable 618
 							var factory = CreateSimulatorFactory(_mode,
 #pragma warning restore 618
-								vifInputData, originalReportWriter,
+								vifInputData, 
+								originalReportWriter,
 								null,
 								vtpReport,
 								Validate);