Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/HeuristicLab.DataPreprocessing-3.3.csproj	(revision 10250)
@@ -81,4 +81,5 @@
     <Compile Include="Interfaces\IPreprocessingDataManipulation.cs" />
     <Compile Include="Implementations\FilterContent.cs" />
+    <Compile Include="Implementations\DataPreprocessorStarter.cs" />
     <Compile Include="Implementations\FilterLogic.cs" />
     <Compile Include="Implementations\HistogramContent.cs" />
@@ -106,7 +107,5 @@
     <Compile Include="Implementations\SearchLogic.cs" />
     <Compile Include="Implementations\StatisticsLogic.cs" />
-    <Compile Include="Views\DataGridContentView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
+    <Compile Include="Views\DataGridContentView.cs" />
     <Compile Include="Views\DataGridContentView.Designer.cs">
       <DependentUpon>DataGridContentView.cs</DependentUpon>
@@ -178,4 +177,8 @@
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Views\3.4\HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj">
+      <Project>{3e9e8944-44ff-40bb-a622-3a4a7dd0f198}</Project>
+      <Name>HeuristicLab.Problems.DataAnalysis.Views-3.4</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
       <Project>{df87c13e-a889-46ff-8153-66dcaa8c5674}</Project>
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Implementations/PreprocessingContext.cs	(revision 10250)
@@ -28,6 +28,6 @@
   [Item("PreprocessingContext", "PreprocessingContext")]
   public class PreprocessingContext : Item, IPreprocessingContext {
-    public PreprocessingContext(IPreprocessingData data, IItem parentItem, IDataAnalysisProblemData dataAnalysisProblemData, IAlgorithm algorithm) {
-      Data = data;
+    public PreprocessingContext(IDataAnalysisProblemData dataAnalysisProblemData, IItem parentItem, IAlgorithm algorithm) {
+      Data = new PreprocessingData(dataAnalysisProblemData);
       ParentItem = parentItem;
       DataAnalysisProblemData = dataAnalysisProblemData;
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Plugin.cs.frame	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Plugin.cs.frame	(revision 10250)
@@ -32,4 +32,6 @@
   [PluginDependency("HeuristicLab.Core", "3.3")]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
+  [PluginDependency("HeuristicLab.Data","3.3")]
+  [PluginDependency("HeuristicLab.Data.Views","3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
@@ -37,4 +39,5 @@
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")] 
   [PluginDependency("HeuristicLab.Problems.DataAnalysis","3.4")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views","3.4")]
   public class HeuristicLabDataPreprocessingPlugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj	(revision 10250)
@@ -169,4 +169,5 @@
       <DependentUpon>FeatureCorrelationView.cs</DependentUpon>
     </Compile>
+    <Compile Include="Interfaces\IDataPreprocessorStarter.cs" />
     <Compile Include="MenuItems\ShrinkDataAnalysisRunsMenuItem.cs" />
     <Compile Include="Plugin.cs" />
@@ -390,8 +391,4 @@
       <Name>HeuristicLab.Data.Views-3.3</Name>
       <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.DataPreprocessing\3.3\HeuristicLab.DataPreprocessing-3.3.csproj">
-      <Project>{3b90f866-70f8-43ef-a541-51819d255b7b}</Project>
-      <Name>HeuristicLab.DataPreprocessing-3.3</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Interfaces/IDataPreprocessorStarter.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Interfaces/IDataPreprocessorStarter.cs	(revision 10250)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Interfaces/IDataPreprocessorStarter.cs	(revision 10250)
@@ -0,0 +1,29 @@
+﻿#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.MainForm.WindowsForms;
+
+namespace HeuristicLab.Problems.DataAnalysis.Views {
+  public interface IDataPreprocessorStarter {
+    void Start(IDataAnalysisProblemData problemData, View currentView);
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Plugin.cs.frame	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/Plugin.cs.frame	(revision 10250)
@@ -44,5 +44,4 @@
   [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.Designer.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.Designer.cs	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.Designer.cs	(revision 10250)
@@ -47,5 +47,4 @@
       this.FeatureCorrelationButton = new System.Windows.Forms.Button();
       this.DataPreprocessingButton = new System.Windows.Forms.Button();
-      this.button1 = new System.Windows.Forms.Button();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
@@ -83,19 +82,8 @@
       this.DataPreprocessingButton.Click += new System.EventHandler(this.DataPreprocessingButton_Click);
       // 
-      // button1
-      // 
-      this.button1.Location = new System.Drawing.Point(438, 45);
-      this.button1.Name = "button1";
-      this.button1.Size = new System.Drawing.Size(49, 24);
-      this.button1.TabIndex = 6;
-      this.button1.Text = "Data Preprocessing";
-      this.button1.UseVisualStyleBackColor = true;
-      this.button1.Click += new System.EventHandler(this.button1_Click);
-      // 
       // ProblemDataView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.button1);
       this.Controls.Add(this.DataPreprocessingButton);
       this.Controls.Add(this.FeatureCorrelationButton);
@@ -107,5 +95,4 @@
       this.Controls.SetChildIndex(this.FeatureCorrelationButton, 0);
       this.Controls.SetChildIndex(this.DataPreprocessingButton, 0);
-      this.Controls.SetChildIndex(this.button1, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
@@ -118,5 +105,4 @@
     protected System.Windows.Forms.Button FeatureCorrelationButton;
     protected System.Windows.Forms.Button DataPreprocessingButton;
-    protected System.Windows.Forms.Button button1;
 
   }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.cs	(revision 10249)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/ProblemDataView.cs	(revision 10250)
@@ -27,8 +27,8 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.Data;
-using HeuristicLab.DataPreprocessing;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
 using HeuristicLab.Optimization;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Problems.DataAnalysis.Views {
@@ -104,34 +104,11 @@
 
     private void DataPreprocessingButton_Click(object sender, EventArgs e) {
-      IAlgorithm algorithm;
-      IItem parentItem = GetMostOuterContent(out algorithm);
-      var preprocessingData = new PreprocessingData(Content);
-
       // TODO: ProblemDataView depends on DataPreprocessing
-      //ApplicationManager.Manager.GetInstances<IPreprocessingContext>();
-      var context = new PreprocessingContext(preprocessingData, parentItem, Content, algorithm);
-      MainFormManager.MainForm.ShowContent(context);
-    }
-
-    private IItem GetMostOuterContent(out IAlgorithm algorithm) {
-      algorithm = null;
-      Control control = this;
-      ItemView itemView = null;
-      do {
-        control = control.Parent;
-        if (control is ItemView) {
-          itemView = (ItemView)control;
-          if (itemView.Content is IAlgorithm) {
-            algorithm = (IAlgorithm)itemView.Content;
-          }
-        }
-      } while (control != null);
-
-      return itemView.Content;
-    }
-
-    private void button1_Click(object sender, EventArgs e) {
-      Type viewType = MainFormManager.GetViewTypes(typeof(IDataGridContent), true).FirstOrDefault(t => typeof(DataGridContentView).IsAssignableFrom(t));
-      MainFormManager.MainForm.ShowContent(new DataGridContent(new PreprocessingData(Content)), viewType);
+      var preprocessingStarters = ApplicationManager.Manager.GetInstances<IDataPreprocessorStarter>();
+      var starter = preprocessingStarters.FirstOrDefault();
+      // TODO: handle possible multiple starters
+      if (starter != null) {
+        starter.Start(Content, this);
+      }
     }
   }
