Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Addition.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Addition.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Addition.cs	(revision 2235)
@@ -38,4 +38,8 @@
       MaxSubTrees = 3;
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/And.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/And.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/And.cs	(revision 2235)
@@ -35,4 +35,8 @@
       MinSubTrees = 2; MaxSubTrees = 3;
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Average.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Average.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Average.cs	(revision 2235)
@@ -33,4 +33,8 @@
       MinSubTrees = 2; MaxSubTrees = 3;
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/ConstantFunctionTree.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/ConstantFunctionTree.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/ConstantFunctionTree.cs	(revision 2235)
@@ -30,8 +30,10 @@
     public double Value { get; set; }
 
-    public ConstantFunctionTree(Constant constant) : base(constant){
+    public ConstantFunctionTree(Constant constant)
+      : base(constant) {
     }
 
-    protected ConstantFunctionTree(ConstantFunctionTree original) : base(original){
+    protected ConstantFunctionTree(ConstantFunctionTree original)
+      : base(original) {
       Value = original.Value;
     }
@@ -57,4 +59,9 @@
     }
 
+    public override string ToString() {
+      return SymbolicExpressionExporter.GetName(this);
+    }
+
+    #region serialization
     public override object Clone() {
       return new ConstantFunctionTree(this);
@@ -73,4 +80,5 @@
       Value = XmlConvert.ToDouble(node.Attributes["Value"].Value);
     }
+    #endregion
 
     private IVariable CreateValueVariable() {
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Cosinus.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Cosinus.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Cosinus.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Division.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Division.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Division.cs	(revision 2235)
@@ -37,4 +37,8 @@
 
     public Division() : base() { }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Equal.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Equal.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Equal.cs	(revision 2235)
@@ -30,4 +30,8 @@
 
     public Equal() : base() { }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Exponential.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Exponential.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Exponential.cs	(revision 2235)
@@ -28,4 +28,8 @@
 
     public Exponential() : base() { }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/GreaterThan.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/GreaterThan.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/GreaterThan.cs	(revision 2235)
@@ -31,4 +31,7 @@
     public GreaterThan() : base() { }
 
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/IfThenElse.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/IfThenElse.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/IfThenElse.cs	(revision 2235)
@@ -34,4 +34,8 @@
       MinSubTrees = 3; MaxSubTrees = 3;
     }
+    
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/LessThan.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/LessThan.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/LessThan.cs	(revision 2235)
@@ -32,4 +32,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Logarithm.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Logarithm.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Logarithm.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Multiplication.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Multiplication.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Multiplication.cs	(revision 2235)
@@ -37,4 +37,8 @@
       MinSubTrees = 2; MaxSubTrees = 3;
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Not.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Not.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Not.cs	(revision 2235)
@@ -31,4 +31,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Or.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Or.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Or.cs	(revision 2235)
@@ -33,4 +33,7 @@
       MinSubTrees = 2; MaxSubTrees = 3;
     }
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Power.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Power.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Power.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Signum.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Signum.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Signum.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Sinus.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Sinus.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Sinus.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Sqrt.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Sqrt.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Sqrt.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Subtraction.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Subtraction.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Subtraction.cs	(revision 2235)
@@ -35,4 +35,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Tangens.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Tangens.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Tangens.cs	(revision 2235)
@@ -30,4 +30,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/VariableFunctionTree.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/VariableFunctionTree.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/VariableFunctionTree.cs	(revision 2235)
@@ -67,4 +67,9 @@
     }
 
+    public override string ToString() {
+      return SymbolicExpressionExporter.GetName(this);
+    }
+
+    #region serialization
     public override object Clone() {
       return new VariableFunctionTree(this);
@@ -91,4 +96,5 @@
       VariableName = node.Attributes["Variable"].Value;
     }
+    #endregion
 
     private IVariable CreateSampleOffsetVariable() {
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Xor.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Xor.cs	(revision 2222)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Symbols/Xor.cs	(revision 2235)
@@ -32,4 +32,8 @@
       : base() {
     }
+
+    public override HeuristicLab.GP.Interfaces.IFunctionTree GetTreeNode() {
+      return new FunctionTreeBase(this);
+    }
   }
 }
