Index: branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs
===================================================================
--- branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 13124)
+++ 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;
