Index: trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/ArgumentCreater.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/ArgumentCreater.cs	(revision 3984)
+++ trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/ArgumentCreater.cs	(revision 3985)
@@ -136,5 +136,5 @@
         // call recursively for all subtree
         List<SymbolicExpressionTreeNode> subtrees = new List<SymbolicExpressionTreeNode>(branch.SubTrees);
-        while (branch.SubTrees.Count > 0) branch.SubTrees.RemoveAt(0);
+        while (branch.SubTrees.Count > 0) branch.RemoveSubTree(0);
         foreach (var subtree in subtrees) {
           branch.AddSubTree(ReplaceArgumentsInBranch(subtree, argumentTrees));
Index: trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/SubroutineCreater.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/SubroutineCreater.cs	(revision 3984)
+++ trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/SubroutineCreater.cs	(revision 3985)
@@ -168,5 +168,5 @@
       // remove the subtrees so that we can clone only the root node
       List<SymbolicExpressionTreeNode> subtrees = new List<SymbolicExpressionTreeNode>(node.SubTrees);
-      while (node.SubTrees.Count > 0) node.SubTrees.RemoveAt(0);
+      while (node.SubTrees.Count > 0) node.RemoveSubTree(0);
       // recursively apply function for subtrees or append a argument terminal node
       foreach (var subtree in subtrees) {
Index: trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/SubroutineDuplicater.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/SubroutineDuplicater.cs	(revision 3984)
+++ trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/ArchitectureManipulators/SubroutineDuplicater.cs	(revision 3985)
@@ -70,5 +70,5 @@
       string newFunctionName = allowedFunctionNames.Except(UsedFunctionNames(symbolicExpressionTree)).First();
       duplicatedDefunBranch.FunctionName = newFunctionName;
-      symbolicExpressionTree.Root.SubTrees.Add(duplicatedDefunBranch);
+      symbolicExpressionTree.Root.AddSubTree(duplicatedDefunBranch);
       duplicatedDefunBranch.Grammar = (ISymbolicExpressionGrammar)selectedBranch.Grammar.Clone();
       // add an invoke symbol for each branch that is allowed to invoke the original function
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/Symbolic/InteractiveSymbolicRegressionSolutionSimplifierView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/Symbolic/InteractiveSymbolicRegressionSolutionSimplifierView.cs	(revision 3984)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/Symbolic/InteractiveSymbolicRegressionSolutionSimplifierView.cs	(revision 3985)
@@ -112,5 +112,5 @@
       SymbolicExpressionTree tree = new SymbolicExpressionTree(root);
       foreach (SymbolicExpressionTreeNode node in this.simplifiedExpressionTree.IterateNodesPrefix()) {
-        start.SubTrees.Clear();
+        while(start.SubTrees.Count > 0) start.RemoveSubTree(0);
         start.AddSubTree(node);
         double constantTreeNodeValue = interpreter.GetSymbolicExpressionTreeValues(tree, Content.ProblemData.Dataset, trainingSamples).Median();
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/SymbolicSimplifier.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/SymbolicSimplifier.cs	(revision 3984)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/SymbolicSimplifier.cs	(revision 3985)
@@ -53,5 +53,5 @@
     private SymbolicExpressionTreeNode MacroExpand(SymbolicExpressionTreeNode root, SymbolicExpressionTreeNode node, IList<SymbolicExpressionTreeNode> argumentTrees) {
       List<SymbolicExpressionTreeNode> subtrees = new List<SymbolicExpressionTreeNode>(node.SubTrees);
-      while (node.SubTrees.Count > 0) node.SubTrees.RemoveAt(0);
+      while (node.SubTrees.Count > 0) node.RemoveSubTree(0);
       if (node.Symbol is InvokeFunction) {
         var invokeSym = node.Symbol as InvokeFunction;
@@ -214,6 +214,6 @@
       } else {
         var div = divSymbol.CreateTreeNode();
-        div.SubTrees.Add(a);
-        div.SubTrees.Add(b);
+        div.AddSubTree(a);
+        div.AddSubTree(b);
         return div;
       }
@@ -270,6 +270,6 @@
       } else {
         var add = addSymbol.CreateTreeNode();
-        add.SubTrees.Add(a);
-        add.SubTrees.Add(b);
+        add.AddSubTree(a);
+        add.AddSubTree(b);
         MergeVariables(add);
         return add;
