Index: trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs	(revision 3303)
@@ -283,5 +283,5 @@
     private void InitializeSelectors() {
       selectors = new List<ISelector>();
-      if (ApplicationManager.Manager != null) selectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name));
+      selectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name));
       ParameterizeSelectors();
     }
@@ -300,37 +300,31 @@
     }
     private void UpdateSelectors() {
-      if (ApplicationManager.Manager != null) {
-        ISelector oldSelector = SelectorParameter.Value;
-        SelectorParameter.ValidValues.Clear();
-        foreach (ISelector selector in Selectors.OrderBy(x => x.Name))
-          SelectorParameter.ValidValues.Add(selector);
-        if (oldSelector != null) {
-          ISelector selector = SelectorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSelector.GetType());
-          if (selector != null) SelectorParameter.Value = selector;
-        }
+      ISelector oldSelector = SelectorParameter.Value;
+      SelectorParameter.ValidValues.Clear();
+      foreach (ISelector selector in Selectors.OrderBy(x => x.Name))
+        SelectorParameter.ValidValues.Add(selector);
+      if (oldSelector != null) {
+        ISelector selector = SelectorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSelector.GetType());
+        if (selector != null) SelectorParameter.Value = selector;
       }
     }
     private void UpdateCrossovers() {
-      if (ApplicationManager.Manager != null) {
-        ICrossover oldCrossover = CrossoverParameter.Value;
-        CrossoverParameter.ValidValues.Clear();
-        foreach (ICrossover crossover in Problem.Operators.OfType<ICrossover>().OrderBy(x => x.Name))
-          CrossoverParameter.ValidValues.Add(crossover);
-        if (oldCrossover != null) {
-          ICrossover crossover = CrossoverParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldCrossover.GetType());
-          if (crossover != null) CrossoverParameter.Value = crossover;
-        }
+      ICrossover oldCrossover = CrossoverParameter.Value;
+      CrossoverParameter.ValidValues.Clear();
+      foreach (ICrossover crossover in Problem.Operators.OfType<ICrossover>().OrderBy(x => x.Name))
+        CrossoverParameter.ValidValues.Add(crossover);
+      if (oldCrossover != null) {
+        ICrossover crossover = CrossoverParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldCrossover.GetType());
+        if (crossover != null) CrossoverParameter.Value = crossover;
       }
     }
     private void UpdateMutators() {
-      if (ApplicationManager.Manager != null) {
-        IManipulator oldMutator = MutatorParameter.Value;
-        MutatorParameter.ValidValues.Clear();
-        foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name))
-          MutatorParameter.ValidValues.Add(mutator);
-        if (oldMutator != null) {
-          IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType());
-          if (mutator != null) MutatorParameter.Value = mutator;
-        }
+      IManipulator oldMutator = MutatorParameter.Value;
+      MutatorParameter.ValidValues.Clear();
+      foreach (IManipulator mutator in Problem.Operators.OfType<IManipulator>().OrderBy(x => x.Name))
+        MutatorParameter.ValidValues.Add(mutator);
+      if (oldMutator != null) {
+        IManipulator mutator = MutatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMutator.GetType());
+        if (mutator != null) MutatorParameter.Value = mutator;
       }
     }
Index: trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Tests/UnitTest.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Tests/UnitTest.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/Tests/UnitTest.cs	(revision 3303)
@@ -23,4 +23,5 @@
 using System.Threading;
 using HeuristicLab.Common;
+using HeuristicLab.Data;
 using HeuristicLab.Optimization;
 using HeuristicLab.Persistence.Default.Xml;
@@ -90,4 +91,21 @@
       trigger.WaitOne();
       TestContext.WriteLine("Runtime: {0}", ga.ExecutionTime.ToString());
