Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/DataGridContent.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/DataGridContent.cs	(revision 10252)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/DataGridContent.cs	(revision 10253)
@@ -11,11 +11,16 @@
 
     private readonly IDataGridLogic dataGridLogic;
-    public DataGridContent(IDataGridLogic theDataGridLogic) {
+    private readonly IPreprocessingDataManipulation preprocessingDataManipulation;
+    public DataGridContent(IDataGridLogic theDataGridLogic, IPreprocessingDataManipulation thePreprocessingDataManipulation) {
       dataGridLogic = theDataGridLogic;
+      preprocessingDataManipulation = thePreprocessingDataManipulation;
     }
 
     public DataGridContent(DataGridContent dataGridContent, Cloner cloner)
       : base(dataGridContent, cloner) {
+    }
 
+    public IPreprocessingDataManipulation PreprocessingDataManipulation {
+      get { return preprocessingDataManipulation; }
     }
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingDataManipulation.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingDataManipulation.cs	(revision 10252)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingDataManipulation.cs	(revision 10253)
@@ -115,17 +115,21 @@
         }
 
-        foreach (string variableName in preprocessingData.VariableNames) {
-          if (preprocessingData.IsType<double>(variableName)) {
-            reOrderToIndices<double>(variableName, shuffledIndices);
-          } else if (preprocessingData.IsType<string>(variableName)) {
-            reOrderToIndices<string>(variableName, shuffledIndices);
-          } else if (preprocessingData.IsType<DateTime>(variableName)) {
-            reOrderToIndices<DateTime>(variableName, shuffledIndices);
-          }
+        reOrdertoIndices(shuffledIndices);
+      }
+    }
+
+    public void reOrdertoIndices(IList<Tuple<int, int>> indices) {
+      foreach (string variableName in preprocessingData.VariableNames) {
+        if (preprocessingData.IsType<double>(variableName)) {
+          reOrderToIndices<double>(variableName, indices);
+        } else if (preprocessingData.IsType<string>(variableName)) {
+          reOrderToIndices<string>(variableName, indices);
+        } else if (preprocessingData.IsType<DateTime>(variableName)) {
+          reOrderToIndices<DateTime>(variableName, indices);
         }
       }
     }
 
-    public void reOrderToIndices<T>(string variableName, List<Tuple<int, int>> indices) {
+    private void reOrderToIndices<T>(string variableName, IList<Tuple<int, int>> indices) {
       // process all columns equally
       foreach (Tuple<int, int> index in indices) {
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IDataGridContent.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IDataGridContent.cs	(revision 10252)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IDataGridContent.cs	(revision 10253)
@@ -8,4 +8,5 @@
   public interface IDataGridContent : IStringConvertibleMatrix {
     IDataGridLogic DataGridLogic { get; }
+    IPreprocessingDataManipulation PreprocessingDataManipulation { get; }
   }
 }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingDataManipulation.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingDataManipulation.cs	(revision 10252)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingDataManipulation.cs	(revision 10253)
@@ -3,5 +3,5 @@
 namespace HeuristicLab.DataPreprocessing {
   interface IPreprocessingDataManipulation {
-    void reOrderToIndices<T>(string variableName, List<Tuple<int, int>> indices);
+    void reOrderToIndices(IList<Tuple<int, int>> indices);
     void ReplaceIndicesByAverageValue(string variableName, IEnumerable<int> indices);
     void ReplaceIndicesByLinearInterpolationOfNeighbours(string variableName, IEnumerable<int> indices);
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataGridContentView.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataGridContentView.Designer.cs	(revision 10252)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataGridContentView.Designer.cs	(revision 10253)
@@ -24,4 +24,5 @@
     /// </summary>
     private void InitializeComponent() {
+      this.btnApplySort = new System.Windows.Forms.Button();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
@@ -32,8 +33,24 @@
       this.errorProvider.SetIconPadding(this.rowsTextBox, 2);
       this.rowsTextBox.ReadOnly = true;
+      this.rowsTextBox.Size = new System.Drawing.Size(296, 20);
       // 
       // columnsTextBox
       // 
       this.columnsTextBox.ReadOnly = true;
+      this.columnsTextBox.Size = new System.Drawing.Size(296, 20);
+      // 
+      // statisticsTextBox
+      // 
+      this.statisticsTextBox.Size = new System.Drawing.Size(522, 13);
+      // 
+      // btnApplySort
+      // 
+      this.btnApplySort.Location = new System.Drawing.Point(398, 18);
+      this.btnApplySort.Name = "btnApplySort";
+      this.btnApplySort.Size = new System.Drawing.Size(75, 23);
+      this.btnApplySort.TabIndex = 7;
+      this.btnApplySort.Text = "Apply Sort";
+      this.btnApplySort.UseVisualStyleBackColor = true;
+      this.btnApplySort.Click += new System.EventHandler(this.btnApplySort_Click);
       // 
       // DataGridContentView
@@ -41,5 +58,7 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.btnApplySort);
       this.Name = "DataGridContentView";
+      this.Size = new System.Drawing.Size(528, 404);
       this.Controls.SetChildIndex(this.statisticsTextBox, 0);
       this.Controls.SetChildIndex(this.rowsLabel, 0);
@@ -47,4 +66,5 @@
       this.Controls.SetChildIndex(this.rowsTextBox, 0);
       this.Controls.SetChildIndex(this.columnsTextBox, 0);
+      this.Controls.SetChildIndex(this.btnApplySort, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
@@ -54,4 +74,6 @@
 
     #endregion
+
+    private System.Windows.Forms.Button btnApplySort;
   }
 }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataGridContentView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataGridContentView.cs	(revision 10252)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataGridContentView.cs	(revision 10253)
@@ -23,6 +23,6 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
+    }
 
-    }
 
     private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
@@ -35,4 +35,8 @@
       }
     }
+
+    private void btnApplySort_Click(object sender, System.EventArgs e) {
+     
+    }
   }
 }
