Index: /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithm.cs	(revision 3658)
@@ -78,6 +78,6 @@
       get { return (ValueParameter<IntValue>)Parameters["Elites"]; }
     }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["Analyzer"]; }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     }
     private ValueParameter<IntValue> MaximumGenerationsParameter {
@@ -119,5 +119,5 @@
       set { ElitesParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
@@ -153,5 +153,5 @@
       Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));
       Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer<IPopulationAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer()));
       Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000)));
 
@@ -353,5 +353,5 @@
       Analyzer.Operators.Add(qualityAnalyzer);
       if (Problem != null) {
-        foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs	(revision 3658)
@@ -104,9 +104,9 @@
       get { return (ValueParameter<BoolValue>)Parameters["Parallel"]; }
     }
-    private ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>)Parameters["Analyzer"]; }
-    }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> IslandAnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["IslandAnalyzer"]; }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
+    }
+    private ValueParameter<MultiAnalyzer> IslandAnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["IslandAnalyzer"]; }
     }
     #endregion
@@ -177,9 +177,9 @@
       set { ParallelParameter.Value = value; }
     }
-    public MultiAnalyzer<IMultiPopulationAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> IslandAnalyzer {
+    public MultiAnalyzer IslandAnalyzer {
       get { return IslandAnalyzerParameter.Value; }
       set { IslandAnalyzerParameter.Value = value; }
@@ -228,6 +228,6 @@
       Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1)));
       Parameters.Add(new ValueParameter<BoolValue>("Parallel", "True if the islands should be run in parallel (also requires a parallel engine)", new BoolValue(false)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer<IMultiPopulationAnalyzer>()));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("IslandAnalyzer", "The operator used to analyze each island.", new MultiAnalyzer<IPopulationAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("IslandAnalyzer", "The operator used to analyze each island.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -513,8 +513,8 @@
       //Analyzer.Operators.Add(qualityAnalyzer);
       if (Problem != null) {
-        foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name)) {
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name)) {
           IslandAnalyzer.Operators.Add(analyzer);
         }
-        foreach (IMultiPopulationAnalyzer analyzer in Problem.Operators.OfType<IMultiPopulationAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearch.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearch.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearch.cs	(revision 3658)
@@ -72,9 +72,9 @@
       get { return (ValueParameter<IntValue>)Parameters["SampleSize"]; }
     }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> MoveAnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["MoveAnalyzer"]; }
-    }
-    private ValueParameter<MultiAnalyzer<ISolutionAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<ISolutionAnalyzer>>)Parameters["Analyzer"]; }
+    private ValueParameter<MultiAnalyzer> MoveAnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["MoveAnalyzer"]; }
+    }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     }
     #endregion
@@ -109,9 +109,9 @@
       set { SampleSizeParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> MoveAnalyzer {
+    public MultiAnalyzer MoveAnalyzer {
       get { return MoveAnalyzerParameter.Value; }
       set { MoveAnalyzerParameter.Value = value; }
     }
-    public MultiAnalyzer<ISolutionAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
@@ -140,6 +140,6 @@
       Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.", new IntValue(1000)));
       Parameters.Add(new ValueParameter<IntValue>("SampleSize", "Number of moves that MultiMoveGenerators should create. This is ignored for Exhaustive- and SingleMoveGenerators.", new IntValue(100)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("MoveAnalyzer", "The operator used to analyze the moves.", new MultiAnalyzer<IPopulationAnalyzer>()));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<ISolutionAnalyzer>>("Analyzer", "The operator used to analyze the solution.", new MultiAnalyzer<ISolutionAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("MoveAnalyzer", "The operator used to analyze the moves.", new MultiAnalyzer()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the solution.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -319,5 +319,5 @@
       MoveAnalyzer.Operators.Add(moveQualityAnalyzer);
       if (Problem != null) {
-        foreach (ISolutionAnalyzer analyzer in Problem.Operators.OfType<ISolutionAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs	(revision 3658)
@@ -121,9 +121,9 @@
       get { return (ValueLookupParameter<BoolValue>)Parameters["OffspringSelectionBeforeMutation"]; }
     }
-    private ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>)Parameters["Analyzer"]; }
-    }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> IslandAnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["IslandAnalyzer"]; }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
+    }
+    private ValueParameter<MultiAnalyzer> IslandAnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["IslandAnalyzer"]; }
     }
     #endregion
