Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs	(revision 13127)
@@ -291,12 +291,12 @@
 
       Parameters.Add(new ValueParameter<EnumValue<AgingScheme>>("AgingScheme", "The aging scheme for setting the age-limits for the layers.", new EnumValue<AgingScheme>(ALPS.AgingScheme.Polynomial)));
-      Parameters.Add(new ValueParameter<IntValue>("AgeGap", "The frequency of reseeding the lowest layer and scaling factor for the age-limits for the layers", new IntValue(20)));
+      Parameters.Add(new ValueParameter<IntValue>("AgeGap", "The frequency of reseeding the lowest layer and scaling factor for the age-limits for the layers.", new IntValue(20)));
       Parameters.Add(new ValueParameter<DoubleValue>("AgeInheritance", "A weight that determines the age of a child after crossover based on the older (1.0) and younger (0.0) parent.", new DoubleValue(1.0)) { Hidden = true });
       Parameters.Add(new ValueParameter<IntArray>("AgeLimits", "The maximum ages for the Layers.", new IntArray(new int[0])) { Hidden = true });
 
       Parameters.Add(new ValueParameter<IntValue>("MatingPoolRange", "The range of layers used for creating a mating pool. (1 = current + previous layer)", new IntValue(1)) { Hidden = true });
-      Parameters.Add(new ValueParameter<BoolValue>("ReduceToPopulationSize", "Reduce the LayerPopulationSize after elder migration to PopulationSize", new BoolValue(true)) { Hidden = true });
-
-      Parameters.Add(new ValueParameter<MultiTerminator>("Terminator", "The termination criteria which sould be checked.", new MultiTerminator()));
+      Parameters.Add(new ValueParameter<BoolValue>("ReduceToPopulationSize", "Reduce the CurrentPopulationSize after elder migration to PopulationSize", new BoolValue(true)) { Hidden = true });
+
+      Parameters.Add(new ValueParameter<MultiTerminator>("Terminator", "The termination criteria that defines if the algorithm should continue or stop.", new MultiTerminator()));
       #endregion
 
@@ -306,9 +306,8 @@
       var layer0Processor = new SubScopesProcessor();
       var localRandomCreator = new LocalRandomCreator();
-      var layerVariableCreator = new VariableCreator();
       var layerSolutionsCreator = new SolutionsCreator();
       var initializeAgeProcessor = new UniformSubScopesProcessor();
       var initializeAge = new VariableCreator() { Name = "Initialize Age" };
-      var initializeLayerPopulationSize = new SubScopesCounter() { Name = "Init LayerPopulationCounter" };
+      var initializeCurrentPopulationSize = new SubScopesCounter() { Name = "Init CurrentPopulationCounter" };
       var initializeLocalEvaluatedSolutions = new Assigner() { Name = "Initialize LayerEvaluatedSolutions" };
       var initializeGlobalEvaluatedSolutions = new DataReducer() { Name = "Initialize EvaluatedSolutions" };
@@ -331,8 +330,5 @@
       layer0Processor.Successor = initializeGlobalEvaluatedSolutions;
 
-      localRandomCreator.Successor = layerVariableCreator;
-
-      layerVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Layer", new IntValue(0)));
-      layerVariableCreator.Successor = layerSolutionsCreator;
+      localRandomCreator.Successor = layerSolutionsCreator;
 
       layerSolutionsCreator.NumberOfSolutionsParameter.ActualName = PopulationSizeParameter.Name;
@@ -340,8 +336,8 @@
 
       initializeAgeProcessor.Operator = initializeAge;
-      initializeAgeProcessor.Successor = initializeLayerPopulationSize;
-
-      initializeLayerPopulationSize.ValueParameter.ActualName = "LayerPopulationSize";
-      initializeLayerPopulationSize.Successor = initializeLocalEvaluatedSolutions;
+      initializeAgeProcessor.Successor = initializeCurrentPopulationSize;
+
+      initializeCurrentPopulationSize.ValueParameter.ActualName = "CurrentPopulationSize";
+      initializeCurrentPopulationSize.Successor = initializeLocalEvaluatedSolutions;
 
       initializeAge.CollectedValues.Add(new ValueParameter<DoubleValue>("Age", new DoubleValue(0)));
