Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/Improvers/SingleObjectiveTestFunctionImprovementOperator.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/Improvers/SingleObjectiveTestFunctionImprovementOperator.cs	(revision 7793)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/Improvers/SingleObjectiveTestFunctionImprovementOperator.cs	(revision 7954)
@@ -45,4 +45,7 @@
       get { return (IValueParameter<DoubleValue>)Parameters["Beta"]; }
     }
+    public IValueLookupParameter<DoubleMatrix> BoundsParameter {
+      get { return (IValueLookupParameter<DoubleMatrix>)Parameters["Bounds"]; }
+    }
     public ScopeParameter CurrentScopeParameter {
       get { return (ScopeParameter)Parameters["CurrentScope"]; }
@@ -74,4 +77,7 @@
     private DoubleValue Beta {
       get { return BetaParameter.Value; }
+    }
+    private DoubleMatrix Bounds {
+      get { return BoundsParameter.ActualValue; }
     }
     public IScope CurrentScope {
@@ -109,4 +115,5 @@
       Parameters.Add(new ValueParameter<DoubleValue>("Alpha", new DoubleValue(1.0)));
       Parameters.Add(new ValueParameter<DoubleValue>("Beta", new DoubleValue(2.0)));
+      Parameters.Add(new ValueLookupParameter<DoubleMatrix>("Bounds"));
       Parameters.Add(new ScopeParameter("CurrentScope"));
       Parameters.Add(new ValueParameter<DoubleValue>("Delta", new DoubleValue(0.5)));
@@ -136,7 +143,7 @@
       for (int i = 0; i < simplex.Length; i++) {
         simplex[i] = bestSol.Clone() as RealVector;
-        simplex[i][i] += 0.1 * (Evaluator.Bounds[0, 1] - Evaluator.Bounds[0, 0]);
-        if (simplex[i][i] > Evaluator.Bounds[0, 1]) simplex[i][i] = Evaluator.Bounds[0, 1];
-        if (simplex[i][i] < Evaluator.Bounds[0, 0]) simplex[i][i] = Evaluator.Bounds[0, 0];
+        simplex[i][i] += 0.1 * (Bounds[0, 1] - Bounds[0, 0]);
+        if (simplex[i][i] > Bounds[0, 1]) simplex[i][i] = Bounds[0, 1];
+        if (simplex[i][i] < Bounds[0, 0]) simplex[i][i] = Bounds[0, 0];
       }
 
@@ -195,6 +202,6 @@
 
       for (int i = 0; i < simplex[0].Length; i++) {
-        if (simplex[0][i] > Evaluator.Bounds[0, 1]) simplex[0][i] = Evaluator.Bounds[0, 1];
-        if (simplex[0][i] < Evaluator.Bounds[0, 0]) simplex[0][i] = Evaluator.Bounds[0, 0];
+        if (simplex[0][i] > Bounds[0, 1]) simplex[0][i] = Bounds[0, 1];
+        if (simplex[0][i] < Bounds[0, 0]) simplex[0][i] = Bounds[0, 0];
       }
 
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/SimilarityCalculators/SingleObjectiveTestFunctionSimilarityCalculator.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/SimilarityCalculators/SingleObjectiveTestFunctionSimilarityCalculator.cs	(revision 7793)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/SimilarityCalculators/SingleObjectiveTestFunctionSimilarityCalculator.cs	(revision 7954)
@@ -26,5 +26,4 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -36,15 +35,6 @@
   [StorableClass]
   public sealed class SingleObjectiveTestFunctionSimilarityCalculator : SimilarityCalculator {
-    #region Parameter properties
-    public ILookupParameter<DoubleMatrix> BoundsParameter {
-      get { return (ILookupParameter<DoubleMatrix>)Parameters["Bounds"]; }
-    }
-    #endregion
-
     #region Properties
-    private DoubleMatrix Bounds {
-      get { return BoundsParameter.ActualValue; }
-      set { BoundsParameter.ActualValue = value; }
-    }
+    public DoubleMatrix Bounds { get; set; }
     #endregion
 
@@ -52,10 +42,5 @@
     private SingleObjectiveTestFunctionSimilarityCalculator(bool deserializing) : base(deserializing) { }
     private SingleObjectiveTestFunctionSimilarityCalculator(SingleObjectiveTestFunctionSimilarityCalculator original, Cloner cloner) : base(original, cloner) { }
-    public SingleObjectiveTestFunctionSimilarityCalculator()
-      : base() {
-      #region Create parameters
-      Parameters.Add(new LookupParameter<DoubleMatrix>("Bounds"));
-      #endregion
-    }
+    public SingleObjectiveTestFunctionSimilarityCalculator() : base() { }
 
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs
===================================================================
--- branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 7793)
+++ branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 7954)
@@ -376,7 +376,8 @@
         op.ParentsParameter.Hidden = true;
       }
-      foreach (ISimilarityCalculator op in Operators.OfType<ISimilarityCalculator>()) {
+      foreach (SingleObjectiveTestFunctionSimilarityCalculator op in Operators.OfType<ISimilarityCalculator>()) {
         op.TargetParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
         op.TargetParameter.Hidden = true;
+        op.Bounds = Bounds;
       }
     }