+
+      double expectedBestQuality = 12332.0;
+      double expectedAverageQuality = 13123.2;
+      double expectedWorstQuality = 14538.0;
+      double bestQuality = (ga.Results["Current Best Quality"].Value as DoubleValue).Value;
+      double averageQuality = (ga.Results["Current Average Quality"].Value as DoubleValue).Value;
+      double worstQuality = (ga.Results["Current Worst Quality"].Value as DoubleValue).Value;
+
+      TestContext.WriteLine("");
+      TestContext.WriteLine("Current Best Quality: {0} (should be {1})", bestQuality, expectedBestQuality);
+      TestContext.WriteLine("Current Average Quality: {0} (should be {1})", averageQuality, expectedAverageQuality);
+      TestContext.WriteLine("Current Worst Quality: {0} (should be {1})", worstQuality, expectedWorstQuality);
+
+      Assert.AreEqual(bestQuality, expectedBestQuality);
+      Assert.AreEqual(averageQuality, expectedAverageQuality);
+      Assert.AreEqual(worstQuality, expectedWorstQuality);
+
       if (ex != null) throw ex;
     }
Index: trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs	(revision 3303)
@@ -279,8 +279,6 @@
     private void InitializeAnnealingOperators() {
       annealingOperators = new List<IDiscreteDoubleValueModifier>();
-      if (ApplicationManager.Manager != null) {
-        annealingOperators.AddRange(ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name));
-        ParameterizeAnnealingOperators();
-      }
+      annealingOperators.AddRange(ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name));
+      ParameterizeAnnealingOperators();
       AnnealingOperatorParameter.ValidValues.Clear();
       foreach (IDiscreteDoubleValueModifier op in annealingOperators)
Index: trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs	(revision 3303)
@@ -198,19 +198,17 @@
       var locationTable = assemblies.ToDictionary(a => a.Location, a => a);
 
