Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IDataGridLogic.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IDataGridLogic.cs	(revision 10311)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IDataGridLogic.cs	(revision 10367)
@@ -3,4 +3,5 @@
   public interface IDataGridLogic {
     IEnumerable<string> ColumnNames { get; }
+    string GetColumnTypeAsString(int columnIndex);
     IEnumerable<string> RowNames { get; }
     int Columns { get; }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs	(revision 10311)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingData.cs	(revision 10367)
@@ -20,4 +20,5 @@
 #endregion
 
+using System;
 using System.Collections.Generic;
 using HeuristicLab.Core;
@@ -28,10 +29,23 @@
 
   public interface IPreprocessingData : INamedItem {
-    T GetCell<T>(string variableName, int row);
-    void SetCell<T>(string variableName, int row, T value);
-    string GetCellAsString(string variableName, int row);
+    [Obsolete("use the index based variant, is faster")]
+    T GetCell<T>(string variableName, int rowIndex);
+    T GetCell<T>(int columnIndex, int rowIndex);
 
+    [Obsolete("use the index based variant, is faster")]
+    void SetCell<T>(string variableName, int rowIndex, T value);
+    void SetCell<T>(int columnIndex, int rowIndex, T value);
+
+    [Obsolete("use the index based variant, is faster")]
+    string GetCellAsString(string variableName, int rowIndex);
+    string GetCellAsString(int columnIndex, int rowIndex);
+
+    [Obsolete("use the index based variant, is faster")]
     IList<T> GetValues<T>(string variableName);
+    IList<T> GetValues<T>(int columnIndex);
+
+    [Obsolete("use the index based variant, is faster")]
     void SetValues<T>(string variableName, IList<T> values);
+    void SetValues<T>(int columnIndex, IList<T> values);
 
     void InsertRow(int rowIndex);
@@ -39,5 +53,8 @@
 
     void InsertColumn<T>(string variableName, int columnIndex);
+
+    [Obsolete("use the index based variant, is faster")]
     void DeleteColumn(string variableName);
+    void DeleteColumn(int columnIndex);
 
     IntRange TrainingPartition { get; }
@@ -46,5 +63,10 @@
     IEnumerable<string> VariableNames { get; }
     string GetVariableName(int columnIndex);
+    int GetColumnIndex(string variableName);
+
+    [Obsolete("use the index based variant, is faster")]
     bool IsType<T>(string variableName);
+    bool IsType<T>(int columnIndex);
+
 
     int Columns { get; }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingDataManipulation.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingDataManipulation.cs	(revision 10311)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingDataManipulation.cs	(revision 10367)
@@ -5,10 +5,10 @@
     void reOrderToIndices(IEnumerable<int> indices);
     void reOrderToIndices(IList<Tuple<int, int>> indices);
-    void ReplaceIndicesByAverageValue(string variableName, IEnumerable<int> indices);
-    void ReplaceIndicesByLinearInterpolationOfNeighbours(string variableName, IEnumerable<int> indices);
-    void ReplaceIndicesByMedianValue(string variableName, IEnumerable<int> indices);
-    void ReplaceIndicesByMostCommonValue(string variableName, IEnumerable<int> indices);
-    void ReplaceIndicesByRandomValue(string variableName, IEnumerable<int> indices);
-    void ReplaceIndicesByValue<T>(string variableName, IEnumerable<int> indices, T value);
+    void ReplaceIndicesByAverageValue(int columnIndex, IEnumerable<int> rowIndices);
+    void ReplaceIndicesByLinearInterpolationOfNeighbours(int columnIndex, IEnumerable<int> rowIndices);
+    void ReplaceIndicesByMedianValue(int columnIndex, IEnumerable<int> rowIndices);
+    void ReplaceIndicesByMostCommonValue(int columnIndex, IEnumerable<int> rowIndices);
+    void ReplaceIndicesByRandomValue(int columnIndex, IEnumerable<int> rowIndices);
+    void ReplaceIndicesByValue<T>(int columnIndex, IEnumerable<int> rowIndices, T value);
     void ShuffleWithRanges(IEnumerable<HeuristicLab.Data.IntRange> ranges);
   }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/ISearchLogic.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/ISearchLogic.cs	(revision 10311)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/ISearchLogic.cs	(revision 10367)
@@ -17,7 +17,7 @@
     /// </summary>
     /// <returns></returns>
-    IEnumerable<int> GetMissingValueIndices(string variableName);
+    IEnumerable<int> GetMissingValueIndices(int columnIndex);
 
-    bool IsMissingValue(string variableName, int rowIndex);
+    bool IsMissingValue(int columnIndex, int rowIndex);
   }
 }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IStatisticsLogic.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IStatisticsLogic.cs	(revision 10311)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IStatisticsLogic.cs	(revision 10367)
@@ -9,14 +9,15 @@
     int GetNominalColumnCount();
     int GetMissingValueCount();
-    int GetMissingValueCount(string variableName);
+    int GetMissingValueCount(int columnIndex);
     int GetRowMissingValueCount(int rowIndex);
-    T GetMin<T>(string variableName) where T : IComparable<T>;
-    T GetMax<T>(string variableName) where T : IComparable<T>;
-    double GetMedian(string variableName);
-    double GetAverage(string variableName);
-    T GetMostCommonValue<T>(string variableName);
-    double GetStandardDeviation(string variableName);
-    double GetVariance(string variableName);
-    int GetDifferentValuesCount<T>(string variableName);
+    T GetMin<T>(int columnIndex) where T : IComparable<T>;
+    T GetMax<T>(int columnIndex) where T : IComparable<T>;
+    double GetMedian(int columnIndex);
+    double GetAverage(int columnIndex);
+    T GetMostCommonValue<T>(int columnIndex);
+    double GetStandardDeviation(int columnIndex);
+    double GetVariance(int columnIndex);
+    int GetDifferentValuesCount<T>(int columnIndex);
+    bool IsType<T>(int columnIndex);
   }
 }
