Index: trunk/sources/HeuristicLab.Core/Interfaces/IRandom.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/Interfaces/IRandom.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Core/Interfaces/IRandom.cs	(revision 817)
@@ -48,13 +48,13 @@
     /// Gets a new random number between 0 and <paramref name="maxVal"/>.
     /// </summary>
-    /// <param name="maxVal">The maximal value of the random number.</param>
-    /// <returns>A random integer number smaller than or equal to <paramref name="maxVal"/>.</returns>
+    /// <param name="maxVal">The maximal value of the random number (exclusive).</param>
+    /// <returns>A random integer number smaller than <paramref name="maxVal"/>.</returns>
     int Next(int maxVal);
     /// <summary>
     /// Gets a new random number between <paramref name="minVal"/> and <paramref name="maxVal"/>.
     /// </summary>
-    /// <param name="maxVal">The maximal value of the random number.</param>
-    /// <param name="minVal">The minimal value of the random number.</param>
-    /// <returns>A random integer number. (<paramref name="minVal"/> &lt;= x &lt;= <paramref name="maxVal"/>.</returns>
+    /// <param name="maxVal">The maximal value of the random number (exclusive).</param>
+    /// <param name="minVal">The minimal value of the random number (inclusive).</param>
+    /// <returns>A random integer number. (<paramref name="minVal"/> &lt;= x &lt; <paramref name="maxVal"/>).</returns>
     int Next(int minVal, int maxVal);
     /// <summary>
Index: trunk/sources/HeuristicLab.Selection/HeuristicLabSelectionPlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/HeuristicLabSelectionPlugin.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/HeuristicLabSelectionPlugin.cs	(revision 817)
@@ -26,4 +26,7 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Plugin class for HeuristicLab.Selection plugin.
+  /// </summary>
   [ClassInfo(Name = "HeuristicLab.Selection-3.2")]
   [PluginFile(Filename = "HeuristicLab.Selection-3.2.dll", Filetype = PluginFileType.Assembly)]
Index: trunk/sources/HeuristicLab.Selection/LeftReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/LeftReducer.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/LeftReducer.cs	(revision 817)
@@ -27,9 +27,18 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Takes only sub scopes from the left child of the tree.
+  /// </summary>
   public class LeftReducer : ReducerBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Takes only the sub scopes from the left sub scope of the tree.