@@ -218,9 +218,9 @@
       set { OffspringSelectionBeforeMutationParameter.Value = value; }
     }
-    public MultiAnalyzer<IMultiPopulationAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> IslandAnalyzer {
+    public MultiAnalyzer IslandAnalyzer {
       get { return IslandAnalyzerParameter.Value; }
       set { IslandAnalyzerParameter.Value = value; }
@@ -276,6 +276,6 @@
       Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumSelectionPressure", "The maximum selection pressure that terminates the algorithm.", new DoubleValue(100)));
       Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.", new BoolValue(false)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer<IMultiPopulationAnalyzer>()));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("IslandAnalyzer", "The operator used to analyze each island.", new MultiAnalyzer<IPopulationAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the islands.", new MultiAnalyzer()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("IslandAnalyzer", "The operator used to analyze each island.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -613,8 +613,8 @@
       //Analyzer.Operators.Add(qualityAnalyzer);
       if (Problem != null) {
-        foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name)) {
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name)) {
           IslandAnalyzer.Operators.Add(analyzer);
         }
-        foreach (IMultiPopulationAnalyzer analyzer in Problem.Operators.OfType<IMultiPopulationAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs	(revision 3658)
@@ -101,6 +101,6 @@
       get { return (ValueLookupParameter<IntValue>)Parameters["SelectedParents"]; }
     }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["Analyzer"]; }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     }
     #endregion
@@ -171,5 +171,5 @@
       set { SelectedParentsParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
@@ -211,5 +211,5 @@
       Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.", new BoolValue(false)));
       Parameters.Add(new ValueLookupParameter<IntValue>("SelectedParents", "Should be about 2 * PopulationSize, for large problems use a smaller value to decrease memory footprint.", new IntValue(200)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer<IPopulationAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -436,5 +436,5 @@
       //Analyzer.Operators.Add(qualityAnalyzer);
       if (Problem != null) {
-        foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs	(revision 3658)
@@ -113,9 +113,9 @@
       get { return (ValueLookupParameter<IntValue>)Parameters["SelectedParents"]; }
     }
-    private ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>)Parameters["Analyzer"]; }
-    }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> VillageAnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["VillageAnalyzer"]; }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
+    }
+    private ValueParameter<MultiAnalyzer> VillageAnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["VillageAnalyzer"]; }
     }
     #endregion
@@ -198,9 +198,9 @@
       set { SelectedParentsParameter.Value = value; }
     }
-    public MultiAnalyzer<IMultiPopulationAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> VillageAnalyzer {
+    public MultiAnalyzer VillageAnalyzer {
       get { return VillageAnalyzerParameter.Value; }
       set { VillageAnalyzerParameter.Value = value; }
@@ -250,6 +250,6 @@
       Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.", new BoolValue(false)));
       Parameters.Add(new ValueLookupParameter<IntValue>("SelectedParents", "Should be about 2 * PopulationSize, for large problems use a smaller value to decrease memory footprint.", new IntValue(200)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IMultiPopulationAnalyzer>>("Analyzer", "The operator used to analyze the villages.", new MultiAnalyzer<IMultiPopulationAnalyzer>()));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("VillageAnalyzer", "The operator used to analyze each village.", new MultiAnalyzer<IPopulationAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the villages.", new MultiAnalyzer()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("VillageAnalyzer", "The operator used to analyze each village.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -523,8 +523,8 @@
       //Analyzer.Operators.Add(qualityAnalyzer);
       if (Problem != null) {
-        foreach (IPopulationAnalyzer analyzer in Problem.Operators.OfType<IPopulationAnalyzer>().OrderBy(x => x.Name)) {
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name)) {
           VillageAnalyzer.Operators.Add(analyzer);
         }
-        foreach (IMultiPopulationAnalyzer analyzer in Problem.Operators.OfType<IMultiPopulationAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs	(revision 3658)
@@ -364,6 +364,6 @@
       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
-      resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("ComparisonFactor", null, "ComparisonFactor"));
-      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Terminated Villages", null, "TerminatedVillages"));
+      resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("ComparisonFactor", null, "ComparisonFactor"));
+      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Terminated Villages", null, "TerminatedVillages"));
       resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Total Active Villages", null, "VillageCount"));
       resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
Index: /trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs	(revision 3658)
@@ -81,6 +81,6 @@
       get { return (ValueParameter<DoubleValue>)Parameters["EndTemperature"]; }
     }
-    private ValueParameter<MultiAnalyzer<ISolutionAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<ISolutionAnalyzer>>)Parameters["Analyzer"]; }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     }
     #endregion
