Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/MultiObjectiveSymbolicVectorRegressionEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/MultiObjectiveSymbolicVectorRegressionEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/MultiObjectiveSymbolicVectorRegressionEvaluator.cs	(revision 5275)
@@ -32,4 +32,5 @@
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
 using HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Interfaces;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Evaluators {
@@ -42,5 +43,9 @@
     }
     #endregion
-    public MultiObjectiveSymbolicVectorRegressionEvaluator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    protected MultiObjectiveSymbolicVectorRegressionEvaluator(bool deserializing) : base(deserializing) { }
+    protected MultiObjectiveSymbolicVectorRegressionEvaluator(MultiObjectiveSymbolicVectorRegressionEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public MultiObjectiveSymbolicVectorRegressionEvaluator()
       : base() {
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/PartialDerivativeEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/PartialDerivativeEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/PartialDerivativeEvaluator.cs	(revision 5275)
@@ -39,9 +39,15 @@
   public class PartialDerivativeEvaluator : SingleObjectiveSymbolicVectorRegressionEvaluator {
 
-    public PartialDerivativeEvaluator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    protected PartialDerivativeEvaluator(bool deserializing) : base(deserializing) { }
+    protected PartialDerivativeEvaluator(PartialDerivativeEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public PartialDerivativeEvaluator()
       : base() {
     }
-
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PartialDerivativeEvaluator(this, cloner);
+    }
     public override double Evaluate(SymbolicExpressionTree tree, ISymbolicExpressionTreeInterpreter interpreter, MultiVariateDataAnalysisProblemData problemData, IEnumerable<string> targetVariables, IEnumerable<int> rows, DoubleArray lowerEstimationBound, DoubleArray upperEstimationBound) {
 
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SingleObjectiveSymbolicVectorRegressionEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SingleObjectiveSymbolicVectorRegressionEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SingleObjectiveSymbolicVectorRegressionEvaluator.cs	(revision 5275)
@@ -32,4 +32,5 @@
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
 using HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Interfaces;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Evaluators {
@@ -42,10 +43,13 @@
     }
     #endregion
-    public SingleObjectiveSymbolicVectorRegressionEvaluator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    protected SingleObjectiveSymbolicVectorRegressionEvaluator(bool deserializing) : base(deserializing) { }
+    protected SingleObjectiveSymbolicVectorRegressionEvaluator(SingleObjectiveSymbolicVectorRegressionEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public SingleObjectiveSymbolicVectorRegressionEvaluator()
       : base() {
       Parameters.Add(new LookupParameter<DoubleValue>(QualityParameterName, "The quality of the symbolic vector regression solution."));
     }
-
 
     public override IOperation Apply() {
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicRegressionNormalizedMeanSquaredErrorEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicRegressionNormalizedMeanSquaredErrorEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicRegressionNormalizedMeanSquaredErrorEvaluator.cs	(revision 5275)
@@ -29,4 +29,5 @@
 using HeuristicLab.Problems.DataAnalysis.Evaluators;
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic {
@@ -34,8 +35,15 @@
   [StorableClass]
   public class SymbolicRegressionNormalizedMeanSquaredErrorEvaluator : SingleObjectiveSymbolicRegressionEvaluator {
+    [StorableConstructor]
+    protected SymbolicRegressionNormalizedMeanSquaredErrorEvaluator(bool deserializing) : base(deserializing) { }
+    protected SymbolicRegressionNormalizedMeanSquaredErrorEvaluator(SymbolicRegressionNormalizedMeanSquaredErrorEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public SymbolicRegressionNormalizedMeanSquaredErrorEvaluator()
       : base() {
     }
-
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicRegressionNormalizedMeanSquaredErrorEvaluator(this, cloner);
+    }
     public override double Evaluate(ISymbolicExpressionTreeInterpreter interpreter, SymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, Dataset dataset, string targetVariable, IEnumerable<int> rows) {
       double nmse = Calculate(interpreter, solution, lowerEstimationLimit, upperEstimationLimit, dataset, targetVariable, rows);
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionEvaluator.cs	(revision 5275)
@@ -31,4 +31,5 @@
 using HeuristicLab.Problems.DataAnalysis.Regression;
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Evaluators {
@@ -105,5 +106,9 @@
     #endregion
 
-    public SymbolicVectorRegressionEvaluator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    protected SymbolicVectorRegressionEvaluator(bool deserializing) : base(deserializing) { }
+    protected SymbolicVectorRegressionEvaluator(SymbolicVectorRegressionEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public SymbolicVectorRegressionEvaluator()
       : base() {
@@ -118,5 +123,4 @@
       Parameters.Add(new ValueParameter<PercentValue>(RelativeNumberOfEvaluatedSamplesParameterName, "The relative number of samples of the dataset partition, which should be randomly chosen for evaluation between the start and end index.", new PercentValue(1)));
     }
-
     public static IEnumerable<int> GenerateRowsToEvaluate(int seed, double relativeAmount, int start, int end) {
       if (end < start) throw new ArgumentException("Start value is larger than end value.");
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionNormalizedMseEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionNormalizedMseEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionNormalizedMseEvaluator.cs	(revision 5275)
@@ -30,4 +30,5 @@
 using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Evaluators {
@@ -37,7 +38,14 @@
 
 
-    public SymbolicVectorRegressionNormalizedMseEvaluator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    protected SymbolicVectorRegressionNormalizedMseEvaluator(bool deserializing) : base(deserializing) { }
+    protected SymbolicVectorRegressionNormalizedMseEvaluator(SymbolicVectorRegressionNormalizedMseEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public SymbolicVectorRegressionNormalizedMseEvaluator()
       : base() {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicVectorRegressionNormalizedMseEvaluator(this, cloner);
     }
 
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionScaledMseEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionScaledMseEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionScaledMseEvaluator.cs	(revision 5275)
@@ -30,4 +30,5 @@
 using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Evaluators {
@@ -48,4 +49,9 @@
     #endregion
 
+    [StorableConstructor]
+    protected SymbolicVectorRegressionScaledMseEvaluator(bool deserializing) : base(deserializing) { }
+    protected SymbolicVectorRegressionScaledMseEvaluator(SymbolicVectorRegressionScaledMseEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public SymbolicVectorRegressionScaledMseEvaluator()
       : base() {
@@ -53,5 +59,7 @@
       Parameters.Add(new LookupParameter<DoubleArray>(BetaParameterName, "The beta parameter for linear scaling."));
     }
-
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicVectorRegressionScaledMseEvaluator(this, cloner);
+    }
     public override double[] Evaluate(SymbolicExpressionTree tree, ISymbolicExpressionTreeInterpreter interpreter, MultiVariateDataAnalysisProblemData problemData, IEnumerable<string> targetVariables, IEnumerable<int> rows, DoubleArray lowerEstimationBound, DoubleArray upperEstimationBound) {
       List<string> targetVariablesList = targetVariables.ToList();
Index: branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionScaledNormalizedMseEvaluator.cs
===================================================================
--- branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionScaledNormalizedMseEvaluator.cs	(revision 4401)
+++ branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression/3.3/Symbolic/Evaluators/SymbolicVectorRegressionScaledNormalizedMseEvaluator.cs	(revision 5275)
@@ -30,4 +30,5 @@
 using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
 using HeuristicLab.Problems.DataAnalysis.Symbolic;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.DataAnalysis.MultiVariate.Regression.Symbolic.Evaluators {
@@ -48,4 +49,9 @@
     #endregion
 
+    [StorableConstructor]
+    protected SymbolicVectorRegressionScaledNormalizedMseEvaluator(bool deserializing) : base(deserializing) { }
+    protected SymbolicVectorRegressionScaledNormalizedMseEvaluator(SymbolicVectorRegressionScaledNormalizedMseEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
     public SymbolicVectorRegressionScaledNormalizedMseEvaluator()
       : base() {
@@ -53,5 +59,7 @@
       Parameters.Add(new LookupParameter<DoubleArray>(BetaParameterName, "The beta parameter for linear scaling."));
     }
-
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicVectorRegressionScaledNormalizedMseEvaluator(this, cloner);
+    }
     public override double Evaluate(SymbolicExpressionTree tree, ISymbolicExpressionTreeInterpreter interpreter, MultiVariateDataAnalysisProblemData problemData, IEnumerable<string> targetVariables, IEnumerable<int> rows, DoubleArray lowerEstimationBound, DoubleArray upperEstimationBound) {
       List<string> targetVariablesList = targetVariables.ToList();