@@ -349,5 +345,5 @@
 
       initializeLocalEvaluatedSolutions.LeftSideParameter.ActualName = "LayerEvaluatedSolutions";
-      initializeLocalEvaluatedSolutions.RightSideParameter.ActualName = "LayerPopulationSize";
+      initializeLocalEvaluatedSolutions.RightSideParameter.ActualName = "CurrentPopulationSize";
       initializeLocalEvaluatedSolutions.Successor = null;
 
@@ -362,5 +358,5 @@
 
       mainLoop.GlobalRandomParameter.ActualName = "GlobalRandom";
-      mainLoop.LocalRandomParameter.ActualName = "LocalRandom";
+      mainLoop.LocalRandomParameter.ActualName = localRandomCreator.LocalRandomParameter.Name;
       mainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions";
       mainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name;
@@ -377,8 +373,10 @@
       mainLoop.PlusSelectionParameter.ActualName = PlusSelectionParameter.Name;
       mainLoop.AgeParameter.ActualName = "Age";
+      mainLoop.AgeGapParameter.ActualName = AgeGapParameter.Name;
       mainLoop.AgeInheritanceParameter.ActualName = AgeInheritanceParameter.Name;
       mainLoop.AgeLimitsParameter.ActualName = AgeLimitsParameter.Name;
       mainLoop.MatingPoolRangeParameter.ActualName = MatingPoolRangeParameter.Name;
       mainLoop.ReduceToPopulationSizeParameter.ActualName = ReduceToPopulationSizeParameter.Name;
+      mainLoop.TerminatorParameter.ActualName = TerminatorParameter.Name;
       #endregion
 
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 13127)
@@ -98,4 +98,7 @@
       get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["Age"]; }
     }
+    public IValueLookupParameter<IntValue> AgeGapParameter {
+      get { return (IValueLookupParameter<IntValue>)Parameters["AgeGap"]; }
+    }
     public IValueLookupParameter<DoubleValue> AgeInheritanceParameter {
       get { return (IValueLookupParameter<DoubleValue>)Parameters["AgeInheritance"]; }
@@ -110,4 +113,8 @@
     public IValueLookupParameter<BoolValue> ReduceToPopulationSizeParameter {
       get { return (IValueLookupParameter<BoolValue>)Parameters["ReduceToPopulationSize"]; }
+    }
+
+    public IValueLookupParameter<IOperator> TerminatorParameter {
+      get { return (IValueLookupParameter<IOperator>)Parameters["Terminator"]; }
     }
     #endregion
@@ -147,9 +154,12 @@
 
       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Age", "The age of individuals."));
+      Parameters.Add(new ValueLookupParameter<IntValue>("AgeGap", "The frequency of reseeding the lowest layer and scaling factor for the age-limits for the layers."));
       Parameters.Add(new ValueLookupParameter<DoubleValue>("AgeInheritance", "A weight that determines the age of a child after crossover based on the older (1.0) and younger (0.0) parent."));
       Parameters.Add(new ValueLookupParameter<IntArray>("AgeLimits", "The maximum ages for the Layers."));
 
       Parameters.Add(new ValueLookupParameter<IntValue>("MatingPoolRange", "The range of sub - populations used for creating a mating pool. (1 = current + previous sub-population)"));
-      Parameters.Add(new ValueLookupParameter<BoolValue>("ReduceToPopulationSize", "Reduce the LayerPopulationSize after elder migration to PopulationSize"));
+      Parameters.Add(new ValueLookupParameter<BoolValue>("ReduceToPopulationSize", "Reduce the CurrentPopulationSize after elder migration to PopulationSize"));
+
+      Parameters.Add(new ValueLookupParameter<IOperator>("Terminator", "The termination criteria that defines if the algorithm should continue or stop"));
 
 
@@ -183,5 +193,5 @@
       initLayerAnalyzerProcessor.Successor = initAnalyzerPlaceholder;
 
-      layerVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("LayerEvaluatedSolutions"));
+      layerVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Layer", new IntValue(0)));
       layerVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("LayerResults"));
       layerVariableCreator.Successor = initLayerAnalyzerPlaceholder;
