Index: /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.cs
===================================================================
--- /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.cs	(revision 15420)
+++ /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.cs	(revision 15421)
@@ -26,5 +26,4 @@
 using System.Linq;
 using System.Windows.Forms;
-using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Random;
@@ -158,5 +157,5 @@
         shape.Move(new Offset(pos.X, pos.Y));
       }
-      var colors = ColorGradient.GrayscaledColors;
+
       foreach (var pair in arcRoutes) {
         var arc = pair.Key;
@@ -167,8 +166,5 @@
         Pen pen;
         var penWidth = weight / max * 3;
-        var colorIndex = (int)Math.Min(255, weight / max * 255);
-        if (colorIndex < 0) colorIndex = 0;
-        if (colorIndex > 255) colorIndex = 255;
-        var penColor = colors[colorIndex];
+        var penColor = Color.Black;
         if (len == 2) {
           if (double.IsInfinity(penWidth) || double.IsNaN(penWidth))
Index: /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.cs
===================================================================
--- /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.cs	(revision 15420)
+++ /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.cs	(revision 15421)
@@ -107,10 +107,5 @@
       var dataset = (Dataset)solution.ProblemData.Dataset;
       var originalValues = dataset.DoubleVariables.ToDictionary(x => x, x => dataset.GetReadOnlyDoubleValues(x).ToList());
-      var md = dataset.ToModifiable();
-      var medians = new Dictionary<string, List<double>>();
-      foreach (var v in dataset.DoubleVariables) {
-        var median = dataset.GetDoubleValues(v, solution.ProblemData.TrainingIndices).Median();
-        medians[v] = Enumerable.Repeat(median, originalValues[v].Count).ToList();
-      }
+      var medians = dataset.DoubleVariables.ToDictionary(x => x, x => Enumerable.Repeat(originalValues[x].Median(), originalValues[x].Count).ToList());
 
       var targetImpacts = new Dictionary<string, Tuple<IEnumerable<IRun>, Dictionary<string, double>>>();
@@ -135,6 +130,6 @@
               estimationLimits = (DoubleLimit)run.Parameters["EstimationLimits"];
             }
+            var md = dataset.ToModifiable();
             var impacts = CalculateImpacts(sol, md, originalValues, medians, estimationLimits);
-            //            var impacts = RegressionSolutionVariableImpactsCalculator.CalculateImpacts(sol).ToDictionary(x => x.Item1, x => x.Item2);
             foreach (var pair in impacts) {
               if (averageImpacts.ContainsKey(pair.Key))
@@ -190,8 +185,11 @@
       var targets = runs.GroupBy(x => ((IRegressionProblemData)x.Parameters["ProblemData"]).TargetVariable).ToList();
       var targetImpacts = new Dictionary<string, Tuple<IEnumerable<IRun>, Dictionary<string, double>>>();
+
+      Func<IRun, double> getQualityValue = run => ((DoubleValue)run.Results[qualityResultName]).Value;
+
       if (useBestRunsPerTarget) {
         var bestRunsPerTarget = maximization
-          ? targets.Select(x => x.OrderBy(y => ((DoubleValue)y.Results[qualityResultName]).Value).Last())
-          : targets.Select(x => x.OrderBy(y => ((DoubleValue)y.Results[qualityResultName]).Value).First());
+          ? targets.Select(x => x.OrderBy(getQualityValue).Last())
+          : targets.Select(x => x.OrderBy(getQualityValue).First());
 
         foreach (var run in bestRunsPerTarget) {
@@ -266,5 +264,6 @@
             }
             var arc = new Arc(variableNode, targetNode) {
-              Weight = impact, Label = impact.ToString("N3", CultureInfo.CurrentCulture)
+              Weight = impact,
+              Label = impact.ToString("N3", CultureInfo.CurrentCulture)
             };
             vn.AddArc(arc);
Index: /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks/3.3/SymbolicDataAnalysisVariableImpactsAnalyzer.cs
===================================================================
--- /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks/3.3/SymbolicDataAnalysisVariableImpactsAnalyzer.cs	(revision 15420)
+++ /branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks/3.3/SymbolicDataAnalysisVariableImpactsAnalyzer.cs	(revision 15421)
@@ -58,5 +58,4 @@
     #endregion
 
-    private SymbolicDataAnalysisExpressionTreeSimplifier simplifier;
     private SymbolicRegressionSolutionImpactValuesCalculator impactsCalculator;
 
@@ -136,5 +135,4 @@
 
       impactsCalculator = new SymbolicRegressionSolutionImpactValuesCalculator();
-      simplifier = new SymbolicDataAnalysisExpressionTreeSimplifier();
     }
 
@@ -145,5 +143,4 @@
     private void AfterDeserialization() {
       impactsCalculator = new SymbolicRegressionSolutionImpactValuesCalculator();
-      simplifier = new SymbolicDataAnalysisExpressionTreeSimplifier();
 
       if (!Parameters.ContainsKey(EvaluatorParameterName))
@@ -154,5 +151,4 @@
         : base(original, cloner) {
       impactsCalculator = new SymbolicRegressionSolutionImpactValuesCalculator();
-      simplifier = new SymbolicDataAnalysisExpressionTreeSimplifier();
     }
 
@@ -210,5 +206,5 @@
       var bestTrees = trees.Take(nTrees).Select(x => (ISymbolicExpressionTree)x.Clone()).ToList();
       // simplify trees before doing anything else
-      var simplifiedTrees = bestTrees.Select(x => simplifier.Simplify(x)).ToList();
+      var simplifiedTrees = bestTrees.Select(x => TreeSimplifier.Simplify(x)).ToList();
 
       if (optimizeConstants) {
