Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationAllPositionsManipulator.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationAllPositionsManipulator.cs	(revision 5303)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationAllPositionsManipulator.cs	(revision 5303)
@@ -0,0 +1,37 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  // todo: item name/descr...
+  [StorableClass]
+  public class ParameterConfigurationAllPositionsManipulator : ParameterConfigurationManipulator {
+
+    public ParameterConfigurationAllPositionsManipulator() { }
+    [StorableConstructor]
+    protected ParameterConfigurationAllPositionsManipulator(bool deserializing) : base(deserializing) { }
+    protected ParameterConfigurationAllPositionsManipulator(ParameterConfigurationAllPositionsManipulator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ParameterConfigurationAllPositionsManipulator(this, cloner);
+    }
+
+    public sealed override IOperation Apply() {
+      Apply(RandomParameter.ActualValue, ParameterConfigurationTreeParameter.ActualValue, IntValueManipulatorParameter.ActualValue, DoubleValueManipulatorParameter.ActualValue);
+      return base.Apply();
+    }
+
+    public static void Apply(IRandom random, IValueConfiguration configuration, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator) {
+      configuration.Mutate(random, Mutate, intValueManipulator, doubleValueManipulator);
+    }
+  }
+}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationManipulator.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationManipulator.cs	(revision 5277)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationManipulator.cs	(revision 5303)
@@ -14,5 +14,5 @@
   // todo: item name/descr...
   [StorableClass]
-  public class ParameterConfigurationManipulator : SingleSuccessorOperator, IParameterConfigurationManipulator, IStochasticOperator {
+  public abstract class ParameterConfigurationManipulator : SingleSuccessorOperator, IParameterConfigurationManipulator, IStochasticOperator {
     public override bool CanChangeName {
       get { return false; }
@@ -44,9 +44,6 @@
       : base(original, cloner) {
     }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new ParameterConfigurationManipulator(this, cloner);
-    }
 
-    public sealed override IOperation Apply() {
+    public override IOperation Apply() {
       Apply(RandomParameter.ActualValue, ParameterConfigurationTreeParameter.ActualValue, IntValueManipulatorParameter.ActualValue, DoubleValueManipulatorParameter.ActualValue);
       return base.Apply();
@@ -57,5 +54,5 @@
     }
 
-    private static void Mutate(IRandom random, IOptimizable configuration, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator) {
+    protected static void Mutate(IRandom random, IOptimizable configuration, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator) {
       var vc = configuration as IValueConfiguration;
       var pc = configuration as IParameterConfiguration;
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationOnePositionsManipulator.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationOnePositionsManipulator.cs	(revision 5303)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/Manipulators/ParameterConfigurationOnePositionsManipulator.cs	(revision 5303)
@@ -0,0 +1,38 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  // todo: item name/descr...
+  [StorableClass]
+  public class ParameterConfigurationOnePositionsManipulator : ParameterConfigurationManipulator {
+
+    public ParameterConfigurationOnePositionsManipulator() { }
+    [StorableConstructor]
+    protected ParameterConfigurationOnePositionsManipulator(bool deserializing) : base(deserializing) { }
+    protected ParameterConfigurationOnePositionsManipulator(ParameterConfigurationOnePositionsManipulator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ParameterConfigurationOnePositionsManipulator(this, cloner);
+    }
+
+    public sealed override IOperation Apply() {
+      Apply(RandomParameter.ActualValue, ParameterConfigurationTreeParameter.ActualValue, IntValueManipulatorParameter.ActualValue, DoubleValueManipulatorParameter.ActualValue);
+      return base.Apply();
+    }
+
+    public static void Apply(IRandom random, ParameterConfigurationTree configuration, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator) {
+      IOptimizable optimizable = configuration.GetRandomOptimizable(random);
+      Mutate(random, optimizable, intValueManipulator, doubleValueManipulator);
+    }
+  }
+}