@@ -253,4 +263,5 @@
       analyzerPlaceholder.Successor = termination;
 
+      termination.TerminatorParameter.ActualName = TerminatorParameter.Name;
       termination.ContinueBranch = matingPoolCreator;
     }
@@ -273,4 +284,10 @@
       selectorProsessor.Operator = eldersSelector;
       selectorProsessor.Successor = shiftToRightMigrator;
+
+      eldersSelector.AgeParameter.ActualName = AgeParameter.Name;
+      eldersSelector.AgeLimitsParameter.ActualName = AgeLimitsParameter.Name;
+      eldersSelector.NumberOfLayersParameter.ActualName = NumberOfLayersParameter.Name;
+      eldersSelector.LayerParameter.ActualName = "Layer";
+      eldersSelector.Successor = null;
 
       shiftToRightMigrator.ClockwiseMigrationParameter.Value = new BoolValue(true);
@@ -391,5 +408,8 @@
       reseeder.OperatorGraph.InitialOperator = reseedingController;
 
+      reseedingController.GenerationsParameter.ActualName = "Generations";
+      reseedingController.AgeGapParameter.ActualName = AgeGapParameter.Name;
       reseedingController.FirstLayerOperator = removeIndividuals;
+      reseedingController.Successor = null;
 
       removeIndividuals.Successor = createIndividuals;
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Analyzers/AgeDistributionAnalyzer.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Analyzers/AgeDistributionAnalyzer.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Analyzers/AgeDistributionAnalyzer.cs	(revision 13127)
@@ -40,12 +40,12 @@
       get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["Age"]; }
     }
-    public ValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
+    public IValueLookupParameter<ResultCollection> ResultsParameter {
+      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
     }
