Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/AlpsSsGeneticAlgorithm.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/AlpsSsGeneticAlgorithm.cs	(revision 12156)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/AlpsSsGeneticAlgorithm.cs	(revision 12157)
@@ -131,5 +131,5 @@
       var randomCreator = new RandomCreator();
       var workingScopeCreator = new NamedSubScopesCreator() { Name = "Create WorkingScope and Layers-Scope" };
-      var layersProcessor = new SubScopesProcessor();
+      var layersProcessor = new NamedSubScopeProcessor() { Name = "Process Layers-Scope" };
       var layerCreator = new SubScopesCreator() { Name = "Create Layer" };
       var layerProcessor = new /*Layer*/UniformSubScopesProcessor();
@@ -152,6 +152,6 @@
       workingScopeCreator.Successor = layersProcessor;
 
-      layersProcessor.Operators.Add(new EmptyOperator());
-      layersProcessor.Operators.Add(layerCreator);
+      layersProcessor.TargetScopeParameter.ActualName = "Layers";
+      layersProcessor.Operator = layerCreator;
 
       layerCreator.NumberOfSubScopesParameter.ActualName = "NumberOfLayers";
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/HeuristicLab.Algorithms.ALPS.SteadyState-3.3.csproj
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/HeuristicLab.Algorithms.ALPS.SteadyState-3.3.csproj	(revision 12156)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/HeuristicLab.Algorithms.ALPS.SteadyState-3.3.csproj	(revision 12157)
@@ -138,4 +138,5 @@
     <Compile Include="AlpsSsGeneticAlgorithmMainOperator.cs" />
     <Compile Include="AlpsSsMover.cs" />
+    <Compile Include="NamedSubScopeProcessor.cs" />
     <Compile Include="NamedSubScopesCreator.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/NamedSubScopeProcessor.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/NamedSubScopeProcessor.cs	(revision 12157)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/NamedSubScopeProcessor.cs	(revision 12157)
@@ -0,0 +1,70 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 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.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Operators;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+
+namespace HeuristicLab.Algorithms.ALPS.SteadyState {
+  [Item("NamedSubScopeProcessor", "")]
+  [StorableClass]
+  public class NamedSubScopeProcessor : SingleSuccessorOperator {
+
+    #region Parameter Properties
+    private OperatorParameter OperatorParameter {
+      get { return (OperatorParameter)Parameters["Operator"]; }
+    }
+    public ILookupParameter<IScope> TargetScopeParameter {
+      get { return (ILookupParameter<IScope>)Parameters["TargetScope"]; }
+    }
+    #endregion
+
+    public IOperator Operator {
+      get { return OperatorParameter.Value; }
+      set { OperatorParameter.Value = value; }
+    }
+
+    [StorableConstructor]
+    protected NamedSubScopeProcessor(bool deserializing) : base(deserializing) { }
+    public NamedSubScopeProcessor()
+      : base() {
+      Parameters.Add(new OperatorParameter("Operator", "The operator which should be applied on all sub-scopes of the current scope."));
+      Parameters.Add(new LookupParameter<IScope>("TargetScope"));
+    }
+    protected NamedSubScopeProcessor(NamedSubScopeProcessor original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new NamedSubScopeProcessor(this, cloner);
+    }
+
+    public override IOperation Apply() {
+      var next = new OperationCollection(base.Apply());
+      var targetScope = TargetScopeParameter.ActualValue;
+      next.Insert(0, ExecutionContext.CreateOperation(Operator, targetScope));
+      return next;
+    }
+  }
+}
Index: /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/NamedSubScopesCreator.cs
===================================================================
--- /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/NamedSubScopesCreator.cs	(revision 12156)
+++ /branches/ALPS/HeuristicLab.Algorithms.ALPS.SteadyState/3.3/NamedSubScopesCreator.cs	(revision 12157)
@@ -51,8 +51,13 @@
 
     public override IOperation Apply() {
+      var intermediateParameters = new LayerIntermediateParameter();
       foreach (string name in NamesParameter.Value) {
-        ExecutionContext.Scope.SubScopes.Add(new Scope(name));
+        var scope = new Scope(name);
+        ExecutionContext.Scope.SubScopes.Add(scope);
+        intermediateParameters.Add(new ValueParameter<IScope>(name, scope));
       }
-      return base.Apply();
+
+      var intermediateContext = new ExecutionContext(ExecutionContext.Parent, intermediateParameters, ExecutionContext.Scope);
+      return Successor != null ? intermediateContext.CreateChildOperation(Successor) : null;
     }
   }
