Index: trunk/sources/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj	(revision 2834)
+++ trunk/sources/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj	(revision 2882)
@@ -119,4 +119,8 @@
       <Name>HeuristicLab.Operators-3.3</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
+      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
+      <Name>HeuristicLab.Optimization-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
Index: trunk/sources/HeuristicLab.Selection/3.3/HeuristicLabSelectionPlugin.cs.frame
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/HeuristicLabSelectionPlugin.cs.frame	(revision 2834)
+++ trunk/sources/HeuristicLab.Selection/3.3/HeuristicLabSelectionPlugin.cs.frame	(revision 2882)
@@ -32,4 +32,5 @@
   [PluginDependency("HeuristicLab.Data", "3.3")]
   [PluginDependency("HeuristicLab.Operators", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
   [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
Index: trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs	(revision 2834)
+++ trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs	(revision 2882)
@@ -23,4 +23,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -32,5 +33,5 @@
   [Item("Reducer", "A base class for reduction operators.")]
   [EmptyStorableClass]
-  public abstract class Reducer : SingleSuccessorOperator {
+  public abstract class Reducer : SingleSuccessorOperator, IReducer {
     protected ScopeParameter CurrentScopeParameter {
       get { return (ScopeParameter)Parameters["CurrentScope"]; }
Index: trunk/sources/HeuristicLab.Selection/3.3/Selector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/Selector.cs	(revision 2834)
+++ trunk/sources/HeuristicLab.Selection/3.3/Selector.cs	(revision 2882)
@@ -24,4 +24,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -33,9 +34,9 @@
   [Item("Selector", "A base class for selection operators.")]
   [EmptyStorableClass]
-  public abstract class Selector : SingleSuccessorOperator {
+  public abstract class Selector : SingleSuccessorOperator, ISelector {
     protected ValueParameter<BoolData> CopySelectedParameter {
       get { return (ValueParameter<BoolData>)Parameters["CopySelected"]; }
     }
-    public ValueLookupParameter<IntData> NumberOfSelectedSubScopesParameter {
+    public IValueLookupParameter<IntData> NumberOfSelectedSubScopesParameter {
       get { return (ValueLookupParameter<IntData>)Parameters["NumberOfSelectedSubScopes"]; }
     }
Index: trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 2834)
+++ trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 2882)
@@ -21,4 +21,5 @@
 
 using HeuristicLab.Core;
+using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -30,6 +31,6 @@
   [Item("StochasticSelector", "A base class for stochastic selection operators.")]
   [EmptyStorableClass]
-  public abstract class StochasticSelector : Selector {
-    public LookupParameter<IRandom> RandomParameter {
+  public abstract class StochasticSelector : Selector, IStochasticOperator {
+    public ILookupParameter<IRandom> RandomParameter {
       get { return (LookupParameter<IRandom>)Parameters["Random"]; }
     }
Index: trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 2834)
+++ trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 2882)
@@ -22,4 +22,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
+using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -31,15 +32,15 @@
   [Item("StochasticSingleObjectiveSelector", "A base class for stochastic selection operators which consider a single double quality value for selection.")]
   [EmptyStorableClass]
-  public abstract class StochasticSingleObjectiveSelector : StochasticSelector {
-    public LookupParameter<BoolData> MaximizationParameter {
-      get { return (LookupParameter<BoolData>)Parameters["Maximization"]; }
+  public abstract class StochasticSingleObjectiveSelector : StochasticSelector, ISingleObjectiveSelector {
+    public IValueLookupParameter<BoolData> MaximizationParameter {
+      get { return (IValueLookupParameter<BoolData>)Parameters["Maximization"]; }
     }
-    public SubScopesLookupParameter<DoubleData> QualityParameter {
-      get { return (SubScopesLookupParameter<DoubleData>)Parameters["Quality"]; }
+    public ILookupParameter<ItemArray<DoubleData>> QualityParameter {
+      get { return (ILookupParameter<ItemArray<DoubleData>>)Parameters["Quality"]; }
     }
 
     protected StochasticSingleObjectiveSelector()
       : base() {
-      Parameters.Add(new LookupParameter<BoolData>("Maximization", "True if the current problem is a maximization problem, otherwise false."));
+      Parameters.Add(new ValueLookupParameter<BoolData>("Maximization", "True if the current problem is a maximization problem, otherwise false."));
       Parameters.Add(new SubScopesLookupParameter<DoubleData>("Quality", "The quality value contained in each sub-scope which is used for selection."));
     }
