Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/DataPreprocessingView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/DataPreprocessingView.cs	(revision 10218)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/DataPreprocessingView.cs	(revision 10219)
@@ -3,13 +3,13 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.DataPreprocessing {
   [View("Data Preprocessing View")]
-  [Content(typeof(DataAnalysisProblemData), false)]
+  [Content(typeof(IPreprocessingContext), false)]
+  [Content(typeof(PreprocessingContext), true)]
   public partial class DataPreprocessingView : ItemView {
 
-    public new DataAnalysisProblemData Content {
-      get { return (DataAnalysisProblemData)base.Content; }
+    public new IPreprocessingContext Content {
+      get { return (IPreprocessingContext)base.Content; }
       set { base.Content = value; }
     }
@@ -21,10 +21,10 @@
     protected override void OnContentChanged() {
       base.OnContentChanged();
-
-
-
     }
 
     private void button1_Click(object sender, System.EventArgs e) {
+
+
+      /*
       DataAnalysisProblemData problemData = Content;
       Dataset ds = problemData.Dataset;
@@ -36,4 +36,5 @@
 
       MessageBox.Show("Success ;)");
+      */
     }
   }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10218)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10219)
@@ -84,7 +84,9 @@
       <DependentUpon>DataPreprocessingView.cs</DependentUpon>
     </Compile>
+    <Compile Include="Implementations\PreprocessingContext.cs" />
     <Compile Include="Implementations\PreprocessingData.cs" />
     <Compile Include="Implementations\PreprocessingDataManipulation.cs" />
     <Compile Include="Implementations\StatisticInfo.cs" />
+    <Compile Include="Interfaces\IPreprocessingContext.cs" />
     <Compile Include="Interfaces\IStatisticInfo.cs" />
     <Compile Include="Interfaces\IPreprocessingData.cs" />
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs	(revision 10219)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs	(revision 10219)
@@ -0,0 +1,50 @@
+﻿#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 HeuristicLab.Common;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.DataPreprocessing {
+  [Item("PreprocessingContext", "PreprocessingContext")]
+  public class PreprocessingContext : Item, IPreprocessingContext {
+    public PreprocessingContext(IPreprocessingData data, IItem parentItem) {
+      Data = data;
+      ParentItem = parentItem;
+    }
+
+    private PreprocessingContext(PreprocessingContext original, Cloner cloner)
+      : base(original, cloner) {
+      Data = cloner.Clone(original.Data);
+      ParentItem = original.ParentItem;
+    }
+
+    public IPreprocessingData Data { get; private set; }
+
+    /// <summary>
+    /// Parent algorithm, if available, or problem.
+    /// </summary>
+    public IItem ParentItem { get; private set; }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PreprocessingContext(this, cloner);
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingContext.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingContext.cs	(revision 10219)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Interfaces/IPreprocessingContext.cs	(revision 10219)
@@ -0,0 +1,32 @@
+﻿#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 HeuristicLab.Core;
+namespace HeuristicLab.DataPreprocessing {
+  public interface IPreprocessingContext : IItem {
+    IPreprocessingData Data { get; }
+
+    /// <summary>
+    /// Parent algorithm, if available, or problem.
+    /// </summary>
+    IItem ParentItem { get; }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Plugin.cs.frame	(revision 10218)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Plugin.cs.frame	(revision 10219)
@@ -44,4 +44,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
   [PluginDependency("HeuristicLab.Visualization.ChartControlsExtensions", "3.3")]
+  [PluginDependency("HeuristicLab.DataPreprocessing", "3.3")]
   public class HeuristicLabProblemsDataAnalysisViewsPlugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.cs	(revision 10218)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.cs	(revision 10219)
@@ -104,10 +104,16 @@
 
     private void DataPreprocessingButton_Click(object sender, EventArgs e) {
-      // IItem i = GetAlgorithmOrProblemContent();
-      Type viewType = MainFormManager.GetViewTypes(this.Content.GetType(), true).FirstOrDefault(t => typeof(DataPreprocessingView).IsAssignableFrom(t));
-      MainFormManager.MainForm.ShowContent(Content, viewType);
+      IItem parentItem = GetAlgorithmOrProblem();
+      var preprocessingData = new PreprocessingData(Content);
+
+      // TODO: ProblemDataView depends on DataPreprocessing
+      var context = new PreprocessingContext(preprocessingData, parentItem);
+      MainFormManager.MainForm.ShowContent(context);
+
+      //Type viewType = MainFormManager.GetViewTypes(this.Content.GetType(), true).FirstOrDefault(t => typeof(DataPreprocessingView).IsAssignableFrom(t));
+      //MainFormManager.MainForm.ShowContent(Content, viewType);
     }
 
-    private IItem GetAlgorithmOrProblemContent() {
+    private IItem GetAlgorithmOrProblem() {
       Control a = this;
       IItem i = null;
