Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeTile.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeTile.cs	(revision 13060)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeTile.cs	(revision 13061)
@@ -109,5 +109,5 @@
 
     new private void Clear() {
-      Group.Clear();
+      base.Clear();
       primitivesToNodes.Clear();
       nodesToPrimitives.Clear();
@@ -129,5 +129,5 @@
       PreferredNodeWidth = 80;
       PreferredNodeHeight = 40;
-      Group = new Group(chart);
+      //      Group = new Group(chart);
 
       defaultBrush = new SolidBrush(Color.Transparent);
@@ -160,9 +160,9 @@
         if (node.SubtreeCount == 0) {
           rectangularPrimitive = new Rectangle(Chart, lowerLeft, upperRight) {
-            Font = defaultFont, Text = shortenedLabel, Brush = defaultBrush, Pen = defaultPen, MaximumFontSize = 12f
+            //            Font = defaultFont, Text = shortenedLabel, Brush = defaultBrush, Pen = defaultPen, MaximumFontSize = 12f
           };
         } else {
           rectangularPrimitive = new Ellipse(Chart, lowerLeft, upperRight) {
-            Font = defaultFont, Text = shortenedLabel, Brush = defaultBrush, Pen = defaultPen, MaximumFontSize = 12f
+            //            Font = defaultFont, Text = shortenedLabel, Brush = defaultBrush, Pen = defaultPen, MaximumFontSize = 12f
           };
         }
@@ -200,6 +200,6 @@
         Pen = defaultPen,
         Brush = defaultBrush,
-        Text = Label,
-        Font = defaultFont
+        //        Text = Label,
+        //        Font = defaultFont
       };
       this.Add(labelRect);
@@ -218,10 +218,14 @@
         var rpb = primitive as RectangularPrimitiveBase;
         if (rpb != null) {
-          rpb.SetPosition(rpb.LowerLeft.X, Size.Height - rpb.UpperRight.Y, rpb.UpperRight.X, Size.Height - rpb.LowerLeft.Y);
+          var lowerLeft = new PointD(rpb.LowerLeft.X, Size.Height - rpb.UpperRight.Y);
+          var upperRight = new PointD(rpb.UpperRight.X, Size.Height - rpb.LowerLeft.Y);
+          rpb.SetPosition(lowerLeft, upperRight);
 
         } else {
           var line = primitive as LinearPrimitiveBase;
           if (line != null) {
-            line.SetPosition(line.Start.X, Size.Height - line.Start.Y, line.End.X, Size.Height - line.End.Y);
+            var lowerLeft = new PointD(line.Start.X, Size.Height - line.Start.Y);
+            var upperRight = new PointD(line.End.X, Size.Height - line.End.Y);
+            line.SetPosition(lowerLeft, upperRight);
           }
         }
Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs	(revision 13060)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs	(revision 13061)
@@ -80,12 +80,12 @@
     }
 
-    public bool UpdateEnabled {
-      get { return Chart.UpdateEnabled; }
-      set { Chart.UpdateEnabled = value; }
-    }
-
-    public void EnforceUpdate() {
-      Chart.EnforceUpdate();
-    }
+    //    public bool UpdateEnabled {
+    //      get { return Chart.UpdateEnabled; }
+    //      set { Chart.UpdateEnabled = value; }
+    //    }
+
+    //    public void EnforceUpdate() {
+    //      Chart.EnforceUpdate();
+    //    }
 
     private Visualization.Rectangle TargetRectangle { get; set; }
@@ -118,5 +118,5 @@
 
     protected virtual void DrawGraph(double xIncrement, double yIncrement, double diameter) {
-      Chart.UpdateEnabled = false;
+      this.SuspendRendering();
       DrawInProgress = true;
 
@@ -160,5 +160,5 @@
           var pen = Pens.Transparent;
           var visualArc = AddArc(Chart, visualParent, visualNode, pen);
-          visualArc.OneLayerDown(); // send it behind the visual nodes
+          Chart.OneLayerDown(visualArc); // send it behind the visual nodes
           if (!arcMap.ContainsKey(Tuple.Create(visualParent, visualNode))) {
             arcMap.Add(Tuple.Create(visualParent, visualNode), visualArc);
@@ -167,7 +167,5 @@
       }
 
-      Chart.UpdateEnabled = true;
-      Chart.EnforceUpdate();
-
+      ResumeRendering();
       DrawInProgress = false;
     }
@@ -187,28 +185,28 @@
     #region event handlers
 
