Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs	(revision 11503)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphChart.cs	(revision 11506)
@@ -50,5 +50,9 @@
     }
 
-    public IGenealogyGraphNode SelectedGraphNode { get; private set; }
+    public IGenealogyGraphNode SelectedGraphNode {
+      get {
+        return SelectedVisualNode == null ? null : SelectedVisualNode.Data;
+      }
+    }
 
     private void Clear() {
@@ -70,5 +74,5 @@
     private Visualization.Rectangle TargetRectangle { get; set; }
     private bool DrawInProgress { get; set; } // do not try to update the chart while the drawing is not finished
-    private VisualGenealogyGraphNode SelectedVisualNode { get; set; }
+    protected VisualGenealogyGraphNode SelectedVisualNode { get; set; }
 
     private VisualGenealogyGraphNode GetMappedNode(IGenealogyGraphNode node) {
@@ -156,10 +160,17 @@
 
     public event MouseEventHandler GenealogyGraphNodeClicked;
-    private void OnGenealogyGraphNodeClicked(object sender, MouseEventArgs e) {
+    protected void OnGenealogyGraphNodeClicked(object sender, MouseEventArgs e) {
       var clicked = GenealogyGraphNodeClicked;
       if (clicked != null) clicked(sender, e);
     }
 
+    public event MouseEventHandler GenealogyGraphNodeDoubleClicked;
+    protected void OnGenealogyGraphNodeDoubleClicked(object sender, MouseEventArgs e) {
+      var doubleClicked = GenealogyGraphNodeDoubleClicked;
+      if (doubleClicked != null)
+        doubleClicked(sender, e);
+    }
     #region event handlers
+
     protected override void pictureBox_MouseMove(object sender, MouseEventArgs e) {
       if (!DrawInProgress) {
@@ -195,5 +206,4 @@
       SelectedVisualNode = visualNodes[0] as VisualGenealogyGraphNode;
       if (SelectedVisualNode == null) return;
-      SelectedGraphNode = SelectedVisualNode.Data;
 
       if (!LockGenealogy) {
@@ -334,4 +344,13 @@
       Chart.EnforceUpdate();
     }
+
+    public void HighlightArc(IGenealogyGraphNode source, IGenealogyGraphNode target) {
+      var arc = GetMappedArc(source, target) ??
+                AddArc(Chart, GetMappedNode(source), GetMappedNode(target), new Pen(Color.Transparent));
+      var start = new Point((int)arc.Start.X, (int)arc.Start.Y);
+      var end = new Point((int)arc.End.X, (int)arc.End.Y);
+      arc.Pen = new Pen(Color.Transparent);
+      arc.Pen.Brush = new LinearGradientBrush(start, end, source.GetColor(), target.GetColor());
+    }
   }
 
Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs	(revision 11503)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/GenealogyGraphView.Designer.cs	(revision 11506)
@@ -26,14 +26,10 @@
     private void InitializeComponent() {
       this.splitContainer = new System.Windows.Forms.SplitContainer();
-      this.panel1 = new System.Windows.Forms.Panel();
-      this.panel2 = new System.Windows.Forms.Panel();
+      this.genealogyGraphChart = new HeuristicLab.EvolutionTracking.Views.GenealogyGraphChart();
       this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.genealogyGraphChart = new HeuristicLab.EvolutionTracking.Views.GenealogyGraphChart();
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
       this.splitContainer.Panel1.SuspendLayout();
       this.splitContainer.Panel2.SuspendLayout();
       this.splitContainer.SuspendLayout();
-      this.panel1.SuspendLayout();
-      this.panel2.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -46,46 +42,12 @@
       // splitContainer.Panel1
       // 
-      this.splitContainer.Panel1.Controls.Add(this.panel1);
+      this.splitContainer.Panel1.Controls.Add(this.genealogyGraphChart);
       // 
       // splitContainer.Panel2
       // 
-      this.splitContainer.Panel2.Controls.Add(this.panel2);
-      this.splitContainer.Size = new System.Drawing.Size(1128, 700);
-      this.splitContainer.SplitterDistance = 500;
+      this.splitContainer.Panel2.Controls.Add(this.viewHost);
+      this.splitContainer.Size = new System.Drawing.Size(894, 678);
+      this.splitContainer.SplitterDistance = 417;
       this.splitContainer.TabIndex = 0;
-      // 
-      // panel1
-      // 
-      this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-      this.panel1.Controls.Add(this.genealogyGraphChart);
-      this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.panel1.Location = new System.Drawing.Point(0, 0);
-      this.panel1.Name = "panel1";
-      this.panel1.Size = new System.Drawing.Size(500, 700);
-      this.panel1.TabIndex = 0;
-      // 
-      // panel2
-      // 
-      this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-      this.panel2.Controls.Add(this.viewHost);
-      this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.panel2.Location = new System.Drawing.Point(0, 0);
-      this.panel2.Name = "panel2";
-      this.panel2.Size = new System.Drawing.Size(624, 700);
-      this.panel2.TabIndex = 0;
-      // 
-      // viewHost
-      // 
-      this.viewHost.Caption = "View";
-      this.viewHost.Content = null;
-      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.viewHost.Enabled = false;
-      this.viewHost.Location = new System.Drawing.Point(0, 0);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.ReadOnly = false;
-      this.viewHost.Size = new System.Drawing.Size(622, 698);
-      this.viewHost.TabIndex = 0;
-      this.viewHost.ViewsLabelVisible = true;
-      this.viewHost.ViewType = null;
       // 
       // genealogyGraphChart
@@ -99,6 +61,21 @@
       this.genealogyGraphChart.ScaleOnResize = true;
       this.genealogyGraphChart.SimpleLineages = false;
-      this.genealogyGraphChart.Size = new System.Drawing.Size(498, 698);
+      this.genealogyGraphChart.Size = new System.Drawing.Size(417, 678);
       this.genealogyGraphChart.TabIndex = 2;
+      this.genealogyGraphChart.TraceFragments = false;
+      // 
+      // viewHost
+      // 
+      this.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(0, 0);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(473, 678);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewsLabelVisible = true;
+      this.viewHost.ViewType = null;
       // 
       // GenealogyGraphView
@@ -108,11 +85,9 @@
       this.Controls.Add(this.splitContainer);
       this.Name = "GenealogyGraphView";
-      this.Size = new System.Drawing.Size(1128, 700);
+      this.Size = new System.Drawing.Size(894, 678);
       this.splitContainer.Panel1.ResumeLayout(false);
       this.splitContainer.Panel2.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
       this.splitContainer.ResumeLayout(false);
-      this.panel1.ResumeLayout(false);
-      this.panel2.ResumeLayout(false);
       this.ResumeLayout(false);
 
@@ -123,6 +98,4 @@
     protected System.Windows.Forms.SplitContainer splitContainer;
     protected MainForm.WindowsForms.ViewHost viewHost;
-    protected System.Windows.Forms.Panel panel1;
-    protected System.Windows.Forms.Panel panel2;
     protected GenealogyGraphChart genealogyGraphChart;
 
Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.Designer.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.Designer.cs	(revision 11503)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.Designer.cs	(revision 11506)
@@ -49,11 +49,11 @@
       this.components = new System.ComponentModel.Container();
       this.splitContainer1 = new System.Windows.Forms.SplitContainer();
-      this.genealogyGraphChart = new HeuristicLab.Problems.DataAnalysis.Symbolic.Views.SymbolicDataAnalysisExpressionGenealogyGraphChart();
       this.symbolicExpressionTreeChart = new HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views.SymbolicExpressionTreeChart();
       this.groupBox1 = new System.Windows.Forms.GroupBox();
+      this.hotPaths_button = new System.Windows.Forms.Button();
       this.simpleLineages_checkBox = new System.Windows.Forms.CheckBox();
       this.lockGraph_checkBox = new System.Windows.Forms.CheckBox();
       this.trace_checkBox = new System.Windows.Forms.CheckBox();
-      this.hotPaths_button = new System.Windows.Forms.Button();
+      this.genealogyGraphChart = new HeuristicLab.Problems.DataAnalysis.Symbolic.Views.SymbolicDataAnalysisExpressionGenealogyGraphChart();
       ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
       this.splitContainer1.Panel1.SuspendLayout();
@@ -65,4 +65,7 @@
       // splitContainer1
       // 
+      this.splitContainer1.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.splitContainer1.Location = new System.Drawing.Point(0, 57);
       this.splitContainer1.Name = "splitContainer1";
@@ -75,30 +78,18 @@
       // 
       this.splitContainer1.Panel2.Controls.Add(this.symbolicExpressionTreeChart);
-      this.splitContainer1.Size = new System.Drawing.Size(1247, 698);
-      this.splitContainer1.SplitterDistance = 607;
+      this.splitContainer1.Size = new System.Drawing.Size(1244, 695);
+      this.splitContainer1.SplitterDistance = 605;
       this.splitContainer1.TabIndex = 0;
       // 
-      // genealogyGraphChart
-      // 
-      this.genealogyGraphChart.BackColor = System.Drawing.SystemColors.Control;
-      this.genealogyGraphChart.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.genealogyGraphChart.GenealogyGraph = null;
-      this.genealogyGraphChart.Location = new System.Drawing.Point(0, 0);
-      this.genealogyGraphChart.LockGenealogy = false;
-      this.genealogyGraphChart.Name = "genealogyGraphChart";
-      this.genealogyGraphChart.ScaleOnResize = true;
-      this.genealogyGraphChart.SimpleLineages = false;
-      this.genealogyGraphChart.Size = new System.Drawing.Size(607, 698);
-      this.genealogyGraphChart.TabIndex = 0;
-      this.genealogyGraphChart.TraceFragments = false;
-      // 
       // symbolicExpressionTreeChart
       // 
+      this.symbolicExpressionTreeChart.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.symbolicExpressionTreeChart.BackgroundColor = System.Drawing.Color.White;
-      this.symbolicExpressionTreeChart.Dock = System.Windows.Forms.DockStyle.Fill;
       this.symbolicExpressionTreeChart.LineColor = System.Drawing.Color.Black;
       this.symbolicExpressionTreeChart.Location = new System.Drawing.Point(0, 0);
       this.symbolicExpressionTreeChart.Name = "symbolicExpressionTreeChart";
-      this.symbolicExpressionTreeChart.Size = new System.Drawing.Size(636, 698);
+      this.symbolicExpressionTreeChart.Size = new System.Drawing.Size(635, 692);
       this.symbolicExpressionTreeChart.Spacing = 5;
       this.symbolicExpressionTreeChart.SuspendRepaint = false;
@@ -109,4 +100,6 @@
       // groupBox1
       // 
+      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.groupBox1.Controls.Add(this.hotPaths_button);
       this.groupBox1.Controls.Add(this.simpleLineages_checkBox);
@@ -115,8 +108,18 @@
       this.groupBox1.Location = new System.Drawing.Point(3, 3);
       this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(1195, 48);
+      this.groupBox1.Size = new System.Drawing.Size(1241, 48);
       this.groupBox1.TabIndex = 4;
       this.groupBox1.TabStop = false;
       this.groupBox1.Text = "Controls";
+      // 
+      // hotPaths_button
+      // 
+      this.hotPaths_button.Location = new System.Drawing.Point(263, 15);
+      this.hotPaths_button.Name = "hotPaths_button";
+      this.hotPaths_button.Size = new System.Drawing.Size(75, 23);
+      this.hotPaths_button.TabIndex = 7;
+      this.hotPaths_button.Text = "Hot paths";
+      this.hotPaths_button.UseVisualStyleBackColor = true;
+      this.hotPaths_button.Click += new System.EventHandler(this.hotPaths_button_Click);
       // 
       // simpleLineages_checkBox
@@ -153,13 +156,19 @@
       this.trace_checkBox.CheckedChanged += new System.EventHandler(this.trace_checkBox_CheckedChanged);
       // 
-      // hotPaths_button
-      // 
-      this.hotPaths_button.Location = new System.Drawing.Point(263, 15);
-      this.hotPaths_button.Name = "hotPaths_button";
-      this.hotPaths_button.Size = new System.Drawing.Size(75, 23);
-      this.hotPaths_button.TabIndex = 7;
-      this.hotPaths_button.Text = "Hot paths";
-      this.hotPaths_button.UseVisualStyleBackColor = true;
-      this.hotPaths_button.Click += new System.EventHandler(this.hotPaths_button_Click);
+      // genealogyGraphChart
+      // 
+      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;
+      this.genealogyGraphChart.GenealogyGraph = null;
+      this.genealogyGraphChart.Location = new System.Drawing.Point(-5, 0);
+      this.genealogyGraphChart.LockGenealogy = false;
+      this.genealogyGraphChart.Name = "genealogyGraphChart";
+      this.genealogyGraphChart.ScaleOnResize = true;
+      this.genealogyGraphChart.SimpleLineages = false;
+      this.genealogyGraphChart.Size = new System.Drawing.Size(607, 692);
+      this.genealogyGraphChart.TabIndex = 0;
+      this.genealogyGraphChart.TraceFragments = false;
       // 
       // SymboldDataAnalysisGenealogyView
Index: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.cs
===================================================================
--- branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.cs	(revision 11503)
+++ branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/SymboldDataAnalysisGenealogyView.cs	(revision 11506)
@@ -78,17 +78,17 @@
       var tree = graphNode.Data;
       symbolicExpressionTreeChart.Tree = tree;
-
       if (graphNode.InArcs.Any()) {
         var fragment = graphNode.InArcs.Last().Data as IFragment<ISymbolicExpressionTreeNode>;
         if (fragment != null) {
           treeChart_HighlightSubtree(graphNode.Data.NodeAt(fragment.Index1));
-        } else {
-          var td = graphNode.InArcs.Last().Data as Tuple<int, int, int, int>;
-          if (td != null) {
-            var s = graphNode.Data.NodeAt(td.Item1);
-            var f = graphNode.Data.NodeAt(td.Item2);
-            treeChart_HighlightSubtree(s, Color.Orange);
-            treeChart_HighlightSubtree(f, Color.RoyalBlue);
-          }
+        }
+      }
+      if (graphNode.OutArcs.Any()) {
+        var td = graphNode.OutArcs.Last().Data as Tuple<int, int, int, int>;
+        if (td != null) {
+          var s = graphNode.Data.NodeAt(td.Item3); // subtree index
+          var f = graphNode.Data.NodeAt(td.Item4); // fragment index 
+          treeChart_HighlightSubtree(s, Color.Orange);
+          treeChart_HighlightSubtree(f, Color.RoyalBlue);
         }
       }
@@ -98,6 +98,8 @@
       var visualNode = (VisualGenealogyGraphNode)sender;
       var graphNode = (IGenealogyGraphNode<ISymbolicExpressionTree>)visualNode.Data;
-      var tree = graphNode.Data;
-      MainFormManager.MainForm.ShowContent(tree);
+      //      var tree = graphNode.Data;
+      //      var model = new RegressionModel();
+      //      var solution = new RegressionSolution()
+      //      MainFormManager.MainForm.ShowContent(tree);
     }
 
@@ -117,5 +119,11 @@
         var subtreeIndex = graphNode.Data.IterateNodesPrefix().ToList().IndexOf(subtree);
         var fragmentGraph = SymbolicDataAnalysisExpressionTracing.TraceSubtree(graphNode, subtreeIndex);
+
         if (fragmentGraph.Vertices.Any()) {
+          var genealogyNodes = fragmentGraph.Vertices.Select(v => Content.GetByContent(v.Data));
+          genealogyGraphChart.HighlightNodes(genealogyNodes);
+          foreach (var a in fragmentGraph.Arcs) {
+            genealogyGraphChart.HighlightArc(Content.GetByContent(a.Target.Data), Content.GetByContent(a.Source.Data));
+          }
           MainFormManager.MainForm.ShowContent(fragmentGraph); // display the fragment graph on the screen
         }
