Index: /branches/3140_NumberSymbol/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs	(revision 18117)
@@ -52,6 +52,6 @@
     }
 
-    public ILookupParameter<IntValue> MaximumSymbolicExpressionTreeLengthParameter {
-      get { return (ILookupParameter<IntValue>)Parameters[MaximumSymbolicExpressionTreeLengthParameterName]; }
+    public IValueLookupParameter<IntValue> MaximumSymbolicExpressionTreeLengthParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters[MaximumSymbolicExpressionTreeLengthParameterName]; }
     }
     public ValueLookupParameter<DataTable> SymbolicExpressionTreeLengthsParameter {
@@ -102,5 +102,5 @@
       : base() {
       Parameters.Add(new ScopeTreeLookupParameter<ISymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression tree whose length should be calculated."));
-      Parameters.Add(new LookupParameter<IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, "The maximum allowed symbolic expression tree length"));
+      Parameters.Add(new ValueLookupParameter<IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, "The maximum allowed symbolic expression tree length"));
       Parameters.Add(new ValueLookupParameter<DataTable>(SymbolicExpressionTreeLengthsParameterName, "The data table to store the symbolic expression tree lengths."));
       Parameters.Add(new ValueLookupParameter<DataTableHistory>(SymbolicExpressionTreeLengthsHistoryParameterName, "The data table to store the symbolic expression tree lengths history."));
@@ -118,13 +118,19 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
+      // reset MaximumSymbolicExpressionTreeLengthParameterName to ValueLookupParameter
+      if (Parameters.TryGetValue(MaximumSymbolicExpressionTreeLengthParameterName, out IParameter treeLengthParam) && !(treeLengthParam is ValueLookupParameter<IntValue>))
+        Parameters.Remove(MaximumSymbolicExpressionTreeLengthParameterName);
+      if(!Parameters.ContainsKey(MaximumSymbolicExpressionTreeLengthParameterName))
+        Parameters.Add(new ValueLookupParameter<IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, "The maximum allowed symbolic expression tree length"));
+
       // check if all the parameters are present and accounted for 
-      if (!Parameters.ContainsKey(StoreHistoryParameterName)) {
+      if (!Parameters.ContainsKey(StoreHistoryParameterName))
         Parameters.Add(new ValueParameter<BoolValue>(StoreHistoryParameterName, "True if the tree lengths history of the population should be stored.", new BoolValue(false)));
-      }
-      if (!Parameters.ContainsKey(UpdateIntervalParameterName)) {
+      
+      if (!Parameters.ContainsKey(UpdateIntervalParameterName))
         Parameters.Add(new ValueParameter<IntValue>(UpdateIntervalParameterName, "The interval in which the tree length analysis should be applied.", new IntValue(1)));
-      }
+
       //necessary code to correct UpdateCounterParameter - type was changed from LookupParameter to ValueParameter
