Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithm.cs	(revision 13206)
@@ -280,5 +280,5 @@
 
       Parameters.Add(new ValueParameter<IntValue>("NumberOfLayers", "The number of layers.", new IntValue(10)));
-      Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions each layer.", new IntValue(100)));
+      Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions in each layer.", new IntValue(100)));
 
       Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction."));
@@ -293,5 +293,5 @@
       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<IntArray>("AgeLimits", "The maximum age an individual is allowed to reach in a certain layer.", 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 });
@@ -309,5 +309,5 @@
       var initializeAgeProcessor = new UniformSubScopesProcessor();
       var initializeAge = new VariableCreator() { Name = "Initialize Age" };
-      var initializeCurrentPopulationSize = new SubScopesCounter() { Name = "Init CurrentPopulationCounter" };
+      var initializeCurrentPopulationSize = new SubScopesCounter() { Name = "Initialize CurrentPopulationCounter" };
       var initializeLocalEvaluatedSolutions = new Assigner() { Name = "Initialize LayerEvaluatedSolutions" };
       var initializeGlobalEvaluatedSolutions = new DataReducer() { Name = "Initialize EvaluatedSolutions" };
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainLoop.cs	(revision 13206)
@@ -142,5 +142,5 @@
 
       Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfLayers", "The number of layers."));
-      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population."));
+      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population of solutions in each layer."));
       Parameters.Add(new LookupParameter<IntValue>("CurrentPopulationSize", "The current size of the population."));
 
@@ -156,5 +156,5 @@
       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<IntArray>("AgeLimits", "The maximum age an individual is allowed to reach in a certain layer."));
 
       Parameters.Add(new ValueLookupParameter<IntValue>("MatingPoolRange", "The range of sub - populations used for creating a mating pool. (1 = current + previous sub-population)"));
@@ -271,5 +271,5 @@
       var selectorProsessor = new UniformSubScopesProcessor();
       var eldersSelector = new EldersSelector();
-      var shiftToRightMigrator = new UnidirectionalRingMigrator() { Name = "Shift elders to next Layer" };
+      var shiftToRightMigrator = new UnidirectionalRingMigrator() { Name = "Shift elders to next layer" };
       var mergingProsessor = new UniformSubScopesProcessor();
       var mergingReducer = new MergingReducer();
@@ -324,5 +324,5 @@
       var openNewLayerCalculator = new ExpressionCalculator() { Name = "OpenNewLayer = Generations >= AgeLimits[OpenLayers - 1]" };
       var openNewLayerBranch = new ConditionalBranch() { Name = "OpenNewLayer?" };
-      var layerCreator = new LastScopeCloner() { Name = "Create Layer" };
+      var layerCreator = new LastLayerCloner() { Name = "Create Layer" };
       var updateLayerNumber = new Assigner() { Name = "Layer = OpenLayers" };
       var historyWiper = new ResultsHistoryWiper() { Name = "Clear History in Results" };
@@ -354,5 +354,5 @@
       openNewLayerBranch.TrueBranch = layerCreator;
 
-      layerCreator.NewScopeOperator = updateLayerNumber;
+      layerCreator.NewLayerOperator = updateLayerNumber;
       layerCreator.Successor = incrOpenLayers;
 
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainOperator.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainOperator.cs	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/AlpsGeneticAlgorithmMainOperator.cs	(revision 13206)
@@ -104,5 +104,5 @@
       Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
 
-      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population."));
+      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population of solutions in each layer."));
       Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
       Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/EldersSelector.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/EldersSelector.cs	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/EldersSelector.cs	(revision 13206)