-      if (ApplicationManager.Manager != null) {
-        foreach (var plugin in ApplicationManager.Manager.Plugins) {
-          var aList = new List<Assembly>();
-          foreach (var aName in from file in plugin.Files
-                                where file.Type == PluginFileType.Assembly
-                                select file.Name) {
-            Assembly a;
-            locationTable.TryGetValue(aName, out a);
-            if (a != null) {
-              aList.Add(a);
-              locationTable.Remove(aName);
-            }
+      foreach (var plugin in ApplicationManager.Manager.Plugins) {
+        var aList = new List<Assembly>();
+        foreach (var aName in from file in plugin.Files
+                              where file.Type == PluginFileType.Assembly
+                              select file.Name) {
+          Assembly a;
+          locationTable.TryGetValue(aName, out a);
+          if (a != null) {
+            aList.Add(a);
+            locationTable.Remove(aName);
           }
-          plugins[plugin.Name] = aList;
-        }
+        }
+        plugins[plugin.Name] = aList;
       }
 
Index: trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs	(revision 3303)
@@ -118,5 +118,5 @@
     private void Initialize() {
       operatorGraph.InitialOperatorChanged += new EventHandler(OperatorGraph_InitialOperatorChanged);
-      if ((engine == null) && (ApplicationManager.Manager != null)) {
+      if (engine == null) {
         var types = ApplicationManager.Manager.GetTypes(typeof(IEngine));
         Type t = types.FirstOrDefault(x => x.Name.Equals("SequentialEngine"));
Index: trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 3303)
@@ -298,13 +298,10 @@
     private void InitializeOperators() {
       operators = new List<IBinaryVectorOperator>();
-      if (ApplicationManager.Manager != null) {
-        foreach (IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) {
-          if (!(op is ISingleObjectiveMoveEvaluator) || (op is IKnapsackMoveEvaluator)) {
-            operators.Add(op);
-          }
+      foreach (IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) {
+        if (!(op is ISingleObjectiveMoveEvaluator) || (op is IKnapsackMoveEvaluator)) {
+          operators.Add(op);
         }
-        ParameterizeOperators();
-      }
-
+      }
+      ParameterizeOperators();
       InitializeMoveGenerators();
     }
Index: trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs	(revision 3303)
@@ -227,13 +227,10 @@
     private void InitializeOperators() {
       operators = new List<IBinaryVectorOperator>();
-      if (ApplicationManager.Manager != null) {
-        foreach(IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) {
-          if (!(op is ISingleObjectiveMoveEvaluator) || (op is IOneMaxMoveEvaluator)) {
-            operators.Add(op);
-          }
+      foreach(IBinaryVectorOperator op in ApplicationManager.Manager.GetInstances<IBinaryVectorOperator>()) {
+        if (!(op is ISingleObjectiveMoveEvaluator) || (op is IOneMaxMoveEvaluator)) {
+          operators.Add(op);
         }
-        ParameterizeOperators();
-      }
-
+      }
+      ParameterizeOperators();
       InitializeMoveGenerators();
     }
Index: trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 3303)
@@ -252,5 +252,5 @@
     private void InitializeOperators() {
       operators = new List<IOperator>();
-      if (ApplicationManager.Manager != null) operators.AddRange(ApplicationManager.Manager.GetInstances<IRealVectorOperator>().Cast<IOperator>());
+      operators.AddRange(ApplicationManager.Manager.GetInstances<IRealVectorOperator>().Cast<IOperator>());
       UpdateMoveEvaluators();
       ParameterizeOperators();
@@ -265,14 +265,12 @@
     }
     private void UpdateMoveEvaluators() {
-      if (ApplicationManager.Manager != null) {
-        foreach (ISingleObjectiveTestFunctionMoveEvaluator op in Operators.OfType<ISingleObjectiveTestFunctionMoveEvaluator>().ToList())
-          operators.Remove(op);
-        foreach (ISingleObjectiveTestFunctionMoveEvaluator op in ApplicationManager.Manager.GetInstances<ISingleObjectiveTestFunctionMoveEvaluator>())
-          if (op.EvaluatorType == Evaluator.GetType()) {
-            operators.Add(op);
-          }
-        ParameterizeOperators();
-        OnOperatorsChanged();
-      }
+      foreach (ISingleObjectiveTestFunctionMoveEvaluator op in Operators.OfType<ISingleObjectiveTestFunctionMoveEvaluator>().ToList())
+        operators.Remove(op);
+      foreach (ISingleObjectiveTestFunctionMoveEvaluator op in ApplicationManager.Manager.GetInstances<ISingleObjectiveTestFunctionMoveEvaluator>())
+        if (op.EvaluatorType == Evaluator.GetType()) {
+          operators.Add(op);
+        }
+      ParameterizeOperators();
+      OnOperatorsChanged();
     }
     private void ParameterizeSolutionCreator() {
Index: trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs	(revision 3302)
+++ trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs	(revision 3303)
@@ -295,5 +295,5 @@
     private void InitializeOperators() {
       operators = new List<IPermutationOperator>();
-      if (ApplicationManager.Manager != null) operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>());
+      operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>());
       ParameterizeOperators();
       UpdateMoveEvaluators();
@@ -313,14 +313,12 @@
     }
     private void UpdateMoveEvaluators() {
-      if (ApplicationManager.Manager != null) {
-        foreach (ITSPPathMoveEvaluator op in Operators.OfType<ITSPPathMoveEvaluator>().ToList())
-          operators.Remove(op);
-        foreach (ITSPPathMoveEvaluator op in ApplicationManager.Manager.GetInstances<ITSPPathMoveEvaluator>())
-          if (op.EvaluatorType == Evaluator.GetType()) {
-            operators.Add(op);
-          }
-        ParameterizeOperators();
-        OnOperatorsChanged();
-      }
+      foreach (ITSPPathMoveEvaluator op in Operators.OfType<ITSPPathMoveEvaluator>().ToList())
+        operators.Remove(op);
+      foreach (ITSPPathMoveEvaluator op in ApplicationManager.Manager.GetInstances<ITSPPathMoveEvaluator>())
+        if (op.EvaluatorType == Evaluator.GetType()) {
+          operators.Add(op);
+        }
+      ParameterizeOperators();
+      OnOperatorsChanged();
     }
     private void ParameterizeSolutionCreator() {