@@ -123,5 +123,5 @@
       set { EndTemperatureParameter.Value = value; }
     }
-    public MultiAnalyzer<ISolutionAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
@@ -158,5 +158,5 @@
       Parameters.Add(new ValueParameter<DoubleValue>("StartTemperature", "The initial temperature.", new DoubleValue(100)));
       Parameters.Add(new ValueParameter<DoubleValue>("EndTemperature", "The final temperature which should be reached when iterations reaches maximum iterations.", new DoubleValue(1e-6)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<ISolutionAnalyzer>>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer<ISolutionAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -401,5 +401,5 @@
       Analyzer.Operators.Add(qualityAnalyzer);
       if (Problem != null) {
-        foreach (ISolutionAnalyzer analyzer in Problem.Operators.OfType<ISolutionAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuNeighborhoodAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuNeighborhoodAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuNeighborhoodAnalyzer.cs	(revision 3658)
@@ -28,5 +28,5 @@
 
 namespace HeuristicLab.Algorithms.TabuSearch {
-  public class TabuNeighborhoodAnalyzer : SingleSuccessorOperator, IPopulationAnalyzer {
+  public class TabuNeighborhoodAnalyzer : SingleSuccessorOperator, IAnalyzer {
     public SubScopesLookupParameter<BoolValue> IsTabuParameter {
       get { return (SubScopesLookupParameter<BoolValue>)Parameters["IsTabu"]; }
Index: /trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs	(revision 3658)
@@ -81,9 +81,9 @@
       get { return (ValueParameter<IntValue>)Parameters["SampleSize"]; }
     }
-    private ValueParameter<MultiAnalyzer<IPopulationAnalyzer>> MoveAnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>)Parameters["MoveAnalyzer"]; }
-    }
-    private ValueParameter<MultiAnalyzer<ISolutionAnalyzer>> AnalyzerParameter {
-      get { return (ValueParameter<MultiAnalyzer<ISolutionAnalyzer>>)Parameters["Analyzer"]; }
+    private ValueParameter<MultiAnalyzer> MoveAnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["MoveAnalyzer"]; }
+    }
+    private ValueParameter<MultiAnalyzer> AnalyzerParameter {
+      get { return (ValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     }
     #endregion
@@ -126,9 +126,9 @@
       set { MaximumIterationsParameter.Value = value; }
     }
-    public MultiAnalyzer<IPopulationAnalyzer> MoveAnalyzer {
+    public MultiAnalyzer MoveAnalyzer {
       get { return MoveAnalyzerParameter.Value; }
       set { MoveAnalyzerParameter.Value = value; }
     }
-    public MultiAnalyzer<ISolutionAnalyzer> Analyzer {
+    public MultiAnalyzer Analyzer {
       get { return AnalyzerParameter.Value; }
       set { AnalyzerParameter.Value = value; }
@@ -159,6 +159,6 @@
       Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.", new IntValue(1000)));
       Parameters.Add(new ValueParameter<IntValue>("SampleSize", "The neighborhood size for stochastic sampling move generators", new IntValue(100)));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<IPopulationAnalyzer>>("MoveAnalyzer", "The operator used to analyze the moves.", new MultiAnalyzer<IPopulationAnalyzer>()));
-      Parameters.Add(new ValueParameter<MultiAnalyzer<ISolutionAnalyzer>>("Analyzer", "The operator used to analyze the solution.", new MultiAnalyzer<ISolutionAnalyzer>()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("MoveAnalyzer", "The operator used to analyze the moves.", new MultiAnalyzer()));
+      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze the solution.", new MultiAnalyzer()));
       
       RandomCreator randomCreator = new RandomCreator();
@@ -392,5 +392,5 @@
       MoveAnalyzer.Operators.Add(tabuNeighborhoodAnalyzer);
       if (Problem != null) {
-        foreach (ISolutionAnalyzer analyzer in Problem.Operators.OfType<ISolutionAnalyzer>().OrderBy(x => x.Name))
+        foreach (IAnalyzer analyzer in Problem.Operators.OfType<IAnalyzer>().OrderBy(x => x.Name))
           Analyzer.Operators.Add(analyzer);
       }
Index: /trunk/sources/HeuristicLab.Analysis/3.3/MultiAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/MultiAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/MultiAnalyzer.cs	(revision 3658)
@@ -32,7 +32,7 @@
   /// An analyzer which applies arbitrary many other analyzers.
   /// </summary>
-  [Item("MultiAnalyzer<T>", "An analyzer which applies arbitrary many other analyzers.")]
+  [Item("MultiAnalyzer", "An analyzer which applies arbitrary many other analyzers.")]
   [StorableClass]
-  public class MultiAnalyzer<T> : CheckedMultiOperator<T>, IAnalyzer where T : class, IAnalyzer {
+  public class MultiAnalyzer : CheckedMultiOperator<IAnalyzer>, IAnalyzer {
     public override bool CanChangeName {
       get { return false; }
@@ -69,5 +69,5 @@
         counter.Value = 0;
         OperationCollection next = new OperationCollection();
-        foreach (IndexedItem<T> item in Operators.CheckedItems)
+        foreach (IndexedItem<IAnalyzer> item in Operators.CheckedItems)
           next.Add(ExecutionContext.CreateOperation(item.Value));
         next.Add(base.Apply());
Index: /trunk/sources/HeuristicLab.Analysis/3.3/PopulationBestAverageWorstQualityAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/PopulationBestAverageWorstQualityAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/PopulationBestAverageWorstQualityAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   [Item("PopulationBestAverageWorstQualityAnalyzer", "An operator which analyzes the best, average and worst solution quality in the current population.")]
   [StorableClass]
-  public sealed class PopulationBestAverageWorstQualityAnalyzer : AlgorithmOperator, IPopulationAnalyzer {
+  public sealed class PopulationBestAverageWorstQualityAnalyzer : AlgorithmOperator, IAnalyzer {
     #region Parameter properties
     public ValueLookupParameter<BoolValue> MaximizationParameter {
Index: /trunk/sources/HeuristicLab.Analysis/3.3/PopulationMinAverageMaxValueAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/PopulationMinAverageMaxValueAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/PopulationMinAverageMaxValueAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   [Item("PopulationMinAverageMaxValueAnalyzer", "An operator which analyzes the minimum, average and maximum of a value in the current population.")]
   [StorableClass]
-  public sealed class PopulationMinAverageMaxValueAnalyzer : AlgorithmOperator, IPopulationAnalyzer {
+  public sealed class PopulationMinAverageMaxValueAnalyzer : AlgorithmOperator, IAnalyzer {
     #region Parameter properties
     public SubScopesLookupParameter<DoubleValue> ValueParameter {
Index: /trunk/sources/HeuristicLab.Analysis/3.3/PopulationQualityAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/PopulationQualityAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/PopulationQualityAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   [Item("PopulationQualityAnalyzer", "An operator which analyzes the solution qualities in the current population.")]
   [StorableClass]
-  public sealed class PopulationQualityAnalyzer : AlgorithmOperator, IPopulationAnalyzer {
+  public sealed class PopulationQualityAnalyzer : AlgorithmOperator, IAnalyzer {
     #region Parameter properties
     public ValueLookupParameter<BoolValue> MaximizationParameter {
Index: /trunk/sources/HeuristicLab.Analysis/3.3/PopulationValueAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/PopulationValueAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/PopulationValueAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   [Item("PopulationValueAnalyzer", "An operator which analyzes a value in the current population.")]
   [StorableClass]
-  public sealed class PopulationValueAnalyzer : AlgorithmOperator, IPopulationAnalyzer {
+  public sealed class PopulationValueAnalyzer : AlgorithmOperator, IAnalyzer {
     #region Parameter properties
     public SubScopesLookupParameter<DoubleValue> ValueParameter {
Index: /trunk/sources/HeuristicLab.Analysis/3.3/SolutionQualityAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/SolutionQualityAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/SolutionQualityAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   [Item("SolutionQualityAnalyzer", "An operator which analyzes the quality of the current solution.")]
   [StorableClass]
-  public sealed class SolutionQualityAnalyzer : AlgorithmOperator, ISolutionAnalyzer {
+  public sealed class SolutionQualityAnalyzer : AlgorithmOperator, IAnalyzer {
     #region Parameter properties
     public ValueLookupParameter<BoolValue> MaximizationParameter {
Index: /trunk/sources/HeuristicLab.Analysis/3.3/SolutionValueAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/SolutionValueAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/SolutionValueAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   [Item("SolutionValueAnalyzer", "An operator which analyzes a value of the current solution.")]
   [StorableClass]
-  public sealed class SolutionValueAnalyzer : AlgorithmOperator, ISolutionAnalyzer {
+  public sealed class SolutionValueAnalyzer : AlgorithmOperator, IAnalyzer {
     #region Parameter properties
     public LookupParameter<DoubleValue> ValueParameter {
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreeAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreeAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreeAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   /// Interface for analyzers that can be applied to symbolic expression trees.
   /// </summary>
-  public interface ISymbolicExpressionTreeAnalyzer : ISolutionAnalyzer {
+  public interface ISymbolicExpressionTreeAnalyzer : IAnalyzer {
     ILookupParameter<SymbolicExpressionTree> SymbolicExpressionTreeParameter { get; }
   }
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreeMultiPopulationAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreeMultiPopulationAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreeMultiPopulationAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   /// Interface for analyzers that can be applied to multiple populations of symbolic expression trees.
   /// </summary>
-  public interface ISymbolicExpressionTreeMultiPopulationAnalyzer : IMultiPopulationAnalyzer {
+  public interface ISymbolicExpressionTreeMultiPopulationAnalyzer : IAnalyzer {
     ILookupParameter<ItemArray<ItemArray<SymbolicExpressionTree>>> SymbolicExpressionTreeParameter { get; }
   }
Index: /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreePopulationAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreePopulationAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Interfaces/ISymbolicExpressionTreePopulationAnalyzer.cs	(revision 3658)
@@ -34,5 +34,5 @@
   /// Interface for analyzers that can be applied to populations of symbolic expression trees.
   /// </summary>
-  public interface ISymbolicExpressionTreePopulationAnalyzer : IPopulationAnalyzer {
+  public interface ISymbolicExpressionTreePopulationAnalyzer : IAnalyzer {
     ILookupParameter<ItemArray<SymbolicExpressionTree>> SymbolicExpressionTreeParameter { get; }
   }
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.Designer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.3/ViewHost.Designer.cs	(revision 3658)
@@ -46,5 +46,4 @@
     private void InitializeComponent() {
       this.components = new System.ComponentModel.Container();
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ViewHost));
       this.viewPanel = new HeuristicLab.MainForm.WindowsForms.ViewHostPanel();
       this.messageLabel = new System.Windows.Forms.Label();
Index: /trunk/sources/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj	(revision 3657)
+++ /trunk/sources/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj	(revision 3658)
@@ -87,7 +87,4 @@
     <Compile Include="Algorithm.cs" />
     <Compile Include="BatchRun.cs" />
-    <Compile Include="Interfaces\IMultiPopulationAnalyzer.cs" />
-    <Compile Include="Interfaces\IPopulationAnalyzer.cs" />
-    <Compile Include="Interfaces\ISolutionAnalyzer.cs" />
     <Compile Include="RunCollectionConstraints\RunCollectionComparisonConstraint.cs" />
     <Compile Include="RunCollectionConstraints\RunCollectionConstraintCollection.cs" />
Index: unk/sources/HeuristicLab.Optimization/3.3/Interfaces/IMultiPopulationAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization/3.3/Interfaces/IMultiPopulationAnalyzer.cs	(revision 3657)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Optimization {
-  /// <summary>
-  /// An interface which represents an analysis operator for analyzing multi-populations.
-  /// </summary>
-  public interface IMultiPopulationAnalyzer : IAnalyzer { }
-}
Index: unk/sources/HeuristicLab.Optimization/3.3/Interfaces/IPopulationAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization/3.3/Interfaces/IPopulationAnalyzer.cs	(revision 3657)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Optimization {
-  /// <summary>
-  /// An interface which represents an analysis operator for analyzing populations.
-  /// </summary>
-  public interface IPopulationAnalyzer : IAnalyzer { }
-}
Index: unk/sources/HeuristicLab.Optimization/3.3/Interfaces/ISolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization/3.3/Interfaces/ISolutionAnalyzer.cs	(revision 3657)
+++ 	(revision )
@@ -1,29 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Optimization {
-  /// <summary>
-  /// An interface which represents an analysis operator for analyzing solutions.
-  /// </summary>
-  public interface ISolutionAnalyzer : IAnalyzer { }
-}
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj	(revision 3657)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj	(revision 3658)
@@ -179,5 +179,4 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="Documents\GA_TSP.hl" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
@@ -186,5 +185,4 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="Documents\ES_Griewank.hl" />
     <None Include="Documents\Images\New.png" />
     <None Include="Documents\Images\Open.png" />
@@ -193,8 +191,4 @@
     <None Include="Documents\Images\Restart.png" />
     <None Include="Documents\Images\Stop.png" />
-    <EmbeddedResource Include="Documents\IslandGA_TSP.hl" />
-    <EmbeddedResource Include="Documents\LS_OneMax.hl" />
-    <EmbeddedResource Include="Documents\SA_Rastrigin.hl" />
-    <EmbeddedResource Include="Documents\TS_TSP.hl" />
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.3/Analyzers/IAntTrailPopulationAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.3/Analyzers/IAntTrailPopulationAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.3/Analyzers/IAntTrailPopulationAnalyzer.cs	(revision 3658)
@@ -28,5 +28,5 @@
 
 namespace HeuristicLab.Problems.ArtificialAnt.Analyzers {
-  public interface IAntTrailPopulationAnalyzer : IPopulationAnalyzer {
+  public interface IAntTrailPopulationAnalyzer : IAnalyzer {
     ILookupParameter<ItemArray<DoubleValue>> QualityParameter { get; }
     ILookupParameter<ItemArray<SymbolicExpressionTree>> SymbolicExpressionTreeParameter { get; }
Index: /trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/ISymbolicRegressionSolutionPopulationAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/ISymbolicRegressionSolutionPopulationAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/ISymbolicRegressionSolutionPopulationAnalyzer.cs	(revision 3658)
@@ -37,5 +37,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Analyzers {
-  public interface ISymbolicRegressionSolutionPopulationAnalyzer : IPopulationAnalyzer {
+  public interface ISymbolicRegressionSolutionPopulationAnalyzer : IAnalyzer {
     ILookupParameter<ItemArray<SymbolicExpressionTree>> SymbolicExpressionTreeParameter { get; }
     ILookupParameter<ResultCollection> ResultsParameter { get; }
Index: /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/BestKnapsackSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("BestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")]
   [StorableClass]
-  class BestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, ISolutionAnalyzer {
+  class BestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<BinaryVector> BinaryVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/MultiPopulationBestKnapsackSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/MultiPopulationBestKnapsackSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/MultiPopulationBestKnapsackSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("MultiPopulationBestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")]
   [StorableClass]
-  class MultiPopulationBestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IMultiPopulationAnalyzer {
+  class MultiPopulationBestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<ItemArray<ItemArray<BinaryVector>>> BinaryVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/PopulationBestKnapsackSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/PopulationBestKnapsackSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/PopulationBestKnapsackSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("PopulationBestKnapsackSolutionAnalyzer", "An operator for analyzing the best solution for a knapsack problem.")]
   [StorableClass]
-  class PopulationBestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IPopulationAnalyzer {
+  class PopulationBestKnapsackSolutionAnalyzer : SingleSuccessorOperator, IBestKnapsackSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<ItemArray<BinaryVector>> BinaryVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/BestOneMaxSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/BestOneMaxSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/BestOneMaxSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("BestOneMaxSolutionAnalyzer", "An operator for analyzing the best solution for a OneMax problem.")]
   [StorableClass]
-  class BestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IBestOneMaxSolutionAnalyzer, ISolutionAnalyzer {
+  class BestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IBestOneMaxSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<BinaryVector> BinaryVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/MultiPopulationBestOneMaxSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/MultiPopulationBestOneMaxSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/MultiPopulationBestOneMaxSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("MultiPopulationBestOneMaxSolutionAnalyzer", "An operator for analyzing the best solution for a OneMax problem.")]
   [StorableClass]
-  class MultiPopulationBestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IBestOneMaxSolutionAnalyzer, IMultiPopulationAnalyzer {
+  class MultiPopulationBestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IBestOneMaxSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<ItemArray<ItemArray<BinaryVector>>> BinaryVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/PopulationBestOneMaxSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/PopulationBestOneMaxSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/PopulationBestOneMaxSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("PopulationBestOneMaxSolutionAnalyzer", "An operator for analyzing the best solution for a OneMax problem.")]
   [StorableClass]
-  class PopulationBestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IBestOneMaxSolutionAnalyzer, IPopulationAnalyzer {
+  class PopulationBestOneMaxSolutionAnalyzer : SingleSuccessorOperator, IBestOneMaxSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<ItemArray<BinaryVector>> BinaryVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("BestSingleObjectiveTestFunctionSolutionAnalyzer", "An operator for analyzing the best solution for a SingleObjectiveTestFunction problem.")]
   [StorableClass]
-  class BestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, ISolutionAnalyzer {
+  class BestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<RealVector> RealVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer", "An operator for analyzing the best solution for a SingleObjectiveTestFunction problem.")]
   [StorableClass]
-  class MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IMultiPopulationAnalyzer {
+  class MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<ItemArray<ItemArray<RealVector>>> RealVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer", "An operator for analyzing the best solution for a SingleObjectiveTestFunction problem.")]
   [StorableClass]
-  class PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IPopulationAnalyzer {
+  class PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer : SingleSuccessorOperator, IBestSingleObjectiveTestFunctionSolutionAnalyzer, IAnalyzer {
 
     public ILookupParameter<ItemArray<RealVector>> RealVectorParameter {
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/BestTSPSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/BestTSPSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/BestTSPSolutionAnalyzer.cs	(revision 3658)
@@ -36,5 +36,5 @@
   [Item("BestTSPSolutionAnalyzer", "An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.")]
   [StorableClass]
-  public sealed class BestTSPSolutionAnalyzer : SingleSuccessorOperator, IBestTSPSolutionAnalyzer, ISolutionAnalyzer {
+  public sealed class BestTSPSolutionAnalyzer : SingleSuccessorOperator, IBestTSPSolutionAnalyzer, IAnalyzer {
     public ILookupParameter<DoubleMatrix> CoordinatesParameter {
       get { return (ILookupParameter<DoubleMatrix>)Parameters["Coordinates"]; }
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/MultiPopulationBestTSPSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/MultiPopulationBestTSPSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/MultiPopulationBestTSPSolutionAnalyzer.cs	(revision 3658)
@@ -38,5 +38,5 @@
   [Item("MultiPopulationBestTSPSolutionAnalyzer", "An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.")]
   [StorableClass]
-  public sealed class MultiPopulationBestTSPSolutionAnalyzer : SingleSuccessorOperator, IBestTSPSolutionAnalyzer, IMultiPopulationAnalyzer {
+  public sealed class MultiPopulationBestTSPSolutionAnalyzer : SingleSuccessorOperator, IBestTSPSolutionAnalyzer, IAnalyzer {
     public ILookupParameter<DoubleMatrix> CoordinatesParameter {
       get { return (ILookupParameter<DoubleMatrix>)Parameters["Coordinates"]; }
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/PopulationBestTSPSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/PopulationBestTSPSolutionAnalyzer.cs	(revision 3657)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/PopulationBestTSPSolutionAnalyzer.cs	(revision 3658)
@@ -36,5 +36,5 @@
   [Item("PopulationBestTSPSolutionAnalyzer", "An operator for analyzing the best solution of Traveling Salesman Problems given in path representation using city coordinates.")]
   [StorableClass]
-  public sealed class PopulationBestTSPSolutionAnalyzer : SingleSuccessorOperator, IBestTSPSolutionAnalyzer, IPopulationAnalyzer {
+  public sealed class PopulationBestTSPSolutionAnalyzer : SingleSuccessorOperator, IBestTSPSolutionAnalyzer, IAnalyzer {
     public ILookupParameter<DoubleMatrix> CoordinatesParameter {
       get { return (ILookupParameter<DoubleMatrix>)Parameters["Coordinates"]; }