-    private ValueParameter<StringValue> HistogramNameParameter {
-      get { return (ValueParameter<StringValue>)Parameters["HistogramName"]; }
+    private IValueParameter<StringValue> HistogramNameParameter {
+      get { return (IValueParameter<StringValue>)Parameters["HistogramName"]; }
     }
-    private ValueParameter<BoolValue> StoreHistoryParameter {
-      get { return (ValueParameter<BoolValue>)Parameters["StoreHistory"]; }
+    private IValueParameter<BoolValue> StoreHistoryParameter {
+      get { return (IValueParameter<BoolValue>)Parameters["StoreHistory"]; }
     }
     public ILookupParameter<IntValue> IterationsParameter {
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Analyzers/OldestAverageYoungestAgeAnalyzer.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Analyzers/OldestAverageYoungestAgeAnalyzer.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Analyzers/OldestAverageYoungestAgeAnalyzer.cs	(revision 13127)
@@ -51,6 +51,6 @@
       get { return (IValueLookupParameter<DataTable>)Parameters["Ages"]; }
     }
-    public ValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
+    public IValueLookupParameter<ResultCollection> ResultsParameter {
+      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
     }
     #endregion
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/EldersSelector.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/EldersSelector.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/EldersSelector.cs	(revision 13127)
@@ -34,14 +34,14 @@
   [StorableClass]
   public sealed class EldersSelector : Selector {
-    private IScopeTreeLookupParameter<DoubleValue> AgeParameter {
+    public IScopeTreeLookupParameter<DoubleValue> AgeParameter {
       get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["Age"]; }
     }
-    private ILookupParameter<IntArray> AgeLimitsParameter {
+    public ILookupParameter<IntArray> AgeLimitsParameter {
       get { return (ILookupParameter<IntArray>)Parameters["AgeLimits"]; }
     }
-    private ILookupParameter<IntValue> NumberOfLayersParameter {
+    public ILookupParameter<IntValue> NumberOfLayersParameter {
       get { return (ILookupParameter<IntValue>)Parameters["NumberOfLayers"]; }
     }
-    private ILookupParameter<IntValue> LayerParameter {
+    public ILookupParameter<IntValue> LayerParameter {
       get { return (ILookupParameter<IntValue>)Parameters["Layer"]; }
     }
@@ -57,8 +57,8 @@
     public EldersSelector()
       : base() {
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Age"));
-      Parameters.Add(new LookupParameter<IntArray>("AgeLimits"));
-      Parameters.Add(new LookupParameter<IntValue>("NumberOfLayers"));
-      Parameters.Add(new LookupParameter<IntValue>("Layer"));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Age", "The age of individuals."));
+      Parameters.Add(new LookupParameter<IntArray>("AgeLimits", "The maximum ages for the Layers."));
+      Parameters.Add(new LookupParameter<IntValue>("NumberOfLayers", "The number of layers."));
+      Parameters.Add(new LookupParameter<IntValue>("Layer", "The number of the current Layer."));
     }
 
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastScopeCloner.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastScopeCloner.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastScopeCloner.cs	(revision 13127)
@@ -69,7 +69,7 @@
       scopes.Add(newScope);
 
-
       var next = new OperationCollection(base.Apply());
-      next.Insert(0, ExecutionContext.CreateChildOperation(NewScopeOperator, newScope));
+      if (NewScopeOperator != null)
+        next.Insert(0, ExecutionContext.CreateOperation(NewScopeOperator, newScope));
       return next;
     }
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/MatingPoolCreator.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/MatingPoolCreator.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/MatingPoolCreator.cs	(revision 13127)
@@ -31,5 +31,4 @@
   [StorableClass]
   public sealed class MatingPoolCreator : SingleSuccessorOperator {
-
     public IValueLookupParameter<IntValue> MatingPoolRangeParameter {
       get { return (IValueLookupParameter<IntValue>)Parameters["MatingPoolRange"]; }
@@ -55,7 +54,7 @@
     ///         /     |     \            /     |     \
     ///       Pop1   Pop2   Pop3  =>   Pop1   Pop2   Pop3
-    ///       /|\    /|\    /|\         /|\    /|\   /|\
-    ///       ABC    DEF    GHI         ABC    DEF   GHI
-    ///                                        ABC   DEF
+    ///       /|\    /|\    /|\         /|\   /|\    /|\
+    ///       ABC    DEF    GHI         ABC   DEF    GHI
+    ///                                       ABC    DEF
     /// </pre>
     /// </summary>
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/ReseedingController.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/ReseedingController.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/ReseedingController.cs	(revision 13127)
@@ -31,8 +31,8 @@
   [StorableClass]
   public sealed class ReseedingController : SingleSuccessorOperator {
-    private ILookupParameter<IntValue> GenerationsParameter {
+    public ILookupParameter<IntValue> GenerationsParameter {
       get { return (ILookupParameter<IntValue>)Parameters["Generations"]; }
     }
-    private ILookupParameter<IntValue> AgeGapParameter {
+    public ILookupParameter<IntValue> AgeGapParameter {
       get { return (ILookupParameter<IntValue>)Parameters["AgeGap"]; }
     }
@@ -59,7 +59,7 @@
     public ReseedingController()
       : base() {
-      Parameters.Add(new LookupParameter<IntValue>("Generations"));
-      Parameters.Add(new LookupParameter<IntValue>("AgeGap"));
-      Parameters.Add(new OperatorParameter("FirstLayerOperator"));
+      Parameters.Add(new LookupParameter<IntValue>("Generations", "The current number of generations."));
+      Parameters.Add(new ValueLookupParameter<IntValue>("AgeGap", "The frequency of reseeding the lowest layer and scaling factor for the age-limits for the layers."));
+      Parameters.Add(new OperatorParameter("FirstLayerOperator", "The Operator that is performed on the first layer if reseeding is required."));
     }
 
Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/WeightingReducer.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/WeightingReducer.cs	(revision 13126)
+++ branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/WeightingReducer.cs	(revision 13127)
@@ -33,5 +33,4 @@
   [StorableClass]
   public sealed class WeightingReducer : SingleSuccessorOperator {
-
     public IScopeTreeLookupParameter<DoubleValue> ParameterToReduce {
       get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["ParameterToReduce"]; }