@@ -31,5 +31,5 @@
 namespace HeuristicLab.Algorithms.ALPS {
 
-  [Item("EldersSelector", "Select all individuals which are to old for their current layer.")]
+  [Item("EldersSelector", "Select all individuals which are too old for their current layer.")]
   [StorableClass]
   public sealed class EldersSelector : Selector {
@@ -58,7 +58,7 @@
       : base() {
       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<IntArray>("AgeLimits", "The maximum age an individual is allowed to reach in a certain layer."));
       Parameters.Add(new LookupParameter<IntValue>("NumberOfLayers", "The number of layers."));
-      Parameters.Add(new LookupParameter<IntValue>("Layer", "The number of the current Layer."));
+      Parameters.Add(new LookupParameter<IntValue>("Layer", "The number of the current layer."));
     }
 
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj	(revision 13206)
@@ -137,5 +137,5 @@
     <Compile Include="Analyzers\OldestAverageYoungestAgeCalculator.cs" />
     <Compile Include="EldersSelector.cs" />
-    <Compile Include="LastScopeCloner.cs" />
+    <Compile Include="LastLayerCloner.cs" />
     <Compile Include="MatingPoolCreator.cs" />
     <Compile Include="Plugin.cs" />
@@ -148,12 +148,4 @@
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
-set ProjectDir=$(ProjectDir)
-set SolutionDir=$(SolutionDir)
-set Outdir=$(Outdir)
-
-call PreBuildEvent.cmd</PreBuildEvent>
-  </PropertyGroup>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
@@ -163,3 +155,18 @@
   </Target>
   -->
+  <PropertyGroup>
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd
+</PreBuildEvent>
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+export ProjectDir=$(ProjectDir)
+export SolutionDir=$(SolutionDir)
+
+$SolutionDir/PreBuildEvent.sh
+</PreBuildEvent>
+  </PropertyGroup>
 </Project>
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastLayerCloner.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastLayerCloner.cs	(revision 13206)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastLayerCloner.cs	(revision 13206)
@@ -0,0 +1,77 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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 System;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Algorithms.ALPS {
+  [Item("LastLayerCloner", "An operator that creates a new layer by cloning the current last one.")]
+  [StorableClass]
+  public sealed class LastLayerCloner : SingleSuccessorOperator {
+    public OperatorParameter NewLayerOperatorParameter {
+      get { return (OperatorParameter)Parameters["NewLayerOperator"]; }
+    }
+
+    public IOperator NewLayerOperator {
+      get { return NewLayerOperatorParameter.Value; }
+      set { NewLayerOperatorParameter.Value = value; }
+    }
+
+    [StorableConstructor]
+    private LastLayerCloner(bool deserializing) : base(deserializing) { }
+
+    private LastLayerCloner(LastLayerCloner original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LastLayerCloner(this, cloner);
+    }
+
+    public LastLayerCloner()
+      : base() {
+      Parameters.Add(new OperatorParameter("NewLayerOperator", "An operator that is performed on the new layer."));
+    }
+
+    public override IOperation Apply() {
+      var scopes = ExecutionContext.Scope.SubScopes;
+      if (scopes.Count < 1)
+        throw new ArgumentException("At least one layer must exist.");
+
+      var newScope = (IScope)scopes.Last().Clone();
+
+      int scopeNumber;
+      if (int.TryParse(newScope.Name, out scopeNumber))
+        newScope.Name = (scopeNumber + 1).ToString();
+
+      scopes.Add(newScope);
+
+      var next = new OperationCollection(base.Apply());
+      if (NewLayerOperator != null)
+        next.Insert(0, ExecutionContext.CreateOperation(NewLayerOperator, newScope));
+      return next;
+    }
+  }
+}
Index: anches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastScopeCloner.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/LastScopeCloner.cs	(revision 13205)
+++ 	(revision )
@@ -1,77 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 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 System;
-using System.Linq;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Algorithms.ALPS {
-  [Item("LastScopeCloner", "An operator that creates a new scope by cloning the current last one.")]
-  [StorableClass]
-  public sealed class LastScopeCloner : SingleSuccessorOperator {
-    public OperatorParameter NewScopeOperatorParameter {
-      get { return (OperatorParameter)Parameters["NewScopeOperator"]; }
-    }
-
-    public IOperator NewScopeOperator {
-      get { return NewScopeOperatorParameter.Value; }
-      set { NewScopeOperatorParameter.Value = value; }
-    }
-
-    [StorableConstructor]
-    private LastScopeCloner(bool deserializing) : base(deserializing) { }
-
-    private LastScopeCloner(LastScopeCloner original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new LastScopeCloner(this, cloner);
-    }
-
-    public LastScopeCloner()
-      : base() {
-      Parameters.Add(new OperatorParameter("NewScopeOperator", "An Operator that is performed on the new scope."));
-    }
-
-    public override IOperation Apply() {
-      var scopes = ExecutionContext.Scope.SubScopes;
-      if (scopes.Count < 1)
-        throw new ArgumentException("At least one layer must exist.");
-
-      var newScope = (IScope)scopes.Last().Clone();
-
-      int scopeNumber;
-      if (int.TryParse(newScope.Name, out scopeNumber))
-        newScope.Name = (scopeNumber + 1).ToString();
-
-      scopes.Add(newScope);
-
-      var next = new OperationCollection(base.Apply());
-      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 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/MatingPoolCreator.cs	(revision 13206)
@@ -28,5 +28,5 @@
 
 namespace HeuristicLab.Algorithms.ALPS {
-  [Item("MatingPoolCreator", "An operator which creating mating pools based on a set of sub-populations. For each sub-population, the individuals from the previous sub-population are copied into the current sub-population.")]
+  [Item("MatingPoolCreator", "An operator which creates mating pools based on a set of sub-populations. For each sub-population, the individuals from the previous sub-population are copied into the current sub-population.")]
   [StorableClass]
   public sealed class MatingPoolCreator : SingleSuccessorOperator {
@@ -45,9 +45,9 @@
     public MatingPoolCreator()
       : base() {
-      Parameters.Add(new ValueLookupParameter<IntValue>("MatingPoolRange", "The range of sub-populations used for creating a mating pool. (1 = current + previous sub-population", new IntValue(1)));
+      Parameters.Add(new ValueLookupParameter<IntValue>("MatingPoolRange", "The range of sub-populations used for creating a mating pool. (1 = current + previous sub-population)", new IntValue(1)));
     }
 
     /// <summary>
-    /// Copies the subscopes of the n previous scope into the current scope. (default n = 1)
+    /// Copies the subscopes of the n previous scopes into the current scope. (default n = 1)
     /// <pre>
     ///          __ scope __              __ scope __
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Properties/AssemblyInfo.cs.frame	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/Properties/AssemblyInfo.cs.frame	(revision 13206)
@@ -53,3 +53,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.11.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.12.$WCREV$")]
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/ReseedingController.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/ReseedingController.cs	(revision 13205)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS/3.3/ReseedingController.cs	(revision 13206)
@@ -61,5 +61,5 @@
       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."));
+      Parameters.Add(new OperatorParameter("FirstLayerOperator", "The operator that is performed on the first layer if reseeding is required."));
     }
 
