Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionAfterCrossoverOperator.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionAfterCrossoverOperator.cs	(revision 11638)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionAfterCrossoverOperator.cs	(revision 11694)
@@ -23,12 +23,27 @@
 using System.Collections.Generic;
 using System.Linq;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 using HeuristicLab.EvolutionTracking;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
   public class SymbolicDataAnalysisExpressionAfterCrossoverOperator : AfterCrossoverOperator<ISymbolicExpressionTree> {
+    public SymbolicDataAnalysisExpressionAfterCrossoverOperator() { }
+
+    protected SymbolicDataAnalysisExpressionAfterCrossoverOperator(SymbolicDataAnalysisExpressionAfterCrossoverOperator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicDataAnalysisExpressionAfterCrossoverOperator(this, cloner);
+    }
+
+    [StorableConstructor]
+    protected SymbolicDataAnalysisExpressionAfterCrossoverOperator(bool deserializing) : base(deserializing) { }
+
     public override IOperation Apply() {
-      var childVertex = (IGenealogyGraphNode<ISymbolicExpressionTree>)GenealogyGraph.GetByContent(ChildParameter.ActualValue);
+      var childVertex = GenealogyGraph.GetByContent(ChildParameter.ActualValue);
       var arcs = childVertex.InArcs.ToList();
       var nodes0 = (List<ISymbolicExpressionTreeNode>)arcs[0].Data;
Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionAfterManipulatorOperator.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionAfterManipulatorOperator.cs	(revision 11638)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionAfterManipulatorOperator.cs	(revision 11694)
@@ -21,10 +21,25 @@
 
 using System.Linq;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 using HeuristicLab.EvolutionTracking;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
   public class SymbolicDataAnalysisExpressionAfterManipulatorOperator : AfterManipulatorOperator<ISymbolicExpressionTree> {
+    public SymbolicDataAnalysisExpressionAfterManipulatorOperator() { }
+
+    protected SymbolicDataAnalysisExpressionAfterManipulatorOperator(SymbolicDataAnalysisExpressionAfterManipulatorOperator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicDataAnalysisExpressionAfterManipulatorOperator(this, cloner);
+    }
+
+    [StorableConstructor]
+    protected SymbolicDataAnalysisExpressionAfterManipulatorOperator(bool deserializing) : base(deserializing) { }
+
     public override IOperation Apply() {
       var child = ChildParameter.ActualValue;
Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionBeforeCrossoverOperator.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionBeforeCrossoverOperator.cs	(revision 11638)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionBeforeCrossoverOperator.cs	(revision 11694)
@@ -21,10 +21,25 @@
 
 using System.Linq;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 using HeuristicLab.EvolutionTracking;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
   public class SymbolicDataAnalysisExpressionBeforeCrossoverOperator : BeforeCrossoverOperator<ISymbolicExpressionTree> {
+    public SymbolicDataAnalysisExpressionBeforeCrossoverOperator() { }
+
+    protected SymbolicDataAnalysisExpressionBeforeCrossoverOperator(SymbolicDataAnalysisExpressionBeforeCrossoverOperator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicDataAnalysisExpressionBeforeCrossoverOperator(this, cloner);
+    }
+
+    [StorableConstructor]
+    protected SymbolicDataAnalysisExpressionBeforeCrossoverOperator(bool deserializing) : base(deserializing) { }
+
     public override IOperation Apply() {
       var result = base.Apply(); // the base operator will add the child to the graph before the actual crossover operation takes place
Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionBeforeManipulatorOperator.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionBeforeManipulatorOperator.cs	(revision 11638)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysisExpressionBeforeManipulatorOperator.cs	(revision 11694)
@@ -21,10 +21,25 @@
 
 using System.Linq;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 using HeuristicLab.EvolutionTracking;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
   public class SymbolicDataAnalysisExpressionBeforeManipulatorOperator : BeforeManipulatorOperator<ISymbolicExpressionTree> {
+    public SymbolicDataAnalysisExpressionBeforeManipulatorOperator() { }
+
+    protected SymbolicDataAnalysisExpressionBeforeManipulatorOperator(SymbolicDataAnalysisExpressionBeforeManipulatorOperator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SymbolicDataAnalysisExpressionBeforeManipulatorOperator(this, cloner);
+    }
+
+    [StorableConstructor]
+    protected SymbolicDataAnalysisExpressionBeforeManipulatorOperator(bool deserializing) : base(deserializing) { }
+
     public override IOperation Apply() {
       // the call below does the following things:
