Index: /branches/DataPreprocessing/HeuristicLab 3.3.sln
===================================================================
--- /branches/DataPreprocessing/HeuristicLab 3.3.sln	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab 3.3.sln	(revision 11068)
@@ -1,7 +1,5 @@
 ﻿
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.30501.0
-MinimumVisualStudioVersion = 10.0.40219.1
+# Visual Studio 2012
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{96396439-A764-4022-A8D2-BE021449B8D1}"
 	ProjectSection(SolutionItems) = preProject
@@ -402,6 +400,4 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DataPreprocessing.Views-3.4", "HeuristicLab.DataPreprocessing.Views\3.4\HeuristicLab.DataPreprocessing.Views-3.4.csproj", "{3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Transformations-3.4", "HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj", "{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}"
 EndProject
 Global
@@ -1959,12 +1955,4 @@
 		{3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}.Release|x64.ActiveCfg = Release|Any CPU
 		{3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}.Release|x86.ActiveCfg = Release|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Release|x64.ActiveCfg = Release|Any CPU
-		{2E257A94-D1AF-435C-99B4-5AC00EADFD6A}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs	(revision 11068)
@@ -28,5 +28,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -62,5 +62,5 @@
       }
       return null;
-    } 
+    }
 
     private bool CanInstanciateTransformation(Type type) {
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj	(revision 11068)
@@ -280,9 +280,4 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-3.4</Name>
-      <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>
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/Plugin.cs.frame	(revision 11068)
@@ -33,6 +33,5 @@
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")] 
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views","3.4")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views","3.4")] 
   public class HeuristicLabDataPreprocessingViewPlugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.Designer.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.Designer.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.Designer.cs	(revision 11068)
