Index: /trunk/sources/HeuristicLab.Functions/FunctionBase.cs
===================================================================
--- /trunk/sources/HeuristicLab.Functions/FunctionBase.cs	(revision 428)
+++ /trunk/sources/HeuristicLab.Functions/FunctionBase.cs	(revision 429)
@@ -34,6 +34,6 @@
   /// </summary>
   public abstract class FunctionBase : OperatorBase, IFunction {
-    protected const string INITIALIZATION = "Initialization";
-    protected const string MANIPULATION = "Manipulation";
+    public const string INITIALIZATION = "Initialization";
+    public const string MANIPULATION = "Manipulation";
 
 
Index: /trunk/sources/HeuristicLab.StructureIdentification/GPOperatorGroup.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/GPOperatorGroup.cs	(revision 428)
+++ /trunk/sources/HeuristicLab.StructureIdentification/GPOperatorGroup.cs	(revision 429)
@@ -40,43 +40,4 @@
 
       var localVariableInfos = op.VariableInfos.Where(f => f.Local);
-
-      //if(op.GetVariable(GPOperatorLibrary.MANIPULATION) == null) {
-      //  CombinedOperator manipulationOperator = new CombinedOperator();
-      //  SequentialProcessor manipulationSequence = new SequentialProcessor();
-      //  foreach(IVariableInfo variableInfo in localVariableInfos) {
-      //    IOperator manipulator = GetDefaultManipulationOperator(variableInfo);
-      //    if (manipulator != null) {
-      //      manipulationSequence.AddSubOperator(manipulator);
-      //    }
-      //  }
-      //  if(manipulationSequence.SubOperators.Count > 0) {
-      //    op.AddVariable(new Variable(GPOperatorLibrary.MANIPULATION, manipulationOperator));
-
-      //    manipulationOperator.OperatorGraph.AddOperator(manipulationSequence);
-      //    manipulationOperator.OperatorGraph.InitialOperator = manipulationSequence;
-      //    foreach(IOperator subOp in manipulationSequence.SubOperators) {
-      //      manipulationOperator.OperatorGraph.AddOperator(subOp);
-      //    }
-      //  }
-      //}
-
-      //if(op.GetVariable(GPOperatorLibrary.INITIALIZATION) == null) {
-      //  CombinedOperator initOperator = new CombinedOperator();
-      //  SequentialProcessor initSequence = new SequentialProcessor();
-      //  foreach(IVariableInfo variableInfo in localVariableInfos) {
-      //    IOperator initializer = GetDefaultInitOperator(variableInfo);
-      //    if (initializer != null) {
-      //      initSequence.AddSubOperator(initializer);
-      //    }
-      //  }
-      //  if(initSequence.SubOperators.Count > 0) {
-      //    op.AddVariable(new Variable(GPOperatorLibrary.INITIALIZATION, initOperator));
-      //    initOperator.OperatorGraph.AddOperator(initSequence);
-      //    initOperator.OperatorGraph.InitialOperator = initSequence;
-      //    foreach(IOperator subOp in initSequence.SubOperators) {
-      //      initOperator.OperatorGraph.AddOperator(subOp);
-      //    }
-      //  }
-      //}
 
       // add a new typeid if necessary
@@ -243,35 +204,4 @@
     }
 
