Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/ICheckedValueConfigurationCollection.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/ICheckedValueConfigurationCollection.cs	(revision 4981)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/ICheckedValueConfigurationCollection.cs	(revision 4981)
@@ -0,0 +1,11 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  public interface ICheckedValueConfigurationCollection : ICheckedItemCollection<IValueConfiguration> {
+    Type ValueDataType { get; }
+  }
+}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IOptimizable.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IOptimizable.cs	(revision 4981)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IOptimizable.cs	(revision 4981)
@@ -0,0 +1,14 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  public interface IOptimizable : IItem {
+    bool Optimize { get; set; }
+    ConstrainedValue ConstrainedValue { get; set; }
+    event EventHandler OptimizeChanged;
+  }
+}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs	(revision 4839)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs	(revision 4981)
@@ -2,16 +2,14 @@
 using HeuristicLab.Core;
 using System.Collections.Generic;
+using HeuristicLab.Data;
+using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.MetaOptimization {
-  public interface IParameterConfiguration : INamedItem {
-    bool OptimizationEnabled { get; set; }
+  public interface IParameterConfiguration : IOptimizable, INamedItem {
     string ParameterName { get; set; }
     Type ParameterDataType { get; }
-    ICheckedItemList<IValueConfiguration> ValueConfigurations { get; }
+    ICheckedValueConfigurationCollection ValueConfigurations { get; }
     IValueConfiguration ActualValueConfiguration { get; set; }
-    Type ValueDataType { get; }
     IEnumerable<IItem> ValidValues { get; }
-
-    event EventHandler OptimizationEnabledChanged;
   }
 }
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IRange.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IRange.cs	(revision 4839)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IRange.cs	(revision 4981)
@@ -5,8 +5,8 @@
 
 namespace HeuristicLab.Problems.MetaOptimization {
-  public interface IRange<T> : IItem where T : class, IItem, IStringConvertibleValue, IDeepCloneable {
-    T LowerBound { get; set; }
-    T UpperBound { get; set; }
-    T StepSize { get; set; }
+  public interface IRange : IItem, IStringConvertibleValue {
+    object LowerBound { get; set; }
+    object UpperBound { get; set; }
+    object StepSize { get; set; }
 
     event EventHandler LowerBoundChanged;
@@ -14,3 +14,9 @@
     event EventHandler StepSizeChanged;
   }
+
+  public interface IRange<T> : IRange, IItem where T : class {
+    new T LowerBound { get; set; }
+    new T UpperBound { get; set; }
+    new T StepSize { get; set; }
+  }
 }
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IValueConfiguration.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IValueConfiguration.cs	(revision 4839)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IValueConfiguration.cs	(revision 4981)
@@ -1,11 +1,10 @@
 ﻿using System;
 using HeuristicLab.Core;
+using HeuristicLab.Data;
 
 namespace HeuristicLab.Problems.MetaOptimization {
-  public interface IValueConfiguration : IItem {
-    IItem Value { get; set; }
-    Type ValueDataType { get; }
-    IItemList<IParameterConfiguration> ParameterConfigurations { get; }
-
+  public interface IValueConfiguration : IOptimizable, IItem {
+    IItemCollection<IParameterConfiguration> ParameterConfigurations { get; }
+    IRange RangeConstraint { get; }
     event EventHandler ValueChanged;
   }