-      if (Parameters.ContainsKey(UpdateCounterParameterName) && (Parameters[UpdateCounterParameterName] is LookupParameter<IntValue>))
+      if (Parameters.TryGetValue(UpdateCounterParameterName, out IParameter updateCounterParam) && updateCounterParam is LookupParameter<IntValue>)
         Parameters.Remove(UpdateCounterParameterName);
       if (!Parameters.ContainsKey(UpdateCounterParameterName)) {
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/ShapeConstrainedRegressionSingleObjectiveProblem.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/ShapeConstrainedRegressionSingleObjectiveProblem.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/ShapeConstrainedRegressionSingleObjectiveProblem.cs	(revision 18117)
@@ -28,5 +28,5 @@
   [StorableType("B35ADCA7-E902-4BEE-9DDE-DF8BBC1E27FE")]
   [Creatable(CreatableAttribute.Categories.GeneticProgrammingProblems, Priority = 150)]
-  public class ShapeConstrainedRegressionSingleObjectiveProblem : SymbolicRegressionSingleObjectiveProblem {
+  public class ShapeConstrainedRegressionSingleObjectiveProblem : SymbolicRegressionSingleObjectiveProblem, IShapeConstrainedRegressionProblem {
     [StorableConstructor]
     protected ShapeConstrainedRegressionSingleObjectiveProblem(StorableConstructorFlag _) : base(_) { }
@@ -34,4 +34,8 @@
     public override IDeepCloneable Clone(Cloner cloner) { return new ShapeConstrainedRegressionSingleObjectiveProblem(this, cloner); }
 
+    public ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData {
+      get => (ShapeConstrainedRegressionProblemData)ProblemData;
+      set => ProblemData = value;
+    }
     public ShapeConstrainedRegressionSingleObjectiveProblem()
       : base(new ShapeConstrainedRegressionProblemData(), new NMSESingleObjectiveConstraintsEvaluator(), new SymbolicDataAnalysisExpressionTreeCreator()) {
@@ -51,9 +55,12 @@
 
     public override void Load(IRegressionProblemData data) {
-      var scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
-                                                                    data.TrainingPartition, data.TestPartition) {
-        Name = data.Name,
-        Description = data.Description
-      };
+      if (data is ShapeConstrainedRegressionProblemData scProblemData) {
+      } else {
+        scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
+                                                                  data.TrainingPartition, data.TestPartition) {
+          Name = data.Name,
+          Description = data.Description
+        };
+      }
 
       base.Load(scProblemData);
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs	(revision 18117)
@@ -92,5 +92,5 @@
 
     #region Import & Export
-    public void Load(T data) {
+    public virtual void Load(T data) {
       Name = data.Name;
       Description = data.Description;
@@ -98,5 +98,5 @@
     }
 
-    public T Export() {
+    public virtual T Export() {
       return ProblemData;
     }
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs	(revision 18117)
@@ -24,8 +24,8 @@
 using HeuristicLab.Core;
 
-namespace HeuristicLab.Problems.DataAnalysis{
+namespace HeuristicLab.Problems.DataAnalysis {
   [StorableType("B53C4C71-3715-4BB1-9A95-4E969D8135C6")]
   [Item("Shape-constrained Regression Problem", "A regression problem with shape constraints.")]
-  public class ShapeConstrainedRegressionProblem : DataAnalysisProblem<IShapeConstrainedRegressionProblemData>, IShapeConstrainedRegressionProblem {
+  public class ShapeConstrainedRegressionProblem : DataAnalysisProblem<IRegressionProblemData>, IShapeConstrainedRegressionProblem {
     [StorableConstructor]
     protected ShapeConstrainedRegressionProblem(StorableConstructorFlag _) : base(_) { }
@@ -33,5 +33,23 @@
     public override IDeepCloneable Clone(Cloner cloner) { return new ShapeConstrainedRegressionProblem(this, cloner); }
 
+    public ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData {
+      get => (ShapeConstrainedRegressionProblemData)ProblemData;
+      set => ProblemData = value;
+    }
     public ShapeConstrainedRegressionProblem() : base(new ShapeConstrainedRegressionProblemData()) { }
+
+
+    public override void Load(IRegressionProblemData data) {
+      if (data is ShapeConstrainedRegressionProblemData scProblemData) {
+        // use directly
+      } else {
+        scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
+                                                                      data.TrainingPartition, data.TestPartition) {
+          Name = data.Name,
+          Description = data.Description
+        };
+      }
+      base.Load(scProblemData);
+    }
   }
 }
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs	(revision 18117)
@@ -145,5 +145,5 @@
       : this(regressionProblemData.Dataset, regressionProblemData.AllowedInputVariables, regressionProblemData.TargetVariable,
           regressionProblemData.TrainingPartition, regressionProblemData.TestPartition, regressionProblemData.Transformations,
-          (regressionProblemData is ShapeConstrainedRegressionProblemData) ? ((ShapeConstrainedRegressionProblemData)regressionProblemData).ShapeConstraints : null, 
+          (regressionProblemData is ShapeConstrainedRegressionProblemData) ? ((ShapeConstrainedRegressionProblemData)regressionProblemData).ShapeConstraints : null,
           regressionProblemData.VariableRanges) {
     }
@@ -159,5 +159,8 @@
       if (sc == null) sc = new ShapeConstraints();
       Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, "Specifies the shape constraints for the regression problem.", (ShapeConstraints)sc.Clone()));
-
+      if (variableRanges != null) {
+        foreach (var entry in variableRanges.GetVariableIntervals())
+          VariableRanges.SetInterval(entry.Item1, entry.Item2);
+      }
       RegisterEventHandlers();
     }
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs	(revision 18117)
@@ -24,5 +24,6 @@
 namespace HeuristicLab.Problems.DataAnalysis {
   [StorableType("C6E9D32A-7727-487E-859C-DF24EDCC5922")]
-  public interface  IShapeConstrainedRegressionProblem : IDataAnalysisProblem<IShapeConstrainedRegressionProblemData> {
+  public interface IShapeConstrainedRegressionProblem : IRegressionProblem {
+    ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData { get; set; }
   }
 }
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs	(revision 18117)
@@ -74,7 +74,4 @@
       if (targetNoise != null) data.Add(targetNoise);
 
-      //var targetNoise = GetNoisyTarget(r, rand);
-      //if (targetNoise != null) data.Add(targetNoise);
-
       return data;
     }
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanLargeInstanceProvider.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanLargeInstanceProvider.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanLargeInstanceProvider.cs	(revision 18117)
@@ -35,5 +35,5 @@
 
 
-      var noiseRatio = new double?[] { null, 0.1, 0.3, 1 };
+      var noiseRatio = new double?[] { null, 0.1, 0.25, 0.50, 0.75 };
 
       #region types
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanSmallInstanceProvider.cs
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanSmallInstanceProvider.cs	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanSmallInstanceProvider.cs	(revision 18117)
@@ -35,5 +35,5 @@
 
 
-      var noiseRatio = new double?[] { null, 0.1, 0.3, 1 };
+      var noiseRatio = new double?[] { null, 0.1, 0.25, 0.50, 0.75 };
 
       #region types
Index: /branches/3140_NumberSymbol/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj
===================================================================
--- /branches/3140_NumberSymbol/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj	(revision 18116)
+++ /branches/3140_NumberSymbol/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj	(revision 18117)
@@ -225,5 +225,4 @@
 
 call PreBuildEvent.cmd
-SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\Plugin.cs.frame" "%25ProjectDir%25\Plugin.cs"
 </PreBuildEvent>
     <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