-
-    //private IOperator GetDefaultManipulationOperator(IVariableInfo variableInfo) {
-    //  IOperator shaker;
-    //  if(variableInfo.DataType == typeof(ConstrainedDoubleData) ||
-    //    variableInfo.DataType == typeof(ConstrainedIntData) ||
-    //    variableInfo.DataType == typeof(DoubleData) ||
-    //    variableInfo.DataType == typeof(IntData)) {
-    //    shaker = new NormalRandomAdder();
-    //  } else {
-    //    return null;
-    //  }
-    //  shaker.GetVariableInfo("Value").ActualName = variableInfo.FormalName;
-    //  shaker.Name = variableInfo.FormalName + " manipulation";
-    //  return shaker;
-    //}
-
-    //private IOperator GetDefaultInitOperator(IVariableInfo variableInfo) {
-    //  IOperator shaker;
-    //  if(variableInfo.DataType == typeof(ConstrainedDoubleData) ||
-    //    variableInfo.DataType == typeof(ConstrainedIntData) ||
-    //    variableInfo.DataType == typeof(DoubleData) ||
-    //    variableInfo.DataType == typeof(IntData)) {
-    //    shaker = new UniformRandomizer();
-    //  } else {
-    //    return null;
-    //  }
-    //  shaker.GetVariableInfo("Value").ActualName = variableInfo.FormalName;
-    //  shaker.Name = variableInfo.FormalName + " initialization";
-    //  return shaker;
-    //}
-
     public override void AddSubGroup(IOperatorGroup group) {
       throw new NotSupportedException();
Index: /trunk/sources/HeuristicLab.StructureIdentification/GPOperatorLibraryEditor.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/GPOperatorLibraryEditor.cs	(revision 428)
+++ /trunk/sources/HeuristicLab.StructureIdentification/GPOperatorLibraryEditor.cs	(revision 429)
@@ -33,4 +33,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Random;
+using HeuristicLab.Functions;
 
 namespace HeuristicLab.StructureIdentification {
@@ -54,5 +55,5 @@
 
       foreach(IOperator op in library.Group.Operators) {
-        if(op.GetVariable(GPOperatorLibrary.MANIPULATION) != null) {
+        if(op.GetVariable(FunctionBase.MANIPULATION) != null) {
           ListViewItem item = new ListViewItem();
           item.Text = op.Name;
@@ -61,5 +62,5 @@
           mutationListView.Items.Add(item);
         }
-        if(op.GetVariable(GPOperatorLibrary.INITIALIZATION) != null) {
+        if(op.GetVariable(FunctionBase.INITIALIZATION) != null) {
           ListViewItem item = new ListViewItem();
           item.Name = op.Name;
@@ -74,5 +75,5 @@
     private void GPOperatorLibraryView_OperatorAdded(object sender, EventArgs e) {
       IOperator op = ((OperatorEventArgs)e).op;
-      if (op.GetVariable(GPOperatorLibrary.MANIPULATION) != null) {
+      if(op.GetVariable(FunctionBase.MANIPULATION) != null) {
         ListViewItem operatorMutationItem = new ListViewItem();
         operatorMutationItem.Name = op.Name;
@@ -82,5 +83,5 @@
       }
 
-      if (op.GetVariable(GPOperatorLibrary.INITIALIZATION) != null) {
+      if(op.GetVariable(FunctionBase.INITIALIZATION) != null) {
         ListViewItem operatorInitItem = new ListViewItem();
         operatorInitItem.Name = op.Name;
@@ -133,5 +134,5 @@
     private void mutationListView_SelectedIndexChanged(object sender, EventArgs e) {
       if(mutationListView.SelectedItems.Count>0 && mutationListView.SelectedItems[0].Tag != null) {
-        IVariable variable = ((IOperator)mutationListView.SelectedItems[0].Tag).GetVariable(GPOperatorLibrary.MANIPULATION);
+        IVariable variable = ((IOperator)mutationListView.SelectedItems[0].Tag).GetVariable(FunctionBase.MANIPULATION);
         mutationVariableView.Enabled = true;
         mutationVariableView.Variable = variable;
@@ -143,5 +144,5 @@
     private void initListView_SelectedIndexChanged(object sender, EventArgs e) {
       if(initListView.SelectedItems.Count>0 && initListView.SelectedItems[0].Tag != null) {
-        IVariable variable = ((IOperator)initListView.SelectedItems[0].Tag).GetVariable(GPOperatorLibrary.INITIALIZATION);
+        IVariable variable = ((IOperator)initListView.SelectedItems[0].Tag).GetVariable(FunctionBase.INITIALIZATION);
         initVariableView.Enabled = true;
         initVariableView.Variable = variable;
Index: /trunk/sources/HeuristicLab.StructureIdentification/Manipulation/FullTreeShaker.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/Manipulation/FullTreeShaker.cs	(revision 428)
+++ /trunk/sources/HeuristicLab.StructureIdentification/Manipulation/FullTreeShaker.cs	(revision 429)
@@ -34,5 +34,5 @@
   public class FullTreeShaker : DelegatingOperator {
     public override string Description {
-      get { return "Manipulates all tree nodes for which a '"+GPOperatorLibrary.MANIPULATION+"' variable is defined."; }
+      get { return "Manipulates all tree nodes for which a '" + FunctionBase.MANIPULATION + "' variable is defined."; }
     }
 
@@ -57,7 +57,7 @@
 
       TreeGardener gardener = new TreeGardener(mt, library);
-      var parametricBranches = gardener.GetAllSubTrees(tree).Where(branch => branch.Function.GetVariable(GPOperatorLibrary.MANIPULATION) != null);
+      var parametricBranches = gardener.GetAllSubTrees(tree).Where(branch => branch.Function.GetVariable(FunctionBase.MANIPULATION) != null);
       foreach(IFunctionTree subTree in parametricBranches) {
-        IOperator mutation =(IOperator)subTree.Function.GetVariable(GPOperatorLibrary.MANIPULATION).Value;
+        IOperator mutation = (IOperator)subTree.Function.GetVariable(FunctionBase.MANIPULATION).Value;
 
         // store all local variables into a temporary scope
@@ -73,5 +73,5 @@
       // save all existing sub-scopes in a backup scope
       Scope backupScope = new Scope("backup");
-      foreach (Scope subScope in scope.SubScopes) {
+      foreach(Scope subScope in scope.SubScopes) {
         backupScope.AddSubScope(subScope);
       }
Index: /trunk/sources/HeuristicLab.StructureIdentification/Manipulation/OnePointShaker.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/Manipulation/OnePointShaker.cs	(revision 428)
+++ /trunk/sources/HeuristicLab.StructureIdentification/Manipulation/OnePointShaker.cs	(revision 429)
@@ -34,5 +34,5 @@
   public class OnePointShaker : DelegatingOperator {
     public override string Description {
-      get { return "Selects a random node of all tree-nodes that have a '"+GPOperatorLibrary.MANIPULATION+"' variable defined and manipulates the selected node."; }
+      get { return "Selects a random node of all tree-nodes that have a '"+FunctionBase.MANIPULATION+"' variable defined and manipulates the selected node."; }
     }
 
@@ -52,7 +52,7 @@
 
       // get all nodes for which a manipulation is defined
-      var parametricBranches = gardener.GetAllSubTrees(tree).Where(branch => branch.Function.GetVariable(GPOperatorLibrary.MANIPULATION) != null);
+      var parametricBranches = gardener.GetAllSubTrees(tree).Where(branch => branch.Function.GetVariable(FunctionBase.MANIPULATION) != null);
       IFunctionTree selectedBranch = parametricBranches.ElementAt(mt.Next(parametricBranches.Count()));
-      IOperator mutation = (IOperator)selectedBranch.Function.GetVariable(GPOperatorLibrary.MANIPULATION).Value;
+      IOperator mutation = (IOperator)selectedBranch.Function.GetVariable(FunctionBase.MANIPULATION).Value;
       CompositeOperation next = new CompositeOperation();
 
Index: /trunk/sources/HeuristicLab.StructureIdentification/TreeGardener.cs
===================================================================
--- /trunk/sources/HeuristicLab.StructureIdentification/TreeGardener.cs	(revision 428)
+++ /trunk/sources/HeuristicLab.StructureIdentification/TreeGardener.cs	(revision 429)
@@ -216,8 +216,8 @@
       Scope tempScope = new Scope("Temp. initialization scope");
 
-      var parametricTrees = trees.Where(t => t.Function.GetVariable(GPOperatorLibrary.INITIALIZATION) != null);
+      var parametricTrees = trees.Where(t => t.Function.GetVariable(FunctionBase.INITIALIZATION) != null);
       foreach(IFunctionTree tree in parametricTrees) {
         // enqueue an initialization operation for each operator with local variables 
-        IOperator initialization = (IOperator)tree.Function.GetVariable(GPOperatorLibrary.INITIALIZATION).Value;
+        IOperator initialization = (IOperator)tree.Function.GetVariable(FunctionBase.INITIALIZATION).Value;
         Scope initScope = new Scope();
         // copy the local variables into a temporary scope used for initialization