@@ -1,3 +1,26 @@
-﻿namespace HeuristicLab.DataPreprocessing.Views {
+﻿#region License Information
+
+/* HeuristicLab
+ * Copyright (C) 2002-2014 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
+
+namespace HeuristicLab.DataPreprocessing.Views {
   partial class PreprocessingCheckedItemListView {
     /// <summary> 
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingCheckedItemListView.cs	(revision 11068)
@@ -1,14 +1,30 @@
-﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
+﻿#region License Information
+
+/* HeuristicLab
+ * Copyright (C) 2002-2014 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.Windows.Forms;
+using HeuristicLab.Core;
 using HeuristicLab.Core.Views;
 using HeuristicLab.Data;
 using HeuristicLab.MainForm;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -36,8 +52,4 @@
 
     }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-    }
   }
 
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/TransformationView.Designer.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/TransformationView.Designer.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/TransformationView.Designer.cs	(revision 11068)
@@ -19,6 +19,4 @@
  */
 #endregion
-
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -88,6 +86,6 @@
       // transformationListView
       // 
-      this.transformationListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
+      this.transformationListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
       this.transformationListView.Caption = "Transformations";
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/TransformationView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/TransformationView.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/TransformationView.cs	(revision 11068)
@@ -25,5 +25,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.DataPreprocessing.Views {
@@ -33,6 +33,5 @@
   public partial class TransformationView : AsynchronousContentView {
 
-    public new TransformationContent Content
-    {
+    public new TransformationContent Content {
       get { return (TransformationContent)base.Content; }
       set { base.Content = value; }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj	(revision 11068)
@@ -179,9 +179,4 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-3.4</Name>
-      <Private>False</Private>
-    </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.4/Implementations/FilteredPreprocessingData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/FilteredPreprocessingData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/FilteredPreprocessingData.cs	(revision 11068)
@@ -6,5 +6,4 @@
 using HeuristicLab.DataPreprocessing.Interfaces;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.DataPreprocessing.Implementations {
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/PreprocessingData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/PreprocessingData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/PreprocessingData.cs	(revision 11068)
@@ -23,5 +23,4 @@
 using System.Collections;
 using System.Collections.Generic;
-using System.Globalization;
 using System.Linq;
 using HeuristicLab.Common;
@@ -29,5 +28,4 @@
 using HeuristicLab.Data;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.DataPreprocessing {
@@ -116,5 +114,5 @@
       TrainingPartition = new IntRange(problemData.TrainingPartition.Start, problemData.TrainingPartition.End);
       TestPartition = new IntRange(problemData.TestPartition.Start, problemData.TestPartition.End);
-      
+
       RegisterEventHandler();
     }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransactionalPreprocessingData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransactionalPreprocessingData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransactionalPreprocessingData.cs	(revision 11068)
@@ -29,5 +29,4 @@
 using HeuristicLab.Data;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.DataPreprocessing {
@@ -62,5 +61,5 @@
     private TransactionalPreprocessingData(TransactionalPreprocessingData original, Cloner cloner)
       : base(original, cloner) {
-     }
+    }
 
     private void SaveSnapshot(DataPreprocessingChangedEventType changedType, int column, int row) {
@@ -94,6 +93,5 @@
     #region Overridden IPreprocessingData Members
 
-    public override T GetCell<T>(int columnIndex, int rowIndex)
-    {
+    public override T GetCell<T>(int columnIndex, int rowIndex) {
       return (T)variableValues[columnIndex][rowIndex];
     }
@@ -106,43 +104,33 @@
     }
 
-    public override string GetCellAsString(int columnIndex, int rowIndex)
-    {
+    public override string GetCellAsString(int columnIndex, int rowIndex) {
       return variableValues[columnIndex][rowIndex].ToString();
     }
 
-    public override string GetVariableName(int columnIndex)
-    {
+    public override string GetVariableName(int columnIndex) {
       return variableNames[columnIndex];
     }
 
-    public override int GetColumnIndex(string variableName)
-    {
+    public override int GetColumnIndex(string variableName) {
       return variableNames.IndexOf(variableName);
     }
 
-    public override bool IsType<T>(int columnIndex)
-    {
+    public override bool IsType<T>(int columnIndex) {
       return variableValues[columnIndex] is List<T>;
     }
 
     [Obsolete("use the index based variant, is faster")]
-    public override IList<T> GetValues<T>(string variableName, bool considerSelection)
-    {
+    public override IList<T> GetValues<T>(string variableName, bool considerSelection) {
       return GetValues<T>(GetColumnIndex(variableName), considerSelection);
     }
 
-    public override IList<T> GetValues<T>(int columnIndex, bool considerSelection)
-    {
-      if (considerSelection)
-      {
+    public override IList<T> GetValues<T>(int columnIndex, bool considerSelection) {
+      if (considerSelection) {
         var list = new List<T>();
-        foreach (var rowIdx in selection[columnIndex])
-        {
+        foreach (var rowIdx in selection[columnIndex]) {
           list.Add((T)variableValues[columnIndex][rowIdx]);
         }
         return list;
-      }
-      else
-      {
+      } else {
         return (IList<T>)variableValues[columnIndex];
       }
@@ -151,10 +139,7 @@
     public override void SetValues<T>(int columnIndex, IList<T> values) {
       SaveSnapshot(DataPreprocessingChangedEventType.ChangeColumn, columnIndex, -1);
-      if (IsType<T>(columnIndex))
-      {
+      if (IsType<T>(columnIndex)) {
         variableValues[columnIndex] = (IList)values;
-      }
-      else
-      {
+      } else {
         throw new ArgumentException("The datatype of column " + columnIndex + " must be of type " + variableValues[columnIndex].GetType().Name + " but was " + typeof(T).Name);
       }
@@ -185,7 +170,7 @@
       return valid;
     }
-    
-    public override bool Validate(string value, out string errorMessage, int columnIndex){
-     if (columnIndex < 0 || columnIndex > VariableNames.Count()) {
+
+    public override bool Validate(string value, out string errorMessage, int columnIndex) {
+      if (columnIndex < 0 || columnIndex > VariableNames.Count()) {
         throw new ArgumentOutOfRangeException("column index is out of range");
       }
@@ -234,6 +219,5 @@
     public override void InsertRow(int rowIndex) {
       SaveSnapshot(DataPreprocessingChangedEventType.DeleteRow, -1, rowIndex);
-      foreach (IList column in variableValues)
-      {
+      foreach (IList column in variableValues) {
         Type type = column.GetType().GetGenericArguments()[0];
         column.Insert(rowIndex, type.IsValueType ? Activator.CreateInstance(type) : null);
@@ -245,6 +229,5 @@
     public override void DeleteRow(int rowIndex) {
       SaveSnapshot(DataPreprocessingChangedEventType.AddRow, -1, rowIndex);
-      foreach (IList column in variableValues)
-      {
+      foreach (IList column in variableValues) {
         column.RemoveAt(rowIndex);
       }
@@ -269,10 +252,8 @@
     }
 
-    public override Dataset ExportToDataset()
-    {
+    public override Dataset ExportToDataset() {
       IList<IList> values = new List<IList>();
 
-      for (int i = 0; i < Columns; ++i)
-      {
+      for (int i = 0; i < Columns; ++i) {
         values.Add(variableValues[i]);
       }
@@ -282,6 +263,5 @@
     }
 
-    public override void ClearSelection()
-    {
+    public override void ClearSelection() {
       Selection = new Dictionary<int, IList<int>>();
     }
@@ -289,6 +269,5 @@
     public override event EventHandler SelectionChanged;
 
-    protected override void OnSelectionChanged()
-    {
+    protected override void OnSelectionChanged() {
       var listeners = SelectionChanged;
       if (listeners != null) listeners(this, EventArgs.Empty);
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransformationContent.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransformationContent.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransformationContent.cs	(revision 11068)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.DataPreprocessing {
@@ -36,5 +36,5 @@
     public static new Image StaticItemImage {
       get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
-    } 
+    }
 
     public TransformationContent(IPreprocessingData data, IFilterLogic filterLogic) {
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Interfaces/IPreprocessingData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Interfaces/IPreprocessingData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Interfaces/IPreprocessingData.cs	(revision 11068)
@@ -25,5 +25,4 @@
 using HeuristicLab.Data;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.DataPreprocessing {
@@ -52,6 +51,6 @@
     bool AreAllStringColumns(IEnumerable<int> columnIndices);
     bool Validate(string value, out string errorMessage, int columnIndex);
-    
-      IntRange TrainingPartition { get; }
+
+    IntRange TrainingPartition { get; }
     IntRange TestPartition { get; }
 
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Plugin.cs.frame	(revision 11068)
@@ -44,6 +44,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")]
   [PluginDependency("HeuristicLab.Parameters","3.3")]
-  [PluginDependency("HeuristicLab.Persistence","3.3")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Persistence","3.3")] 
   public class HeuristicLabDataPreprocessingPlugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/PreprocessingTransformator.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/PreprocessingTransformator.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/PreprocessingTransformator.cs	(revision 11068)
@@ -25,5 +25,5 @@
 using System.Text;
 using HeuristicLab.Data;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.DataPreprocessing {
@@ -64,5 +64,6 @@
           renamedColumns.Clear();
         }
-      } finally {
+      }
+      finally {
         preprocessingData.EndTransaction();
       }
@@ -71,5 +72,5 @@
     }
 
-    private void PreserveColumns(IList<Transformation<double>> transformations) {
+    private void PreserveColumns(IEnumerable<Transformation<double>> transformations) {
       foreach (var transformation in transformations) {
         if (!originalColumns.ContainsKey(transformation.Column)) {
@@ -81,5 +82,5 @@
     }
 
-    private void ApplyDoubleTranformationsInplace(IList<Transformation<double>> transformations, bool preserveColumns, out bool success, out string errorMsg) {
+    private void ApplyDoubleTranformationsInplace(IEnumerable<Transformation<double>> transformations, bool preserveColumns, out bool success, out string errorMsg) {
       errorMsg = string.Empty;
       success = true;
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs	(revision 11068)
@@ -24,5 +24,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.DataPreprocessing {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj	(revision 11068)
@@ -110,5 +110,7 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="InteractiveSymbolicRegressionSolutionSimplifierView.cs" />
+    <Compile Include="InteractiveSymbolicRegressionSolutionSimplifierView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="InteractiveSymbolicRegressionSolutionSimplifierView.Designer.cs">
       <DependentUpon>InteractiveSymbolicRegressionSolutionSimplifierView.cs</DependentUpon>
@@ -244,8 +246,4 @@
       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name>
       <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-3.4</Name>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Views\3.4\HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj">
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/Plugin.cs.frame	(revision 11068)
@@ -39,6 +39,5 @@
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
   [PluginDependency("HeuristicLab.Optimization","3.3")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")] 
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.Regression", "3.4")]
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj	(revision 11068)
@@ -328,9 +328,4 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-3.4</Name>
-      <Private>False</Private>
-    </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.Problems.DataAnalysis.Symbolic/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Plugin.cs.frame	(revision 11068)
@@ -43,6 +43,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
-  [PluginDependency("HeuristicLab.Random", "3.3")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Random", "3.3")] 
   public class HeuristicLabProblemsDataAnalysisSymbolicPlugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicExpressionTreeBacktransformator.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicExpressionTreeBacktransformator.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicExpressionTreeBacktransformator.cs	(revision 11068)
@@ -24,5 +24,4 @@
 using HeuristicLab.Common;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/TransformationToSymbolicTreeMapper.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/TransformationToSymbolicTreeMapper.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/TransformationToSymbolicTreeMapper.cs	(revision 11068)
@@ -22,5 +22,4 @@
 using System;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj	(revision 11068)
@@ -202,8 +202,4 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-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.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/Plugin.cs.frame	(revision 11068)
@@ -38,6 +38,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic", "3.4")]
   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
-  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")] 
   public class Plugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/ProblemData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/ProblemData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Trading/3.4/ProblemData.cs	(revision 11068)
@@ -28,5 +28,4 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis.Trading {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj	(revision 11068)
@@ -141,4 +141,13 @@
     <Compile Include="Implementation\TimeSeriesPrognosis\TimeSeriesPrognosisSolution.cs" />
     <Compile Include="Implementation\TimeSeriesPrognosis\TimeSeriesPrognosisSolutionBase.cs" />
+    <Compile Include="Implementation\Transformations\CopyColumnTransformation.cs" />
+    <Compile Include="Implementation\Transformations\ExponentialTransformation.cs" />
+    <Compile Include="Implementation\Transformations\LinearTransformation.cs" />
+    <Compile Include="Implementation\Transformations\LogarithmicTransformation.cs" />
+    <Compile Include="Implementation\Transformations\PowerTransformation.cs" />
+    <Compile Include="Implementation\Transformations\ReciprocalTransformation.cs" />
+    <Compile Include="Implementation\Transformations\ShiftStandardDistributionTransformation.cs" />
+    <Compile Include="Implementation\Transformations\ShiftToRangeTransformation.cs" />
+    <Compile Include="Implementation\Transformations\Transformation.cs" />
     <Compile Include="Interfaces\Classification\IClassificationEnsembleModel.cs">
       <SubType>Code</SubType>
@@ -151,4 +160,5 @@
     <Compile Include="Interfaces\IDependencyCalculator.cs" />
     <Compile Include="Interfaces\IModelBacktransformator.cs" />
+    <Compile Include="Interfaces\ITransformation.cs" />
     <Compile Include="Interfaces\ITransformationMapper.cs" />
     <Compile Include="Interfaces\Regression\IRegressionEnsembleModel.cs">
@@ -283,8 +293,4 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-3.4</Name>
-    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
       <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblemData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblemData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblemData.cs	(revision 11068)
@@ -28,5 +28,4 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Clustering/ClusteringProblemData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Clustering/ClusteringProblemData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Clustering/ClusteringProblemData.cs	(revision 11068)
@@ -24,5 +24,4 @@
 using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblemData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblemData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblemData.cs	(revision 11068)
@@ -30,5 +30,4 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis {
@@ -127,5 +126,5 @@
     }
 
-    protected DataAnalysisProblemData(Dataset dataset, IEnumerable<string> allowedInputVariables, IList<ITransformation> transformations) {
+    protected DataAnalysisProblemData(Dataset dataset, IEnumerable<string> allowedInputVariables, IEnumerable<ITransformation> transformations) {
       if (dataset == null) throw new ArgumentNullException("The dataset must not be null.");
       if (allowedInputVariables == null) throw new ArgumentNullException("The allowedInputVariables must not be null.");
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs	(revision 11068)
@@ -28,5 +28,4 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/CopyColumnTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/CopyColumnTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/CopyColumnTransformation.cs	(revision 11068)
@@ -0,0 +1,64 @@
+﻿#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.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("CopyColumnTransformation", "Represents a transformation which represents a copied Column.")]
+  public class CopyColumnTransformation : Transformation {
+    protected const string CopiedColumnNameParameterName = "CopiedColumnName";
+
+    #region Parameters
+    public IValueParameter<StringValue> CopiedColumnNameParameter {
+      get { return (IValueParameter<StringValue>)Parameters[CopiedColumnNameParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Cpy"; }
+    }
+    public string CopiedColumnName {
+      get { return CopiedColumnNameParameter.Value.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected CopyColumnTransformation(bool deserializing) : base(deserializing) { }
+    protected CopyColumnTransformation(CopyColumnTransformation original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public CopyColumnTransformation()
+      : base(Enumerable.Empty<string>()) {
+      Parameters.Add(new ValueParameter<StringValue>(CopiedColumnNameParameterName, "Name for the copied column", new StringValue()));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new CopyColumnTransformation(this, cloner);
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ExponentialTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ExponentialTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ExponentialTransformation.cs	(revision 11068)
@@ -0,0 +1,54 @@
+﻿using System;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Exponential Transformation", "f(x) = b ^ x | Represents a exponential transformation.")]
+  public class ExponentialTransformation : Transformation<double> {
+    protected const string BaseParameterName = "Base";
+
+    #region Parameters
+    public IValueParameter<DoubleValue> BaseParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[BaseParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Exp"; }
+    }
+    public double Base {
+      get { return BaseParameter.Value.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected ExponentialTransformation(bool deserializing) : base(deserializing) { }
+    protected ExponentialTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public ExponentialTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+      Parameters.Add(new ValueParameter<DoubleValue>(BaseParameterName, "b | Base of exp-function", new DoubleValue(Math.E)));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ExponentialTransformation(this, cloner);
+    }
+
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      foreach (double d in data) {
+        yield return Math.Pow(Base, d);
+      }
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      errorMsg = "";
+      return true;
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LinearTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LinearTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LinearTransformation.cs	(revision 11068)
@@ -0,0 +1,94 @@
+﻿#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;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Linear Transformation", "f(x) = k * x + d | Represents a linear transformation with multiplication and addition.")]
+  public class LinearTransformation : Transformation<double> {
+    protected const string MultiplierParameterName = "Multiplier";
+    protected const string AddendParameterName = "Addend";
+
+    #region Parameters
+    public IValueParameter<DoubleValue> MultiplierParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[MultiplierParameterName]; }
+    }
+    public IValueParameter<DoubleValue> AddendParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[AddendParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Lin"; }
+    }
+    public double Multiplier {
+      get { return MultiplierParameter.Value.Value; }
+      protected set {
+        MultiplierParameter.Value.Value = value;
+      }
+    }
+
+    public double Addend {
+      get { return AddendParameter.Value.Value; }
+      protected set {
+        AddendParameter.Value.Value = value;
+      }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected LinearTransformation(bool deserializing) : base(deserializing) { }
+    protected LinearTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public LinearTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+      Parameters.Add(new ValueParameter<DoubleValue>(MultiplierParameterName, "k | Multiplier for linear transformation", new DoubleValue(1.0)));
+      Parameters.Add(new ValueParameter<DoubleValue>(AddendParameterName, "d | Addend for linear transformation", new DoubleValue(0.0)));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LinearTransformation(this, cloner);
+    }
+
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      return data.Select(e => e * Multiplier + Addend);
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      errorMsg = null;
+      if (Multiplier == 0.0) {
+        errorMsg = String.Format("Multiplicand is 0, all {0} entries will be set to {1}. Inverse apply will not be possible (division by 0).", data.Count(), Addend);
+        return false;
+      }
+      return true;
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LogarithmicTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LogarithmicTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LogarithmicTransformation.cs	(revision 11068)
@@ -0,0 +1,64 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Logarithmic Transformation", "f(x) = log(x, b) | Represents a logarithmic transformation.")]
+  public class LogarithmicTransformation : Transformation<double> {
+    protected const string BaseParameterName = "Base";
+
+    #region Parameters
+    public IValueParameter<DoubleValue> BaseParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[BaseParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Log"; }
+    }
+    public double Base {
+      get { return BaseParameter.Value.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected LogarithmicTransformation(bool deserializing) : base(deserializing) { }
+    protected LogarithmicTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public LogarithmicTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+      Parameters.Add(new ValueParameter<DoubleValue>(BaseParameterName, "b | Base of log-function", new DoubleValue(Math.E)));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new LogarithmicTransformation(this, cloner);
+    }
+
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      foreach (double i in data) {
+        if (i > 0.0)
+          yield return Math.Log(i, Base);
+        else
+          yield return i;
+      }
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      errorMsg = null;
+      int errorCounter = data.Count(i => i <= 0.0);
+      if (errorCounter > 0) {
+        errorMsg = String.Format("{0} values are zero or below zero. Logarithm can not be applied onto these values", errorCounter);
+        return false;
+      }
+      return true;
+    }
+
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/PowerTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/PowerTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/PowerTransformation.cs	(revision 11068)
@@ -0,0 +1,55 @@
+﻿using System;
+using System.Collections.Generic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Power Transformation", "f(x) = x ^ exp | Represents a power transformation.")]
+  public class PowerTransformation : Transformation<double> {
+    protected const string ExponentParameterName = "Exponent";
+
+    #region Parameters
+    public IValueParameter<DoubleValue> ExponentParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[ExponentParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Pow"; }
+    }
+    public double Exponent {
+      get { return ExponentParameter.Value.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected PowerTransformation(bool deserializing) : base(deserializing) { }
+    protected PowerTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public PowerTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+      Parameters.Add(new ValueParameter<DoubleValue>(ExponentParameterName, "exp | Exponent for Exponentation", new DoubleValue(2.0)));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PowerTransformation(this, cloner);
+    }
+
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      foreach (double i in data) {
+        yield return Math.Pow(i, Exponent);
+      }
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      errorMsg = "";
+      return true;
+    }
+
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ReciprocalTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ReciprocalTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ReciprocalTransformation.cs	(revision 11068)
@@ -0,0 +1,51 @@
+﻿
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Reciprocal Transformation", "f(x) = 1 / x | Represents a reciprocal transformation.")]
+  public class ReciprocalTransformation : Transformation<double> {
+
+    #region properties
+    public override string ShortName {
+      get { return "Inv"; }
+    }
+    #endregion
+
+    //TODO: is a special case of Linear
+    [StorableConstructor]
+    protected ReciprocalTransformation(bool deserializing) : base(deserializing) { }
+    protected ReciprocalTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public ReciprocalTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ReciprocalTransformation(this, cloner);
+    }
+
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      foreach (double i in data) {
+        if (i > 0.0)
+          yield return 1.0 / i;
+        else
+          yield return i;
+      }
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      errorMsg = null;
+      int errorCounter = data.Count(i => i <= 0.0);
+      if (errorCounter > 0) {
+        errorMsg = String.Format("{0} values are zero or below zero. 1/x can not be applied onto these values", errorCounter);
+        return false;
+      }
+      return true;
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftStandardDistributionTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftStandardDistributionTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftStandardDistributionTransformation.cs	(revision 11068)
@@ -0,0 +1,104 @@
+﻿using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Shift Standard Distribution Transformation", "f(x) = ((x - m_org) / s_org ) * s_tar + m_tar | Represents Transformation to unit standard deviation and additional linear transformation to a target Mean and Standard deviation")]
+  public class ShiftStandardDistributionTransformation : Transformation<double> {
+    protected const string OriginalMeanParameterName = "Original Mean";
+    protected const string OriginalStandardDeviationParameterName = "Original Standard Deviation";
+    protected const string MeanParameterName = "Mean";
+    protected const string StandardDeviationParameterName = "Standard Deviation";
+
+    #region Parameters
+    public IValueParameter<DoubleValue> OriginalMeanParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[OriginalMeanParameterName]; }
+    }
+    public IValueParameter<DoubleValue> OriginalStandardDeviationParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[OriginalStandardDeviationParameterName]; }
+    }
+    public IValueParameter<DoubleValue> MeanParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[MeanParameterName]; }
+    }
+    public IValueParameter<DoubleValue> StandardDeviationParameter {
+      get { return (IValueParameter<DoubleValue>)Parameters[StandardDeviationParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Std"; }
+    }
+    public double OriginalMean {
+      get { return OriginalMeanParameter.Value.Value; }
+      set { OriginalMeanParameter.Value.Value = value; }
+    }
+    public double OriginalStandardDeviation {
+      get { return OriginalStandardDeviationParameter.Value.Value; }
+      set { OriginalStandardDeviationParameter.Value.Value = value; }
+    }
+    public double Mean {
+      get { return MeanParameter.Value.Value; }
+    }
+    public double StandardDeviation {
+      get { return StandardDeviationParameter.Value.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected ShiftStandardDistributionTransformation(bool deserializing) : base(deserializing) { }
+    protected ShiftStandardDistributionTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public ShiftStandardDistributionTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+      Parameters.Add(new ValueParameter<DoubleValue>(OriginalMeanParameterName, "m_org | Mean value of the original data's deviation.", new DoubleValue()));
+      Parameters.Add(new ValueParameter<DoubleValue>(OriginalStandardDeviationParameterName, "s_org | Standard deviation of the original data.", new DoubleValue()));
+      OriginalMeanParameter.Hidden = true;
+      OriginalStandardDeviationParameter.Hidden = true;
+      Parameters.Add(new ValueParameter<DoubleValue>(MeanParameterName, "m_tar | Mean value for the target deviation.", new DoubleValue(0.0)));
+      Parameters.Add(new ValueParameter<DoubleValue>(StandardDeviationParameterName, "s_tar | Standard deviation for the target data.", new DoubleValue(1.0)));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ShiftStandardDistributionTransformation(this, cloner);
+    }
+
+    // http://en.wikipedia.org/wiki/Standard_deviation
+    // http://www.statistics4u.info/fundstat_germ/ee_ztransform.html
+    // https://www.uni-due.de/~bm0061/vorl12.pdf p5
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      ConfigureParameters(data);
+      if (OriginalStandardDeviation == 0.0) {
+        foreach (var e in data) {
+          yield return e;
+        }
+        yield break;
+      }
+
+      foreach (var e in data) {
+        double unitNormalDistributedValue = (e - OriginalMean) / OriginalStandardDeviation;
+        yield return unitNormalDistributedValue * StandardDeviation + Mean;
+      }
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      ConfigureParameters(data);
+      errorMsg = "";
+      if (OriginalStandardDeviation == 0.0) {
+        errorMsg = "Standard deviaton for the original data is 0.0, Transformation cannot be applied onto these values.";
+        return false;
+      }
+      return true;
+    }
+
+    protected void ConfigureParameters(IEnumerable<double> data) {
+      OriginalStandardDeviation = data.StandardDeviation();
+      OriginalMean = data.Average();
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftToRangeTransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftToRangeTransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftToRangeTransformation.cs	(revision 11068)
@@ -0,0 +1,66 @@
+﻿using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  [Item("Shift to Range Transformation", "f(x) = k * x + d, start <= f(x) <= end | Represents a linear Transformation using Parameters defining a target range")]
+  public class ShiftToRangeTransformation : LinearTransformation {
+    protected const string RangeParameterName = "Range";
+
+    #region Parameters
+    public IValueParameter<DoubleRange> RangeParameter {
+      get { return (IValueParameter<DoubleRange>)Parameters[RangeParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public override string ShortName {
+      get { return "Sft"; }
+    }
+    public DoubleRange Range {
+      get { return RangeParameter.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected ShiftToRangeTransformation(bool deserializing) : base(deserializing) { }
+    protected ShiftToRangeTransformation(Transformation<double> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public ShiftToRangeTransformation(IEnumerable<string> allowedColumns)
+      : base(allowedColumns) {
+      MultiplierParameter.Hidden = true;
+      AddendParameter.Hidden = true;
+      Parameters.Add(new ValueParameter<DoubleRange>(RangeParameterName, "start, end | Range for the target window of the linear transformation", new DoubleRange(0.0, 1.0)));
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ShiftToRangeTransformation(this, cloner);
+    }
+
+    public override IEnumerable<double> Apply(IEnumerable<double> data) {
+      ConfigureParameters(data);
+      return base.Apply(data);
+    }
+
+    public override bool Check(IEnumerable<double> data, out string errorMsg) {
+      ConfigureParameters(data);
+      return base.Check(data, out errorMsg);
+    }
+
+    protected void ConfigureParameters(IEnumerable<double> data) {
+      double originalRangeStart = data.Min();
+      double originalRangeEnd = data.Max();
+
+      double originalRangeWidth = originalRangeEnd - originalRangeStart;
+      double targetRangeWidth = Range.End - Range.Start;
+
+      Multiplier = targetRangeWidth / originalRangeWidth;
+      Addend = Range.Start - originalRangeStart * Multiplier;
+    }
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/Transformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/Transformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/Transformation.cs	(revision 11068)
@@ -0,0 +1,72 @@
+﻿#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.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+
+  [Item("Transformation", "Represents the base class for a transformation.")]
+  [StorableClass]
+  public abstract class Transformation : ParameterizedNamedItem, ITransformation {
+    protected const string ColumnParameterName = "Column";
+    #region parameter properties
+    public IConstrainedValueParameter<StringValue> ColumnParameter {
+      get { return (IConstrainedValueParameter<StringValue>)Parameters[ColumnParameterName]; }
+    }
+    #endregion
+
+    #region properties
+    public abstract string ShortName { get; }
+
+    public string Column {
+      get { return ColumnParameter.Value.Value; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected Transformation(bool deserializing) : base(deserializing) { }
+    protected Transformation(Transformation original, Cloner cloner) : base(original, cloner) { }
+    protected Transformation(IEnumerable<string> allowedColumns) {
+      var allowed = new ItemSet<StringValue>(allowedColumns.Select(e => new StringValue(e)));
+      Parameters.Add(new ConstrainedValueParameter<StringValue>(ColumnParameterName, "Column used for the Transformation", allowed));
+    }
+  }
+
+  [Item("Transformation", "Represents the base class for a transformation.")]
+  [StorableClass]
+  public abstract class Transformation<T> : Transformation, ITransformation<T> {
+
+    [StorableConstructor]
+    protected Transformation(bool deserializing) : base(deserializing) { }
+    protected Transformation(Transformation<T> original, Cloner cloner) : base(original, cloner) { }
+    protected Transformation(IEnumerable<string> allowedColumns) : base(allowedColumns) { }
+
+    public abstract IEnumerable<T> Apply(IEnumerable<T> data);
+
+    public abstract bool Check(IEnumerable<T> data, out string errorMsg);
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblemData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblemData.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblemData.cs	(revision 11068)
@@ -24,5 +24,4 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IModelBacktransformator.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IModelBacktransformator.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IModelBacktransformator.cs	(revision 11068)
@@ -21,5 +21,5 @@
 
 using System.Collections.Generic;
-using HeuristicLab.Problems.DataAnalysis.Transformations;
+
 
 namespace HeuristicLab.Problems.DataAnalysis {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/ITransformation.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/ITransformation.cs	(revision 11068)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/ITransformation.cs	(revision 11068)
@@ -0,0 +1,34 @@
+﻿#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.Collections.Generic;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.DataAnalysis {
+  public interface ITransformation : IParameterizedItem {
+    string ShortName { get; }
+    string Column { get; }
+  }
+
+  public interface ITransformation<T> : ITransformation {
+    IEnumerable<T> Apply(IEnumerable<T> data);
+  }
+}
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/ITransformationMapper.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/ITransformationMapper.cs	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/ITransformationMapper.cs	(revision 11068)
@@ -20,5 +20,4 @@
 #endregion
 
-using HeuristicLab.Problems.DataAnalysis.Transformations;
 
 namespace HeuristicLab.Problems.DataAnalysis {
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis/3.4/Plugin.cs.frame	(revision 11068)
@@ -37,6 +37,5 @@
   [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
-  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]  
   public class HeuristicLabProblemsDataAnalysisPlugin : PluginBase {
   }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj	(revision 11068)
@@ -259,8 +259,4 @@
       <Private>False</Private>
     </ProjectReference>
-    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Transformations\3.4\HeuristicLab.Problems.DataAnalysis.Transformations-3.4.csproj">
-      <Project>{2e257a94-d1af-435c-99b4-5ac00eadfd6a}</Project>
-      <Name>HeuristicLab.Problems.DataAnalysis.Transformations-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.Problems.Instances.DataAnalysis/3.3/Plugin.cs.frame
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Plugin.cs.frame	(revision 11067)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Plugin.cs.frame	(revision 11068)
@@ -31,6 +31,5 @@
   [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
-  [PluginDependency("HeuristicLab.Problems.DataAnalysis.Transformations", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")] 
   [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
   [PluginDependency("HeuristicLab.Random", "3.3")]
