Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10181)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10182)
@@ -85,5 +85,5 @@
     </Compile>
     <Compile Include="Implementations\PreprocessingData.cs" />
-    <Compile Include="StatisticInfo.cs" />
+    <Compile Include="Implementations\StatisticInfo.cs" />
     <Compile Include="Interfaces\IStatisticInfo.cs" />
     <Compile Include="Interfaces\IPreprocessingData.cs" />
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingData.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingData.cs	(revision 10181)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingData.cs	(revision 10182)
@@ -24,8 +24,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Core;
-using HeuristicLab.DataPreprocessing.Interfaces;
+using HeuristicLab.DataPreprocessing;
 using HeuristicLab.Problems.DataAnalysis;
 
-namespace HeuristicLab.DataPreprocessing.Implementation {
+namespace HeuristicLab.DataPreprocessing {
   [Item("PreprocessingData", "Represents data used for preprocessing.")]
   public class PreprocessingData : NamedItem, IPreprocessingData {
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/StatisticInfo.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/StatisticInfo.cs	(revision 10182)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/StatisticInfo.cs	(revision 10182)
@@ -0,0 +1,103 @@
+﻿using System;
+using System.Linq;
+using HeuristicLab.DataPreprocessing;
+
+namespace HeuristicLab.DataPreprocessing {
+
+  class StatisticInfo : IStatisticInfo {
+
+    private IPreprocessingData preprocessingData;
+
+    public StatisticInfo(IPreprocessingData thePreprocessingData) {
+      preprocessingData = thePreprocessingData;
+    }
+
+    public int GetColumnCount() {
+      return preprocessingData.Columns;
+    }
+
+    public int GetRowCount() {
+      return preprocessingData.Rows;
+    }
+
+    public int GetNumericColumnCount() {
+      int count = 0;
+      for (int i = 0; i < preprocessingData.Columns; ++i) {
+        if (preprocessingData.IsType<double>(i)) {
+          ++count;
+        }
+      }
+      return count;
+    }
+
+    public int GetNominalColumnCount() {
+      return preprocessingData.Columns - GetNumericColumnCount();
+    }
+
+    public int GetMissingValueCount() {
+      int count = 0;
+      for (int i = 0; i < preprocessingData.Columns; ++i) {
+        count += GetMissingValueCount(i);
+      }
+      return count;
+    }
+
+    public int GetMissingValueCount(int columnIndex) {
+      if (preprocessingData.IsType<double>(columnIndex)) {
+        return preprocessingData.GetValues<double>(columnIndex).Count(x => double.IsNaN(x));
+      } else if (preprocessingData.IsType<string>(columnIndex)) {
+        return preprocessingData.GetValues<string>(columnIndex).Count(x => string.IsNullOrEmpty(x));
+      } else if (preprocessingData.IsType<DateTime>(columnIndex)) {
+        return preprocessingData.GetValues<DateTime>(columnIndex).Count(x => x.Equals(DateTime.MinValue));
+      } else {
+        throw new ArgumentException("column with index: " + columnIndex + " contains a non supported type.");
+      }
+    }
+
+    public T GetMin<T>(int columnIndex) where T : IComparable<T> {
+      return preprocessingData.GetValues<T>(columnIndex).Min();
+    }
+
+    public T GetMax<T>(int columnIndex) where T : IComparable<T> {
+      return preprocessingData.GetValues<T>(columnIndex).Max();
+    }
+
+    public double GetMedian(int columnIndex) {
+      double median = double.NaN;
+      if (preprocessingData.IsType<double>(columnIndex)) {
+        median = preprocessingData.GetValues<double>(columnIndex).OrderBy(x => x).ElementAt(preprocessingData.Rows / 2);
+      }
+      return median;
+    }
+
+    public double GetAverage(int columnIndex) {
+      double avg = double.NaN;
+      if (preprocessingData.IsType<double>(columnIndex)) {
+        avg = preprocessingData.GetValues<double>(columnIndex).Average();
+      }
+      return avg;
+    }
+
+    public T GetMostCommonValue<T>(int columnIndex) {
+      return preprocessingData.GetValues<T>(columnIndex)
+                              .GroupBy(x => x)
+                              .OrderByDescending(g => g.Count())
+                              .Select(g => g.Key)
+                              .First();
+    }
+
+
+    public double GetStandardDeviation(int columnIndex) {
+      double stdDev = double.NaN;
+      if (preprocessingData.IsType<double>(columnIndex)) {
+        double avg = GetAverage(columnIndex);
+        stdDev = Math.Sqrt(preprocessingData.GetValues<double>(columnIndex).Sum(x => (x - avg) * (x - avg)) / (preprocessingData.Rows - 1));
+      }
+      return stdDev;
+    }
+
+    public int GetDifferentValuesCount<T>(int columnIndex) {
+      return preprocessingData.GetValues<T>(columnIndex).GroupBy(x => x).Count();
+    }
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs	(revision 10181)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs	(revision 10182)
@@ -25,5 +25,5 @@
 using HeuristicLab.Problems.DataAnalysis;
 
-namespace HeuristicLab.DataPreprocessing.Interfaces {
+namespace HeuristicLab.DataPreprocessing {
 
   public interface IPreprocessingData : INamedItem {
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IStatisticInfo.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IStatisticInfo.cs	(revision 10181)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IStatisticInfo.cs	(revision 10182)
@@ -1,4 +1,4 @@
-﻿
-using System;
+﻿using System;
+
 namespace HeuristicLab.DataPreprocessing {
   public interface IStatisticInfo {
@@ -14,7 +14,7 @@
     double GetMedian(int columnIndex);
     double GetAverage(int columnIndex);
-    double GetMostCommonValue(int columnIndex);
+    T GetMostCommonValue<T>(int columnIndex);
     double GetStandardDeviation(int columnIndex);
-    public int GetDifferentValuesCount<T>(int columnIndex);
+    int GetDifferentValuesCount<T>(int columnIndex);
   }
 }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/StatisticInfo.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/StatisticInfo.cs	(revision 10181)
+++ 	(revision )
@@ -1,103 +1,0 @@
-﻿using System;
-using System.Linq;
-using HeuristicLab.DataPreprocessing.Interfaces;
-
-namespace HeuristicLab.DataPreprocessing {
-
-  class StatisticInfo : IStatisticInfo {
-
-    private IPreprocessingData preprocessingData;
-
-    public StatisticInfo(IPreprocessingData thePreprocessingData) {
-      preprocessingData = thePreprocessingData;
-    }
-
-    public int GetColumnCount() {
-      return preprocessingData.Columns;
-    }
-
-    public int GetRowCount() {
-      return preprocessingData.Rows;
-    }
-
-    public int GetNumericColumnCount() {
-      int count = 0;
-      for (int i = 0; i < preprocessingData.Columns; ++i) {
-        if (preprocessingData.IsType<double>(i)) {
-          ++count;
-        }
-      }
-      return count;
-    }
-
-    public int GetNominalColumnCount() {
-      return preprocessingData.Columns - GetNumericColumnCount();
-    }
-
-    public int GetMissingValueCount() {
-      int count = 0;
-      for (int i = 0; i < preprocessingData.Columns; ++i) {
-        count += GetMissingValueCount(i);
-      }
-      return count;
-    }
-
-    public int GetMissingValueCount(int columnIndex) {
-      if (preprocessingData.IsType<double>(columnIndex)) {
-        return preprocessingData.GetValues<double>(columnIndex).Count(x => double.IsNaN(x));
-      } else if (preprocessingData.IsType<string>(columnIndex)) {
-        return preprocessingData.GetValues<string>(columnIndex).Count(x => string.IsNullOrEmpty(x));
-      } else if (preprocessingData.IsType<DateTime>(columnIndex)) {
-        return preprocessingData.GetValues<DateTime>(columnIndex).Count(x => x.Equals(DateTime.MinValue));
-      } else {
-        throw new ArgumentException("column with index: " + columnIndex + " contains a non supported type.");
-      }
-    }
-
-    public T GetMin<T>(int columnIndex) where T : IComparable<T> {
-      return preprocessingData.GetValues<T>(columnIndex).Min();
-    }
-
-    public T GetMax<T>(int columnIndex) where T : IComparable<T> {
-      return preprocessingData.GetValues<T>(columnIndex).Max();
-    }
-
-    public double GetMedian(int columnIndex) {
-      double median = double.NaN;
-      if (preprocessingData.IsType<double>(columnIndex)) {
-        median = preprocessingData.GetValues<double>(columnIndex).OrderBy(x => x).ElementAt(preprocessingData.Rows / 2);
-      }
-      return median;
-    }
-
-    public double GetAverage(int columnIndex) {
-      double avg = double.NaN;
-      if (preprocessingData.IsType<double>(columnIndex)) {
-        avg = preprocessingData.GetValues<double>(columnIndex).Average();
-      }
-      return avg;
-    }
-
-    public T GetMostCommonValue<T>(int columnIndex) {
-      return preprocessingData.GetValues<T>(columnIndex)
-                              .GroupBy(x => x)
-                              .OrderByDescending(g => g.Count())
-                              .Select(g => g.Key)
-                              .First();
-    }
-
-
-    public double GetStandardDeviation(int columnIndex) {
-      double stdDev = double.NaN;
-      if (preprocessingData.IsType<double>(columnIndex)) {
-        double avg = GetAverage(columnIndex);
-        stdDev = Math.Sqrt(preprocessingData.GetValues<double>(columnIndex).Sum(x => (x - avg) * (x - avg)) / (preprocessingData.Rows - 1));
-      }
-      return stdDev;
-    }
-
-    public int GetDifferentValuesCount<T>(int columnIndex) {
-      return preprocessingData.GetValues<T>(columnIndex).GroupBy(x => x).Count();
-    }
-  }
-}
