Index: branches/ProblemRefactoring/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs
===================================================================
--- branches/ProblemRefactoring/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 13331)
+++ branches/ProblemRefactoring/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/BestSingleObjectiveTestFunctionSolutionAnalyzer.cs	(revision 13403)
@@ -44,15 +44,9 @@
       get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
     }
-    public ScopeTreeLookupParameter<RealVector> RealVectorParameter {
-      get { return (ScopeTreeLookupParameter<RealVector>)Parameters["RealVector"]; }
+    public IScopeTreeLookupParameter<RealVector> RealVectorsParameter {
+      get { return (IScopeTreeLookupParameter<RealVector>)Parameters["RealVectors"]; }
     }
-    ILookupParameter IBestSingleObjectiveTestFunctionSolutionAnalyzer.RealVectorParameter {
-      get { return RealVectorParameter; }
-    }
-    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
-    }
-    ILookupParameter IBestSingleObjectiveTestFunctionSolutionAnalyzer.QualityParameter {
-      get { return QualityParameter; }
+    public IScopeTreeLookupParameter<DoubleValue> QualityParameter {
+      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
     }
     public ILookupParameter<SingleObjectiveTestFunctionSolution> BestSolutionParameter {
@@ -68,9 +62,9 @@
       get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
     }
-    public IValueLookupParameter<ISingleObjectiveTestFunctionProblemEvaluator> EvaluatorParameter {
-      get { return (IValueLookupParameter<ISingleObjectiveTestFunctionProblemEvaluator>)Parameters["Evaluator"]; }
+    public IValueLookupParameter<ISingleObjectiveTestFunction> TestFunctionParameter {
+      get { return (IValueLookupParameter<ISingleObjectiveTestFunction>)Parameters["TestFunction"]; }
     }
-    public ILookupParameter<DoubleMatrix> BoundsParameter {
-      get { return (ILookupParameter<DoubleMatrix>)Parameters["Bounds"]; }
+    public IValueLookupParameter<DoubleMatrix> BoundsParameter {
+      get { return (IValueLookupParameter<DoubleMatrix>)Parameters["Bounds"]; }
     }
 
@@ -81,5 +75,5 @@
       : base() {
       Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem."));
-      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("RealVector", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
+      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("RealVectors", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the SingleObjectiveTestFunction solutions which should be visualized."));
       Parameters.Add(new LookupParameter<SingleObjectiveTestFunctionSolution>("BestSolution", "The best SingleObjectiveTestFunction solution."));
@@ -87,9 +81,9 @@
       Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution."));
       Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the SingleObjectiveTestFunction solution should be stored."));
-      Parameters.Add(new ValueLookupParameter<ISingleObjectiveTestFunctionProblemEvaluator>("Evaluator", "The evaluator with which the solution is evaluated."));
-      Parameters.Add(new LookupParameter<DoubleMatrix>("Bounds", "The bounds of the function."));
+      Parameters.Add(new ValueLookupParameter<ISingleObjectiveTestFunction>("TestFunction", "The evaluator with which the solution is evaluated."));
+      Parameters.Add(new ValueLookupParameter<DoubleMatrix>("Bounds", "The bounds of the function."));
 
       MaximizationParameter.Hidden = true;
-      RealVectorParameter.Hidden = true;
+      RealVectorsParameter.Hidden = true;
       QualityParameter.Hidden = true;
       BestSolutionParameter.Hidden = true;
@@ -97,17 +91,6 @@
       BestKnownQualityParameter.Hidden = true;
       ResultsParameter.Hidden = true;
-      EvaluatorParameter.Hidden = true;
+      TestFunctionParameter.Hidden = true;
       BoundsParameter.Hidden = true;
-    }
-
-    /// <summary>
-    /// This method can simply be removed when the plugin version is > 3.3
-    /// </summary>
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserialization() {
-      // BackwardsCompatibility3.3
-      // Bounds are introduced in 3.3.0.3894
-      if (!Parameters.ContainsKey("Bounds"))
-        Parameters.Add(new LookupParameter<DoubleMatrix>("Bounds", "The bounds of the function."));
     }
 
@@ -117,5 +100,5 @@
 
     public override IOperation Apply() {
-      ItemArray<RealVector> realVectors = RealVectorParameter.ActualValue;
+      ItemArray<RealVector> realVectors = RealVectorsParameter.ActualValue;
       ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
       bool max = MaximizationParameter.ActualValue.Value;
@@ -140,5 +123,5 @@
         solution = new SingleObjectiveTestFunctionSolution((RealVector)realVectors[i].Clone(),
                                                            (DoubleValue)qualities[i].Clone(),
-                                                           EvaluatorParameter.ActualValue);
+                                                           TestFunctionParameter.ActualValue);
         solution.Population = realVectors[i].Length == 2
           ? new ItemArray<RealVector>(realVectors.Select(x => x.Clone()).Cast<RealVector>())
