Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/LineChartContent.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/LineChartContent.cs	(revision 10708)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/LineChartContent.cs	(revision 10709)
@@ -25,8 +25,10 @@
 
 namespace HeuristicLab.DataPreprocessing {
+
   [Item("LineChart", "Represents the line chart grid.")]
   public class LineChartContent : PreprocessingChartContent {
 
-    public LineChartContent(IChartLogic chartlogic) :base(chartlogic) {
+    public LineChartContent(IChartLogic chartlogic)
+      : base(chartlogic) {
     }
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs	(revision 10709)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationContent.cs	(revision 10709)
@@ -0,0 +1,54 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.DataPreprocessing {
+
+  [Item("Manipulation", "Represents the available manipulations on a data set.")]
+  public class ManipulationContent : Item, IViewShortcut {
+
+    private IManipulationLogic manipulationLogic;
+
+    public ManipulationContent(IManipulationLogic theManipulationLogic) {
+      manipulationLogic = theManipulationLogic;
+    }
+
+    public ManipulationContent(ManipulationContent content, Cloner cloner) : base(content, cloner) { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ManipulationContent(this, cloner);
+    }
+
+    public IManipulationLogic ManipulationLogic {
+      get {
+        return manipulationLogic;
+      }
+    }
+
+
+    public static new Image StaticItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
+    }
+  }
+}
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationLogic.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationLogic.cs	(revision 10708)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/ManipulationLogic.cs	(revision 10709)
@@ -181,4 +181,11 @@
     }
 
+    public void ShuffleWithRanges() {
+      ShuffleWithRanges(new[] {
+        preprocessingData.TestPartition,
+        preprocessingData.TrainingPartition
+      });
+    }
+
     public void ShuffleWithRanges(IEnumerable<IntRange> ranges) {
       // init random outside loop
@@ -186,10 +193,10 @@
 
       preprocessingData.InTransaction(() => {
-        // process all given ranges - e.g. TrainingPartition, Trainingpartition
+        // process all given ranges - e.g. TrainingPartition, TestPartition
         foreach (IntRange range in ranges) {
           List<Tuple<int, int>> shuffledIndices = new List<Tuple<int, int>>();
 
           // generate random indices used for shuffeling each column
-          for (int i = range.End; i > range.Start; --i) {
+          for (int i = range.End - 1; i >= range.Start; --i) {
             int rand = random.Next(range.Start, i);
             shuffledIndices.Add(new Tuple<int, int>(i, rand));
