Index: /trunk/sources/HeuristicLab.Core.Views/3.3/Auxiliary.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/Auxiliary.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/Auxiliary.cs	(revision 2818)
@@ -21,5 +21,4 @@
 
 using System;
-using System.Collections.Generic;
 using System.Text;
 using System.Windows.Forms;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs	(revision 2818)
@@ -21,13 +21,5 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
-using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/EngineView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/EngineView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/EngineView.cs	(revision 2818)
@@ -21,11 +21,5 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.Core;
 using HeuristicLab.Common;
 using HeuristicLab.MainForm;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLabCoreViewsPlugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLabCoreViewsPlugin.cs.frame	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLabCoreViewsPlugin.cs.frame	(revision 2818)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Text;
 using HeuristicLab.PluginInfrastructure;
 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs	(revision 2818)
@@ -22,11 +22,7 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
 using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Collections;
-using HeuristicLab.Common;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs	(revision 2818)
@@ -22,11 +22,6 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Collections;
-using HeuristicLab.Common;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs	(revision 2818)
@@ -22,11 +22,7 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
 using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Collections;
-using HeuristicLab.Common;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemSetView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemSetView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemSetView.cs	(revision 2818)
@@ -20,13 +20,7 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Collections;
-using HeuristicLab.Common;
 using HeuristicLab.MainForm;
 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ItemView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ItemView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ItemView.cs	(revision 2818)
@@ -21,11 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Xml;
-using System.Windows.Forms;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs	(revision 2818)
@@ -20,13 +20,7 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Collections;
-using HeuristicLab.Common;
 using HeuristicLab.MainForm;
 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemView.cs	(revision 2818)
@@ -21,9 +21,5 @@
 
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.MainForm;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorCollectionView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorCollectionView.cs	(revision 2818)
@@ -1,12 +1,5 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
+﻿using System.Windows.Forms;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorGraphView.cs	(revision 2818)
@@ -21,15 +21,8 @@
 
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
 using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Common;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorListView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorListView.cs	(revision 2818)
@@ -1,12 +1,5 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
+﻿using System.Windows.Forms;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorSetView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorSetView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorSetView.cs	(revision 2818)
@@ -1,12 +1,5 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
+﻿using System.Windows.Forms;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs	(revision 2818)
@@ -24,11 +24,7 @@
 using System.ComponentModel;
 using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Common;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorsSidebar.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorsSidebar.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/OperatorsSidebar.cs	(revision 2818)
@@ -21,13 +21,5 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
-using System.Linq;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs	(revision 2818)
@@ -21,13 +21,7 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ScopeListView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ScopeListView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ScopeListView.cs	(revision 2818)
@@ -1,12 +1,4 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
+﻿using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ScopeView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ScopeView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ScopeView.cs	(revision 2818)
@@ -22,13 +22,7 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Common;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelector.cs	(revision 2818)
@@ -21,14 +21,9 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
+using System.Linq;
 using System.Text;
 using System.Windows.Forms;