+    /// </summary>
+    /// <param name="scope">The current scope.</param>
+    /// <returns>All sub scopes from the left part of the tree.</returns>
     protected override ICollection<IScope> Reduce(IScope scope) {
       List<IScope> subScopes = new List<IScope>();
Index: trunk/sources/HeuristicLab.Selection/LeftSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/LeftSelector.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/LeftSelector.cs	(revision 817)
@@ -26,9 +26,25 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Copies or moves a defined number of sub scopes from a source scope to a target scope, starting at
+  /// the left side of the tree.
+  /// </summary>
   public class LeftSelector : StochasticSelectorBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Copies or moves a number of sub scopes (<paramref name="selected"/>) from <paramref name="source"/>
+    /// starting at the left end to the <paramref name="target"/>.
+    /// </summary>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="source">The source scope from which to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to move. Can be also bigger than the total 
+    /// number of sub scopes in <paramref name="source"/>, then the copying process starts again from the 
+    /// beginning.</param>
+    /// <param name="target">The target where to copy/move the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be copied or moved.</param>
     protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
       int index = 0;
Index: trunk/sources/HeuristicLab.Selection/LinearRankSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/LinearRankSelector.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/LinearRankSelector.cs	(revision 817)
@@ -27,13 +27,31 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Selects scopes based on their rank, which has been determined through their quality.
+  /// </summary>
   public class LinearRankSelector : StochasticSelectorBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="LinearRankSelector"/> with the <c>CopySelected</c> flag
+    /// set to <c>true</c>.
+    /// </summary>
     public LinearRankSelector() {
       GetVariable("CopySelected").GetValue<BoolData>().Data = true;
     }
 
+    /// <summary>
+    /// Copies or moves sub scopes from the given <paramref name="source"/> to the specified
+    /// <paramref name="target"/> according to their rank which is determined through their quality.
+    /// </summary>
+    /// <exception cref="InvalidOperationException">Thrown when no source sub scopes are available.</exception>
+    /// <param name="random">The random number generator.</param>
+    /// <param name="source">The source scope from where to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to copy/move.</param>
+    /// <param name="target">The target scope where to add the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be moved or copied.</param>
     protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
       int subScopes = source.SubScopes.Count;
Index: trunk/sources/HeuristicLab.Selection/MergingReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/MergingReducer.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/MergingReducer.cs	(revision 817)
@@ -27,9 +27,18 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Merges all sub scopes of the children to one list.
+  /// </summary>
   public class MergingReducer : ReducerBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Merges all sub scopes of the sub scopes of the current <paramref name="scope"/>.
+    /// </summary>
+    /// <param name="scope">The current scope whose sub scopes to merge.</param>
+    /// <returns>A list of all merged subscopes of the given <paramref name="scope"/>.</returns>
     protected override ICollection<IScope> Reduce(IScope scope) {
       List<IScope> subScopes = new List<IScope>();
Index: trunk/sources/HeuristicLab.Selection/ProportionalSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/ProportionalSelector.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/ProportionalSelector.cs	(revision 817)
@@ -27,9 +27,19 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Copies or moves a number of sub scopes from a source scope to a target scope, their probability
+  /// to be selected depending on their quality.
+  /// </summary>
   public class ProportionalSelector : StochasticSelectorBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="ProportionalSelector"/> with three variable infos 
+    /// (<c>Maximization</c>, <c>Quality</c> and <c>Windowing</c>, being a local variable and initialized 
+    /// with <c>true</c>) and the <c>CopySelected</c> flag set to <c>true</c>.
+    /// </summary>
     public ProportionalSelector() {
       AddVariableInfo(new VariableInfo("Maximization", "Maximization problem", typeof(BoolData), VariableKind.In));
@@ -41,4 +51,14 @@
     }
 
+    /// <summary>
+    /// Copies or movies a number of sub scopes (<paramref name="selected"/>) in the given 
+    /// <paramref name="source"/> to the given <paramref name="target"/>, selection takes place with respect
+    /// to the quality of the scope.
+    /// </summary>
+    /// <param name="random">The random number generator.</param>
+    /// <param name="source">The source scope from where to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to copy/move.</param>
+    /// <param name="target">The target scope where to add the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be moved or copied.</param>
     protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
       bool maximization = GetVariableValue<BoolData>("Maximization", source, true).Data;
@@ -74,4 +94,16 @@
     }
 
+    /// <summary>
+    /// Calculates the qualities of the sub scopes of the given <paramref name="source"/>.
+    /// </summary>
+    /// <exception cref="InvalidOperationException">Thrown when the sub scopes are not sorted according
+    /// to their solution qualities or if the quality value is beyond zero and the <c>windowing</c>
+    /// flag is set to <c>false</c>.</exception>
+    /// <param name="source">The scource scope where to calculate the qualities.</param>
+    /// <param name="maximization">Boolean flag whether is a maximization problem.</param>
+    /// <param name="qualityInfo">The quality variable info.</param>
+    /// <param name="windowing">Boolean flag whether the windowing strategy shall be applied.</param>
+    /// <param name="qualities">Output parameter; contains all qualities of the sub scopes.</param>
+    /// <param name="qualitySum">Output parameter; the sum of all qualities.</param>
     private void GenerateQualitiesArray(IScope source, bool maximization, IVariableInfo qualityInfo, bool windowing, out double[] qualities, out double qualitySum) {
       int subScopes = source.SubScopes.Count;
Index: trunk/sources/HeuristicLab.Selection/RandomSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/RandomSelector.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/RandomSelector.cs	(revision 817)
@@ -26,9 +26,23 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Copies or moves a defined number of sub scopes from a source scope to a target scope, being selected
+  /// randomly.
+  /// </summary>
   public class RandomSelector : StochasticSelectorBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Copies or moves a number of sub scopes (<paramref name="selected"/>) from <paramref name="source"/>
+    /// to the <paramref name="target"/>, chosen randomly.
+    /// </summary>
+    /// <param name="random">The random number generator.</param>
+    /// <param name="source">The source scope from which to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to move.</param>
+    /// <param name="target">The target where to copy/move the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be copied or moved.</param>
     protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
       for (int i = 0; i < selected; i++) {
Index: trunk/sources/HeuristicLab.Selection/ReducerBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/ReducerBase.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/ReducerBase.cs	(revision 817)
@@ -27,5 +27,15 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Base class for all reducers.
+  /// </summary>
   public abstract class ReducerBase : OperatorBase {
+    /// <summary>
+    /// Reduces the given <paramref name="scope"/> so that it contains in the end only the reduced
+    /// elements.
+    /// </summary>
+    /// <remarks>Calls <see cref="Reduce"/>.</remarks>
+    /// <param name="scope">The scope to reduce.</param>
+    /// <returns><c>null</c>.</returns>
     public override IOperation Apply(IScope scope) {
       ICollection<IScope> subScopes = Reduce(scope);
@@ -40,4 +50,9 @@
     }
 
+    /// <summary>
+    /// Reduces the current <paramref name="scope"/>.
+    /// </summary>
+    /// <param name="scope">The scope to reduce.</param>
+    /// <returns>The reduced list of scopes, that should be kept.</returns>
     protected abstract ICollection<IScope> Reduce(IScope scope);
   }
Index: trunk/sources/HeuristicLab.Selection/RightChildReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/RightChildReducer.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/RightChildReducer.cs	(revision 817)
@@ -27,9 +27,20 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Reduces the sub scopes by one level, so that the right sub scope contains also the right child scopes
+  /// of the left sub scope and the left sub scope represents its left child scope.
+  /// </summary>
   public class RightChildReducer : ReducerBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Reduces the right child of the left sub scope and adds its sub scopes to the right sub scope.
+    /// The left sub scope is also narrowed, which means it represents then its left child.
+    /// </summary>
+    /// <param name="scope">The current scope to reduce.</param>
+    /// <returns>A list of the new reduced sub scopes.</returns>
     protected override ICollection<IScope> Reduce(IScope scope) {
       IScope rightChild = scope.SubScopes[scope.SubScopes.Count - 1];
Index: trunk/sources/HeuristicLab.Selection/RightReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/RightReducer.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/RightReducer.cs	(revision 817)
@@ -27,9 +27,18 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Takes only sub scopes from the right child of the tree.
+  /// </summary>
   public class RightReducer : ReducerBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Takes only the sub scopes from the right part of the tree.
+    /// </summary>
+    /// <param name="scope">The current scope.</param>
+    /// <returns>All sub scopes from the right sub scope of the tree.</returns>
     protected override ICollection<IScope> Reduce(IScope scope) {
       List<IScope> subScopes = new List<IScope>();
Index: trunk/sources/HeuristicLab.Selection/RightSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/RightSelector.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/RightSelector.cs	(revision 817)
@@ -26,9 +26,25 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Copies or moves a defined number of sub scopes from a source scope to a target scope, starting at
+  /// the right side of the tree.
+  /// </summary>
   public class RightSelector : StochasticSelectorBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Copies or moves a number of sub scopes (<paramref name="selected"/>) from <paramref name="source"/>
+    /// starting at the right end to the <paramref name="target"/>.
+    /// </summary>
+    /// <param name="random">A random number generator.</param>
+    /// <param name="source">The source scope from which to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to move. Can be also bigger than the total 
+    /// number of sub scopes in <paramref name="source"/>, then the copying process starts again from the 
+    /// beginning.</param>
+    /// <param name="target">The target where to copy/move the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be copied or moved.</param>
     protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
       int index = source.SubScopes.Count - 1;
Index: trunk/sources/HeuristicLab.Selection/SelectorBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/SelectorBase.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/SelectorBase.cs	(revision 817)
@@ -28,5 +28,12 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Base class for all selectors.
+  /// </summary>
   public abstract class SelectorBase : OperatorBase {
+    /// <summary>
+    /// Initializes a new instance of <see cref="SelectorBase"/> with one variable infos 
+    /// (<c>CopySelected</c>), which is a local one.
+    /// </summary>
     public SelectorBase()
       : base() {
@@ -36,4 +43,11 @@
     }
 
+    /// <summary>
+    /// Inserts a new level of sub scopes in the given <paramref name="scope"/> with a scope containing the
+    /// remaining sub scopes and another with the selected ones.
+    /// </summary>
+    /// <remarks>Calls <see cref="Select"/>.</remarks>
+    /// <param name="scope">The scope where to select the sub scopes.</param>
+    /// <returns><c>null</c>.</returns>
     public override IOperation Apply(IScope scope) {
       BoolData copySelected = GetVariableValue<BoolData>("CopySelected", scope, true);
@@ -54,4 +68,11 @@
     }
 
+    /// <summary>
+    /// Selects sub scopes from the specified <paramref name="source"/> and moves or copies it to the
+    /// specified <paramref name="target"/>.
+    /// </summary>
+    /// <param name="source">The source scope where to select the sub scopes.</param>
+    /// <param name="target">The target where to add the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether to copy or move the selected sub scopes.</param>
     protected abstract void Select(IScope source, IScope target, bool copySelected);
   }
Index: trunk/sources/HeuristicLab.Selection/StochasticSelectorBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/StochasticSelectorBase.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/StochasticSelectorBase.cs	(revision 817)
@@ -28,5 +28,12 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Base class for all selectors that use a random number generator.
+  /// </summary>
   public abstract class StochasticSelectorBase : SelectorBase {
+    /// <summary>
+    /// Initializes a new instance of <see cref="StochasticSelectorBase"/> with two variable infos
+    /// (<c>Random</c> and <c>Selected</c>).
+    /// </summary>
     public StochasticSelectorBase()
       : base() {
@@ -35,4 +42,13 @@
     }
 
+    /// <summary>
+    /// Copies or moves randomly chosen sub scopes from the given <paramref name="source"/> to the specified 
+    /// <paramref name="target"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="Select(HeuristicLab.Core.IRandom, HeuristicLab.Core.IScope, int,
+    /// HeuristicLab.Core.IScope, bool)"/></remarks>
+    /// <param name="source">The source scope from where to copy/move the sub scopes.</param>
+    /// <param name="target">The target scope where to add the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be moved or copied.</param>
     protected sealed override void Select(IScope source, IScope target, bool copySelected) {
       IRandom random = GetVariableValue<IRandom>("Random", source, true);
@@ -42,4 +58,13 @@
     }
 
+    /// <summary>
+    /// Copies or moves randomly chosen sub scopes from the given <paramref name="source"/> to the specified 
+    /// <paramref name="target"/>.
+    /// </summary>
+    /// <param name="random">The random number generator.</param>
+    /// <param name="source">The source scope from where to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to copy/move.</param>
+    /// <param name="target">The target scope where to add the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be moved or copied.</param>
     protected abstract void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected);
   }
Index: trunk/sources/HeuristicLab.Selection/TournamentSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/TournamentSelector.cs	(revision 816)
+++ trunk/sources/HeuristicLab.Selection/TournamentSelector.cs	(revision 817)
@@ -27,9 +27,18 @@
 
 namespace HeuristicLab.Selection {
+  /// <summary>
+  /// Moves or copies a defined number of the best sub scopes from a source scope to a target scope.
+  /// </summary>
   public class TournamentSelector : StochasticSelectorBase {
+    /// <inheritdoc select="summary"/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TournamentSelector"/> with three variable infos 
+    /// (<c>Maximization</c>, <c>Quality</c> and <c>GroupSize</c>, being a local variable and set to 
+    /// <c>2</c>) with <c>CopySelected</c> set to <c>true</c>.
+    /// </summary>
     public TournamentSelector() {
       AddVariableInfo(new VariableInfo("Maximization", "Maximization problem", typeof(BoolData), VariableKind.In));
@@ -41,4 +50,14 @@
     }
 
+    /// <summary>
+    /// Copies or moves the best sub scopes from the given <paramref name="source"/> to the specified
+    /// <paramref name="target"/>.
+    /// </summary>
+    /// <exception cref="InvalidOperationException">Thrown when no source sub scopes are available.</exception>
+    /// <param name="random">The random number generator.</param>
+    /// <param name="source">The source scope from where to copy/move the sub scopes.</param>
+    /// <param name="selected">The number of sub scopes to copy/move.</param>
+    /// <param name="target">The target scope where to add the sub scopes.</param>
+    /// <param name="copySelected">Boolean flag whether the sub scopes shall be moved or copied.</param>
     protected override void Select(IRandom random, IScope source, int selected, IScope target, bool copySelected) {
       IVariableInfo qualityInfo = GetVariableInfo("Quality");