-    protected override void pictureBox_MouseMove(object sender, MouseEventArgs e) {
+    protected override void PictureBoxOnMouseMove(object sender, MouseEventArgs e) {
       if (!DrawInProgress) {
         switch (e.Button) {
           case MouseButtons.Left:
-            Chart.Mode = ChartMode.Select;
+            Mode = ChartMode.Select;
             Cursor = Cursors.Default;
             break;
           case MouseButtons.Middle:
-            Chart.Mode = ChartMode.Move;
+            Mode = ChartMode.Move;
             Cursor = Cursors.Hand;
             break;
         }
       }
-      base.pictureBox_MouseMove(sender, e);
-    }
-
-    protected override void pictureBox_MouseUp(object sender, MouseEventArgs e) {
+      base.PictureBoxOnMouseMove(sender, e);
+    }
+
+    protected override void PictureBoxOnMouseUp(object sender, MouseEventArgs e) {
       Cursor = Cursors.Default;
-      if (Chart.Mode == ChartMode.Move) {
-        Chart.Mode = ChartMode.Select;
+      if (Mode == ChartMode.Move) {
+        Mode = ChartMode.Select;
         return;
       }
-      if (Chart.Mode != ChartMode.Select) {
-        base.pictureBox_MouseUp(sender, e);
+      if (Mode != ChartMode.Select) {
+        base.PictureBoxOnMouseUp(sender, e);
         return;
       }
@@ -224,5 +222,5 @@
       UpdateSelectedVisualNode(); // redraw ancestries, mark node etc.
 
-      base.pictureBox_MouseUp(sender, e);
+      base.PictureBoxOnMouseUp(sender, e);
     }
 
@@ -230,5 +228,5 @@
       if (!LockGenealogy) {
         // new node has been selected, clean up
-        Chart.UpdateEnabled = false;
+        SuspendRendering();
         if (ModifierKeys != Keys.Shift) {
           // clear colors
@@ -247,6 +245,5 @@
 
       // update
-      UpdateEnabled = true;
-      EnforceUpdate();
+      ResumeRendering();
 
       if (SelectedVisualNode != null)
@@ -281,8 +278,12 @@
       double y2 = y1 + size.Height;
       if (TargetRectangle == null) {
-        TargetRectangle = new Visualization.Rectangle(Chart, x1, y1, x2, y2, new Pen(Color.Black), null);
+        var lowerLeft = new PointD(x1, y1);
+        var upperRight = new PointD(x2, y2);
+        TargetRectangle = new Visualization.Rectangle(Chart, lowerLeft, upperRight, new Pen(Color.Black), null);
         Chart.Group.Add(TargetRectangle);
       } else {
-        TargetRectangle.SetPosition(x1, y1, x2, y2);
+        var lowerLeft = new PointD(x1, y1);
+        var upperRight = new PointD(x2, y2);
+        TargetRectangle.SetPosition(lowerLeft, upperRight);
       }
     }
Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs	(revision 13060)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs	(revision 13061)
@@ -42,6 +42,6 @@
       // splitContainer
       // 
-      this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.splitContainer.Location = new System.Drawing.Point(3, 55);
@@ -61,6 +61,6 @@
       // viewHost
       // 
-      this.viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.viewHost.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
@@ -137,6 +137,6 @@
       // genealogyGraphChart
       // 
-      this.genealogyGraphChart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.genealogyGraphChart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.genealogyGraphChart.BackColor = System.Drawing.SystemColors.Control;
@@ -151,5 +151,4 @@
       this.genealogyGraphChart.TabIndex = 0;
       this.genealogyGraphChart.TraceFragments = false;
-      this.genealogyGraphChart.UpdateEnabled = true;
       // 
       // GenealogyGraphView
Index: /branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymbolicDataAnalysisGenealogyGraphView.cs
===================================================================
--- /branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymbolicDataAnalysisGenealogyGraphView.cs	(revision 13060)
+++ /branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymbolicDataAnalysisGenealogyGraphView.cs	(revision 13061)
@@ -139,5 +139,5 @@
         var subtreeIndex = graphNode.Data.IterateNodesPrefix().ToList().IndexOf(node);
         var traceGraph = TraceCalculator.TraceSubtree(graphNode, subtreeIndex, updateVertexWeights: false, updateSubtreeWeights: false, cacheTraceNodes: true);
-        genealogyGraphChart.UpdateEnabled = false;
+        genealogyGraphChart.SuspendRendering();
         genealogyGraphChart.ClearPrimitives(); // clear everything
         var rankMaximums = new Dictionary<double, double>();
@@ -177,6 +177,5 @@
           }
         }
-        genealogyGraphChart.UpdateEnabled = true;
-        genealogyGraphChart.EnforceUpdate();
+        genealogyGraphChart.ResumeRendering();
       } else {
         // perform matching like it was done before
@@ -218,9 +217,11 @@
 
       switch (args.Button) {
-        case MouseButtons.Left: {
+        case MouseButtons.Left:
+          {
             OnTreeNodeLeftClicked(subtree);
             break;
           }
-        case MouseButtons.Middle: {
+        case MouseButtons.Middle:
+          {
             OnTreeNodeMiddleClicked(subtree);
             break;
@@ -243,9 +244,8 @@
 
     private void graphChart_HighlightMatchingVertices(IEnumerable<IGenealogyGraphNode> vertices) {
-      genealogyGraphChart.Chart.UpdateEnabled = false;
+      genealogyGraphChart.SuspendRendering();
       genealogyGraphChart.ClearPrimitives();
       genealogyGraphChart.HighlightNodes(vertices);
-      genealogyGraphChart.Chart.UpdateEnabled = true;
-      genealogyGraphChart.Chart.EnforceUpdate();
+      genealogyGraphChart.ResumeRendering();
     }
 