-using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.MainForm;
 
 namespace HeuristicLab.Core.Views { 
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelectorDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelectorDialog.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/TypeSelectorDialog.cs	(revision 2818)
@@ -21,12 +21,5 @@
 
 using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ValueParameterCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ValueParameterCollectionView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ValueParameterCollectionView.cs	(revision 2818)
@@ -21,13 +21,7 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
+using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/VariableCollectionView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/VariableCollectionView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/VariableCollectionView.cs	(revision 2818)
@@ -1,12 +1,4 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
+﻿using HeuristicLab.Collections;
 using HeuristicLab.MainForm;
-using HeuristicLab.Collections;
 
 namespace HeuristicLab.Core.Views {
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/VariableView.cs	(revision 2818)
@@ -21,10 +21,6 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
+using HeuristicLab.Common;
 using HeuristicLab.MainForm;
 
@@ -95,5 +91,5 @@
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
-        dataTypeTextBox.Text = Content.Value == null ? "-" : Content.Value.GetType().FullName;
+        dataTypeTextBox.Text = Content.Value == null ? "-" : Content.Value.GetType().GetPrettyName();
         dataTypeTextBox.Enabled = Content.Value != null;
         setValueButton.Enabled = Content.Value == null;
@@ -108,5 +104,5 @@
         Invoke(new EventHandler(Content_ValueChanged), sender, e);
       else {
-        dataTypeTextBox.Text = Content.Value == null ? "-" : Content.Value.GetType().FullName;
+        dataTypeTextBox.Text = Content.Value == null ? "-" : Content.Value.GetType().GetPrettyName();
         dataTypeTextBox.Enabled = Content.Value != null;
         setValueButton.Enabled = Content.Value == null;
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs	(revision 2818)
@@ -22,10 +22,6 @@
 using System;
 using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
+using System.Linq;
 using System.Windows.Forms;
-using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.MainForm;
Index: /trunk/sources/HeuristicLab.Core/3.3/Variable.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core/3.3/Variable.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Core/3.3/Variable.cs	(revision 2818)
@@ -21,9 +21,6 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
+using HeuristicLab.Common;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Core {
@@ -91,5 +88,5 @@
         return string.Format("{0}: null", Name);
       else
-        return string.Format("{0}: {1} ({2})", Name, Value.ToString(), Value.GetType().Name);
+        return string.Format("{0}: {1} ({2})", Name, Value.ToString(), Value.GetType().GetPrettyName());
     }
 
Index: /trunk/sources/HeuristicLab.Evolutionary/3.3/ChildrenCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Evolutionary/3.3/ChildrenCreator.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Evolutionary/3.3/ChildrenCreator.cs	(revision 2818)
@@ -68,5 +68,5 @@
       for (int i = 0; i < children; i++) {
         IScope child = new Scope(i.ToString());
-        for (int j = 0; j < parents; j++) {
+        for (int j = 0; j < parentsPerChild; j++) {
           IScope parent = CurrentScope.SubScopes[0];
           CurrentScope.SubScopes.RemoveAt(0);
Index: /trunk/sources/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 2817)
+++ /trunk/sources/HeuristicLab.Operators/3.3/HeuristicLab.Operators-3.3.csproj	(revision 2818)
@@ -94,5 +94,4 @@
     <Compile Include="ParallelSubScopesProcessor.cs" />
     <Compile Include="Placeholder.cs" />
-    <Compile Include="SingleCallOperator.cs" />
     <Compile Include="IntCounter.cs" />
     <Compile Include="ScopeCleaner.cs" />
Index: /trunk/sources/HeuristicLab.Operators/3.3/MultipleCallsOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/MultipleCallsOperator.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Operators/3.3/MultipleCallsOperator.cs	(revision 2818)
@@ -29,9 +29,8 @@
 namespace HeuristicLab.Operators {
   /// <summary>
-  /// An operator which applies multiple operators sequentially on the current scope.
+  /// A base class for operators which apply multiple user-defined operators.
   /// </summary>
-  [Item("MultipleCallsOperator", "An operator which applies multiple operators sequentially on the current scope.")]
-  [Creatable("Test")]
-  public class MultipleCallsOperator : SingleSuccessorOperator {
+  [Item("MultipleCallsOperator", "A base class for operators which apply multiple user-defined operators.")]
+  public abstract class MultipleCallsOperator : SingleSuccessorOperator {
     protected IValueParameter<IOperator>[] OperatorParameters {
       get {
@@ -106,11 +105,4 @@
       operators[index] = opParam.Value;
     }
-
-    public override IExecutionSequence Apply() {
-      ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
-      for (int i = Operators.Count - 1; i >= 0; i--)
-        next.Insert(0, ExecutionContext.CreateContext(Operators[i]));
-      return next;
-    }
   }
 }
Index: unk/sources/HeuristicLab.Operators/3.3/SingleCallOperator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/SingleCallOperator.cs	(revision 2817)
+++ 	(revision )
@@ -1,54 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Operators {
-  /// <summary>
-  /// An operator which applies a specified operator on the current scope.
-  /// </summary>
-  [Item("SingleCallOperator", "An operator which applies a specified operator on the current scope.")]
-  [Creatable("Test")]
-  [EmptyStorableClass]
-  public class SingleCallOperator : SingleSuccessorOperator {
-    protected OperatorParameter OperatorParameter {
-      get { return (OperatorParameter)Parameters["Operator"]; }
-    }
-    public IOperator Operator {
-      get { return OperatorParameter.Value; }
-      set { OperatorParameter.Value = value; }
-    }
-
-    public SingleCallOperator()
-      : base() {
-      Parameters.Add(new OperatorParameter("Operator", "The operator which should be applied on the current scope."));
-    }
-
-    public override IExecutionSequence Apply() {
-      ExecutionContextCollection next = new ExecutionContextCollection(base.Apply());
-      if (Operator != null)
-        next.Insert(0, ExecutionContext.CreateContext(Operator));
-      return next;
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs	(revision 2818)
@@ -58,5 +58,5 @@
     public override IExecutionSequence Apply() {
       descending = DescendingParameter.ActualValue.Value;
-      actualName = LookupParameter<DoubleData>.TranslateName(ValueParameter.Name, ExecutionContext);
+      actualName = LookupParameter<ItemArray<DoubleData>>.TranslateName(ValueParameter.Name, ExecutionContext);
       CurrentScope.SubScopes.Sort(SortScopes);
       return base.Apply();
@@ -67,5 +67,5 @@
       IVariable var2;
       x.Variables.TryGetValue(actualName, out var1);
-      x.Variables.TryGetValue(actualName, out var2);
+      y.Variables.TryGetValue(actualName, out var2);
       if ((var1 == null) && (var2 == null))
         return 0;
Index: /trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs	(revision 2818)
@@ -31,8 +31,15 @@
   [Creatable("Test")]
   [EmptyStorableClass]
-  public sealed class UniformParallelSubScopesProcessor : SingleCallOperator {
+  public sealed class UniformParallelSubScopesProcessor : SingleSuccessorOperator {
+    private OperatorParameter OperatorParameter {
+      get { return (OperatorParameter)Parameters["Operator"]; }
+    }
+    public IOperator Operator {
+      get { return OperatorParameter.Value; }
+      set { OperatorParameter.Value = value; }
+    }
+
     public UniformParallelSubScopesProcessor()
       : base() {
-      Parameters.Remove("Operator");
       Parameters.Add(new OperatorParameter("Operator", "The operator which should be applied on all sub-scopes of the current scope in parallel."));
     }
Index: /trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs	(revision 2818)
@@ -31,8 +31,15 @@
   [Creatable("Test")]
   [EmptyStorableClass]
-  public sealed class UniformSequentialSubScopesProcessor : SingleCallOperator {
+  public sealed class UniformSequentialSubScopesProcessor : SingleSuccessorOperator {
+    private OperatorParameter OperatorParameter {
+      get { return (OperatorParameter)Parameters["Operator"]; }
+    }
+    public IOperator Operator {
+      get { return OperatorParameter.Value; }
+      set { OperatorParameter.Value = value; }
+    }
+
     public UniformSequentialSubScopesProcessor()
       : base() {
-      Parameters.Remove("Operator");
       Parameters.Add(new OperatorParameter("Operator", "The operator which should be applied sequentially on all sub-scopes of the current scope."));
     }
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj	(revision 2818)
@@ -105,4 +105,8 @@
       <Name>HeuristicLab.Common.Resources-3.2</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Common\3.2\HeuristicLab.Common-3.2.csproj">
+      <Project>{1FC004FC-59AF-4249-B1B6-FF25873A20E4}</Project>
+      <Name>HeuristicLab.Common-3.2</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">
       <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLabParametersViewsPlugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLabParametersViewsPlugin.cs.frame	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLabParametersViewsPlugin.cs.frame	(revision 2818)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Text;
 using HeuristicLab.PluginInfrastructure;
 
@@ -31,4 +28,5 @@
   [Plugin("HeuristicLab.Parameters.Views", "3.3.0.$WCREV$")]
   [PluginFile("HeuristicLab.Parameters.Views-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Common", "3.2")]
   [PluginDependency("HeuristicLab.Common.Resources", "3.2")]
   [PluginDependency("HeuristicLab.Core", "3.3")]
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/LookupParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/LookupParameterView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/LookupParameterView.cs	(revision 2818)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
 using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
@@ -36,5 +30,4 @@
   /// </summary>
   [Content(typeof(LookupParameter<>), true)]
-  [Content(typeof(SubScopesLookupParameter<>), true)]
   [Content(typeof(ILookupParameter<>), false)]
   public partial class LookupParameterView<T> : ParameterView where T : class, IItem {
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ParameterView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ParameterView.cs	(revision 2818)
@@ -20,11 +20,5 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
@@ -73,5 +67,5 @@
       } else {
         Caption = Content.Name + " (" + Content.GetType().Name + ")";
-        dataTypeTextBox.Text = Content.DataType.Name;
+        dataTypeTextBox.Text = Content.DataType.GetPrettyName();
         dataTypeTextBox.Enabled = true;
       }
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs	(revision 2818)
@@ -21,9 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Core;
Index: /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs	(revision 2818)
@@ -21,9 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.Core;
Index: /trunk/sources/HeuristicLab.Parameters/3.3/HeuristicLabParametersPlugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/HeuristicLabParametersPlugin.cs.frame	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/HeuristicLabParametersPlugin.cs.frame	(revision 2818)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Text;
 using HeuristicLab.PluginInfrastructure;
 
Index: /trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs	(revision 2818)
@@ -21,7 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -71,14 +68,14 @@
 
     public override string ToString() {
-      return string.Format("{0}: {1} ({2})", Name, ActualName, DataType.Name);
-    }
-
-    private IValueParameter<T> GetParameter(out string name) {
-      IValueParameter<T> valueParam = this as IValueParameter<T>;
-      ILookupParameter<T> lookupParam = this as ILookupParameter<T>;
+      return string.Format("{0}: {1} ({2})", Name, ActualName, DataType.GetPrettyName());
+    }
+
+    private IValueParameter GetParameter(out string name) {
+      IValueParameter valueParam = this as IValueParameter;
+      ILookupParameter lookupParam = this as ILookupParameter;
       ExecutionContext current = ExecutionContext;
 
       name = Name;
-      while ((valueParam != null) && (lookupParam != null)) {
+      while ((valueParam != null) || (lookupParam != null)) {
         if ((valueParam != null) && (valueParam.Value != null)) return valueParam;
         if (lookupParam != null) name = lookupParam.ActualName;
@@ -89,12 +86,12 @@
 
         if (current != null) {
-          valueParam = current.Operator.Parameters[name] as IValueParameter<T>;
-          lookupParam = current.Operator.Parameters[name] as ILookupParameter<T>;
+          valueParam = current.Operator.Parameters[name] as IValueParameter;
+          lookupParam = current.Operator.Parameters[name] as ILookupParameter;
           if ((valueParam == null) && (lookupParam == null))
             throw new InvalidOperationException(
               string.Format("Parameter look-up chain broken. Parameter \"{0}\" is not an \"{1}\" or an \"{2}\".",
                             name,
-                            typeof(IValueParameter<T>).GetPrettyName(),
-                            typeof(ILookupParameter<T>).GetPrettyName())
+                            typeof(IValueParameter).GetPrettyName(),
+                            typeof(ILookupParameter).GetPrettyName())
             );
         } else {
@@ -111,13 +108,13 @@
       return scope != null ? scope.Variables[actualName] : null;
     }
-    private IValueParameter<T> GetProblemParameter(string name) {
-      IValueParameter<T> param = null;
+    private IValueParameter GetProblemParameter(string name) {
+      IValueParameter param = null;
       if (ExecutionContext.Problem.Parameters.ContainsKey(name)) {
-        param = ExecutionContext.Problem.Parameters[name] as IValueParameter<T>;
+        param = ExecutionContext.Problem.Parameters[name] as IValueParameter;
         if (param == null)
           throw new InvalidOperationException(
             string.Format("Parameter look-up chain broken. Parameter \"{0}\" is not an \"{1}\".",
                           name,
-                          typeof(IValueParameter<T>).GetPrettyName())
+                          typeof(IValueParameter).GetPrettyName())
           );
       }
@@ -127,5 +124,5 @@
       string name;
       // try to get value from context stack
-      IValueParameter<T> param = GetParameter(out name);
+      IValueParameter param = GetParameter(out name);
       if (param != null) return param.Value;
 
@@ -144,5 +141,5 @@
 
       // try to get value from problem
-      IValueParameter<T> problemParam = GetProblemParameter(name);
+      IValueParameter problemParam = GetProblemParameter(name);
       if (problemParam != null) return problemParam.Value;
 
@@ -158,5 +155,5 @@
       // try to set value in context stack
       string name;
-      IValueParameter<T> param = GetParameter(out name);
+      IValueParameter param = GetParameter(out name);
       if (param != null) {
         param.Value = val;
@@ -172,5 +169,5 @@
 
       // try to set value in problem
-      IValueParameter<T> problemParam = GetProblemParameter(name);
+      IValueParameter problemParam = GetProblemParameter(name);
       if (problemParam != null) {
         problemParam.Value = val;
@@ -193,15 +190,15 @@
       ExecutionContext currentContext = context;
       IParameter param;
-      ILookupParameter<T> lookupParam;
+      ILookupParameter lookupParam;
 
       while (currentContext != null) {
         currentContext.Operator.Parameters.TryGetValue(currentName, out param);
         if (param != null) {
-          lookupParam = param as ILookupParameter<T>;
+          lookupParam = param as ILookupParameter;
           if (lookupParam == null)
             throw new InvalidOperationException(
               string.Format("Parameter look-up chain broken. Parameter \"{0}\" is not an \"{1}\".",
                             currentName,
-                            typeof(ILookupParameter<T>).GetPrettyName())
+                            typeof(ILookupParameter).GetPrettyName())
             );
           currentName = lookupParam.ActualName;
Index: /trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs	(revision 2818)
@@ -20,8 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
Index: /trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs	(revision 2818)
@@ -21,7 +21,5 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -84,5 +82,5 @@
 
     public override string ToString() {
-      return string.Format("{0} ({1})", Name, DataType.Name);
+      return string.Format("{0} ({1})", Name, DataType.GetPrettyName());
     }
 
Index: /trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs	(revision 2818)
@@ -21,7 +21,5 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -50,5 +48,5 @@
 
     public override string ToString() {
-      return string.Format("{0} ({1})", Name, DataType.Name);
+      return string.Format("{0} ({1})", Name, DataType.GetPrettyName());
     }
 
Index: /trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs	(revision 2818)
@@ -21,10 +21,6 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Parameters {
@@ -39,5 +35,5 @@
 
     protected override IItem GetActualValue() {
-      string name = LookupParameter<T>.TranslateName(Name, ExecutionContext);
+      string name = LookupParameter<ItemArray<T>>.TranslateName(Name, ExecutionContext);
       IScope scope = ExecutionContext.Scope;
       ItemArray<T> values = new ItemArray<T>(scope.SubScopes.Count);
@@ -68,5 +64,5 @@
         );
 
-      string name = LookupParameter<T>.TranslateName(Name, ExecutionContext);
+      string name = LookupParameter<ItemArray<T>>.TranslateName(Name, ExecutionContext);
       IScope scope = ExecutionContext.Scope;
       IVariable var;
Index: /trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 2818)
@@ -21,7 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -85,5 +82,5 @@
 
     public override string ToString() {
-      return string.Format("{0}: {1} ({2})", Name, Value != null ? Value.ToString() : ActualName, DataType.Name);
+      return string.Format("{0}: {1} ({2})", Name, Value != null ? Value.ToString() : ActualName, DataType.GetPrettyName());
     }
 
Index: /trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs
===================================================================
--- /trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 2818)
@@ -21,7 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -85,5 +82,5 @@
 
     public override string ToString() {
-      return string.Format("{0}: {1} ({2})", Name, Value != null ? Value.ToString() : "null", DataType.Name);
+      return string.Format("{0}: {1} ({2})", Name, Value != null ? Value.ToString() : "null", DataType.GetPrettyName());
     }
 
Index: /trunk/sources/HeuristicLab.Random/3.3/RandomCreator.cs
===================================================================
--- /trunk/sources/HeuristicLab.Random/3.3/RandomCreator.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Random/3.3/RandomCreator.cs	(revision 2818)
@@ -60,9 +60,9 @@
 
     public override IExecutionSequence Apply() {
-      bool setSeedRandomly = SetSeedRandomlyParameter.ActualValue == null ? true : SetSeedRandomlyParameter.ActualValue.Value;
+      if (SetSeedRandomlyParameter.ActualValue == null) SetSeedRandomlyParameter.ActualValue = new BoolData(true);
+      bool setSeedRandomly = SetSeedRandomlyParameter.ActualValue.Value;
+      if (SeedParameter.ActualValue == null) SeedParameter.ActualValue = new IntData(0);
       IntData seed = SeedParameter.ActualValue;
-      IRandom random = RandomParameter.ActualValue;
 
-      if (seed == null) seed = new IntData(0);
       if (setSeedRandomly) seed.Value = new System.Random().Next();
       RandomParameter.ActualValue = new MersenneTwister((uint)seed.Value);
Index: /trunk/sources/HeuristicLab.Selection/3.3/HeuristicLabSelectionPlugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/HeuristicLabSelectionPlugin.cs.frame	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/HeuristicLabSelectionPlugin.cs.frame	(revision 2818)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Text;
 using HeuristicLab.PluginInfrastructure;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/LeftReducer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/LeftReducer.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/LeftReducer.cs	(revision 2818)
@@ -20,8 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/LeftSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/LeftSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/LeftSelector.cs	(revision 2818)
@@ -20,8 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/LinearRankSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/LinearRankSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/LinearRankSelector.cs	(revision 2818)
@@ -21,8 +21,6 @@
 
 using System.Linq;
-using System.Collections.Generic;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -54,5 +52,5 @@
       else
         temp = temp.OrderByDescending(x => x.Value);
-      var list = temp.Select((x, lots) => new { x.index, lots }).ToList();
+      var list = temp.Select((x, index) => new { x.index, lots = index + 1 }).ToList();
 
       int lotSum = list.Count * (list.Count + 1) / 2;
Index: /trunk/sources/HeuristicLab.Selection/3.3/MergingReducer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/MergingReducer.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/MergingReducer.cs	(revision 2818)
@@ -20,8 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/ProportionalSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/ProportionalSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/ProportionalSelector.cs	(revision 2818)
@@ -20,11 +20,11 @@
 #endregion
 
+using System;
+using System.Collections.Generic;
 using System.Linq;
-using System.Collections.Generic;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System;
 
 namespace HeuristicLab.Selection {
@@ -56,36 +56,37 @@
       IRandom random = RandomParameter.ActualValue;
       bool maximization = MaximizationParameter.ActualValue.Value;
-      List<DoubleData> qualities = new List<DoubleData>(QualityParameter.ActualValue);
       bool windowing = WindowingParameter.Value.Value;
       ScopeList selected = new ScopeList();
 
       // prepare qualities for proportional selection
-      double minQuality = qualities.Min(x => x.Value);
-      double maxQuality = qualities.Max(x => x.Value);
+      var qualities = QualityParameter.ActualValue.Select(x => x.Value);
+      double minQuality = qualities.Min();
+      double maxQuality = qualities.Max();
       if (minQuality == maxQuality) {  // all quality values are equal
-        qualities.ForEach(x => x.Value = 1);
+        qualities = qualities.Select(x => 1.0);
       } else {
         if (windowing) {
           if (maximization)
-            qualities.ForEach(x => x.Value = x.Value - minQuality);
+            qualities = qualities.Select(x => x - minQuality);
           else
-            qualities.ForEach(x => x.Value = maxQuality - x.Value);
+            qualities = qualities.Select(x => maxQuality - x);
         } else {
           if (minQuality < 0.0) throw new InvalidOperationException("Proportional selection without windowing does not work with quality values < 0.");
           if (!maximization) {
             double limit = Math.Min(maxQuality * 2, double.MaxValue);
-            qualities.ForEach(x => x.Value = limit - x.Value);
+            qualities = qualities.Select(x => limit - x);
           }
         }
       }
 
-      double qualitySum = qualities.Sum(x => x.Value);
+      List<double> list = qualities.ToList();
+      double qualitySum = qualities.Sum();
       for (int i = 0; i < count; i++) {
         double selectedQuality = random.NextDouble() * qualitySum;
         int index = 0;
-        double currentQuality = qualities[index].Value;
+        double currentQuality = list[index];
         while (currentQuality < selectedQuality) {
           index++;
-          currentQuality += qualities[index].Value;
+          currentQuality += list[index];
         }
         if (copy)
@@ -94,6 +95,6 @@
           selected.Add(scopes[index]);
           scopes.RemoveAt(index);
-          qualitySum -= qualities[index].Value;
-          qualities.RemoveAt(index);
+          qualitySum -= list[index];
+          list.RemoveAt(index);
         }
       }
Index: /trunk/sources/HeuristicLab.Selection/3.3/RandomSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/RandomSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/RandomSelector.cs	(revision 2818)
@@ -20,8 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs	(revision 2818)
@@ -20,7 +20,5 @@
 #endregion
 
-using System;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
Index: /trunk/sources/HeuristicLab.Selection/3.3/RightReducer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/RightReducer.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/RightReducer.cs	(revision 2818)
@@ -20,8 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/RightSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/RightSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/RightSelector.cs	(revision 2818)
@@ -20,8 +20,5 @@
 #endregion
 
-using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
Index: /trunk/sources/HeuristicLab.Selection/3.3/Selector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/Selector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/Selector.cs	(revision 2818)
@@ -20,5 +20,4 @@
 #endregion
 
-using System;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
Index: /trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 2818)
@@ -21,6 +21,4 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
Index: /trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 2818)
@@ -22,5 +22,4 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
Index: /trunk/sources/HeuristicLab.Selection/3.3/TournamentSelector.cs
===================================================================
--- /trunk/sources/HeuristicLab.Selection/3.3/TournamentSelector.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.Selection/3.3/TournamentSelector.cs	(revision 2818)
@@ -21,4 +21,5 @@
 
 using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
@@ -48,5 +49,5 @@
       IRandom random = RandomParameter.ActualValue;
       bool maximization = MaximizationParameter.ActualValue.Value;
-      List<DoubleData> qualities = new List<DoubleData>(QualityParameter.ActualValue);
+      List<double> qualities = QualityParameter.ActualValue.Select(x => x.Value).ToList();
       int groupSize = GroupSizeParameter.ActualValue.Value;
       ScopeList selected = new ScopeList();
@@ -57,6 +58,6 @@
         for (int j = 1; j < groupSize; j++) {
           index = random.Next(scopes.Count);
-          if (((maximization) && (qualities[index].Value > qualities[best].Value)) ||
-              ((!maximization) && (qualities[index].Value < qualities[best].Value))) {
+          if (((maximization) && (qualities[index] > qualities[best])) ||
+              ((!maximization) && (qualities[index] < qualities[best]))) {
             best = index;
           }
Index: /trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs
===================================================================
--- /trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs	(revision 2817)
+++ /trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs	(revision 2818)
@@ -62,20 +62,22 @@
         for (int i = coll.Count - 1; i >= 0; i--)
           ExecutionStack.Push(coll[i]);
-        next = ExecutionStack.Pop();
+        next = ExecutionStack.Count > 0 ? ExecutionStack.Pop() : null;
         coll = next as ExecutionContextCollection;
       }
       ExecutionContext context = next as ExecutionContext;
-      try {
-        currentOperator = context.Operator;
-        ExecutionStack.Push(context.Operator.Execute(context));
-        currentOperator = null;
+      if (context != null) {
+        try {
+          currentOperator = context.Operator;
+          ExecutionStack.Push(context.Operator.Execute(context));
+          currentOperator = null;
+        }
+        catch (Exception ex) {
+          ExecutionStack.Push(context);
+          Stop();
+          OnExceptionOccurred(ex);
+        }
+        if (context.Operator.Breakpoint)
+          Stop();
       }
-      catch (Exception ex) {
-        ExecutionStack.Push(context);
-        Stop();
-        OnExceptionOccurred(ex);
-      }
-      if (context.Operator.Breakpoint)
-        Stop();
     }
   }
