Index: /branches/HeuristicLab.DataImporter/Build.cmd
===================================================================
--- /branches/HeuristicLab.DataImporter/Build.cmd	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/Build.cmd	(revision 9614)
@@ -49,6 +49,6 @@
 
 :prompt_config
-SET /P CONFIGURATION=Which configuration to build [Debug]: 
-IF "%CONFIGURATION%"=="" SET CONFIGURATION=Debug
+SET /P CONFIGURATION=Which configuration to build [Release]: 
+IF "%CONFIGURATION%"=="" SET CONFIGURATION=Release
 
 :platform_selection
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Csv/CsvImportCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Csv/CsvImportCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Csv/CsvImportCommand.cs	(revision 9614)
@@ -20,14 +20,7 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
 using System.IO;
-using System.Linq;
-using System.Text;
-using System.Xml;
-using System.Windows.Forms;
-using HeuristicLab.DataImporter.Data;
+using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -37,7 +30,6 @@
     private ColumnGroup newColumnGroup;
 
-    private CsvImportCommand()
-      : base(null) {
-    }
+    [StorableConstructor]
+    protected CsvImportCommand(bool deserializing) : base(deserializing) { }
 
     public CsvImportCommand(DataSet dataSet)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Csv/CsvImporter.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Csv/CsvImporter.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Csv/CsvImporter.cs	(revision 9614)
@@ -20,12 +20,7 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
+using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.DataImporter.DataProcessor;
-using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 
 namespace HeuristicLab.DataImporter.Backend.Csv {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Hl2ImporterFormat/Hl2Importer.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Hl2ImporterFormat/Hl2Importer.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Hl2ImporterFormat/Hl2Importer.cs	(revision 9614)
@@ -20,15 +20,10 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.IO;
+using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.DataImporter.DataProcessor;
-using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 
 namespace HeuristicLab.DataImporter.Backend.Hl2ImporterFormat {
-  public class Hl2Importer : IImporter{
+  public class Hl2Importer : IImporter {
 
     public string Description {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Hl2ImporterFormat/Hl2ImporterCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Hl2ImporterFormat/Hl2ImporterCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Backend.Hl2ImporterFormat/Hl2ImporterCommand.cs	(revision 9614)
@@ -20,14 +20,7 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
 using System.IO;
-using System.Linq;
-using System.Text;
-using System.Xml;
-using System.Windows.Forms;
-using HeuristicLab.DataImporter.Data;
+using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -37,7 +30,6 @@
     private ColumnGroup newColumnGroup;
 
-    private Hl2ImporterCommand()
-      : base(null) {
-    }
+    [StorableConstructor]
+    protected Hl2ImporterCommand(bool deserializing) : base(deserializing) { }
 
     public Hl2ImporterCommand(DataSet dataSet)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateCommandBase.cs	(revision 9614)
@@ -23,6 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
@@ -32,10 +30,10 @@
   [StorableClass]
   public abstract class AggregateCommandBase : ColumnGroupCommandWithAffectedColumnsBase {
-    private AggregateCommandBase()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected AggregateCommandBase(bool deserializing)
+      : base(deserializing) {
       oldColumns = new List<ColumnBase>();
       newColumns = new List<ColumnBase>();
       positions = new List<int>();
-      changeNullValuesOnly = true;
     }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMaxCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMaxCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMaxCommand.cs	(revision 9614)
@@ -21,11 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,7 +32,6 @@
     , "Aggregation", Position = 4, OptionsView = typeof(AggregationCommandView))]
   public class AggregateWithMaxCommand : AggregateCommandBase {
-    private AggregateWithMaxCommand()
-      : base(null,string.Empty,null) {
-    }
+    [StorableConstructor]
+    protected AggregateWithMaxCommand(bool deserializing) : base(deserializing) { }
 
     public AggregateWithMaxCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMeanCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMeanCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMeanCommand.cs	(revision 9614)
@@ -21,11 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,7 +32,6 @@
     "Aggregation", Position = 0, OptionsView = typeof(AggregationCommandView))]
   public class AggregateWithMeanCommand : AggregateCommandBase {
-    private AggregateWithMeanCommand()
-      : base(null,string.Empty,null) {
-    }
+    [StorableConstructor]
+    protected AggregateWithMeanCommand(bool deserializing) : base(deserializing) { }
 
     public AggregateWithMeanCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
@@ -58,5 +54,5 @@
         }
       }
-      return cnt !=0 ? value/cnt : (double?)null;
+      return cnt != 0 ? value / cnt : (double?)null;
     }
   }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMedianCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMedianCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMedianCommand.cs	(revision 9614)
@@ -21,11 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,7 +32,6 @@
    "Aggregation", Position = 1, OptionsView = typeof(AggregationCommandView))]
   public class AggregateWithMedianCommand : AggregateCommandBase {
-    private AggregateWithMedianCommand()
-      : base(null,string.Empty,null) {
-    }
+    [StorableConstructor]
+    protected AggregateWithMedianCommand(bool deserializing) : base(deserializing) { }
 
     public AggregateWithMedianCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMinCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMinCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithMinCommand.cs	(revision 9614)
@@ -21,11 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,8 +32,6 @@
    "Aggregation", Position = 3, OptionsView = typeof(AggregationCommandView))]
   public class AggregateWithMinCommand : AggregateCommandBase {
-
-    private AggregateWithMinCommand()
-      : base(null, string.Empty, null) {
-    }
+    [StorableConstructor]
+    protected AggregateWithMinCommand(bool deserializing) : base(deserializing) { }
 
     public AggregateWithMinCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithSumCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithSumCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/AggregateWithSumCommand.cs	(revision 9614)
@@ -21,11 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,7 +32,6 @@
    "Aggregation", Position = 2, OptionsView = typeof(AggregationCommandView))]
   public class AggregateWithSumCommand : AggregateCommandBase {
-    private AggregateWithSumCommand()
-      : base(null,string.Empty,null) {
-    }
+    [StorableConstructor]
+    protected AggregateWithSumCommand(bool deserializing) : base(deserializing) { }
 
     public AggregateWithSumCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/DeleteRowsWithDuplicateKeyValuesCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/DeleteRowsWithDuplicateKeyValuesCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/Aggregation/DeleteRowsWithDuplicateKeyValuesCommand.cs	(revision 9614)
@@ -23,5 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -34,6 +33,7 @@
   public class DeleteRowsWithDuplicateKeyValuesCommand : ColumnGroupCommandBase {
     private Dictionary<int, IComparable[]> deletedRows;
-    private DeleteRowsWithDuplicateKeyValuesCommand()
-      : base(null, string.Empty) {
+    [StorableConstructor]
+    protected DeleteRowsWithDuplicateKeyValuesCommand(bool deserializing)
+      : base(deserializing) {
       deletedRows = new Dictionary<int, IComparable[]>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewColumnCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewColumnCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewColumnCommandBase.cs	(revision 9614)
@@ -29,7 +29,6 @@
   [StorableClass]
   public abstract class AddNewColumnCommandBase : ColumnGroupCommandBase {
-    private AddNewColumnCommandBase()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected AddNewColumnCommandBase(bool deserializing) : base(deserializing) { }
 
     protected AddNewColumnCommandBase(DataSet dataSet, string columnGroupName, string columnName, Type columnType)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewDateTimeColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewDateTimeColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewDateTimeColumnCommand.cs	(revision 9614)
@@ -33,7 +33,6 @@
   [ViewableCommandInfoAttribute("New DateTimeColumn", 1, ColumnGroupState.Active, "Column Commands", Position = 9)]
   public class AddNewDateTimeColumnCommand : AddNewColumnCommandBase {
-    private AddNewDateTimeColumnCommand()
-      : base(null, string.Empty, string.Empty, typeof(DateTimeColumn)) {
-    }
+    [StorableConstructor]
+    protected AddNewDateTimeColumnCommand(bool deserializing) : base(deserializing) { }
 
     public AddNewDateTimeColumnCommand(DataSet dataSet, string columnGroupName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewDoubleColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewDoubleColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewDoubleColumnCommand.cs	(revision 9614)
@@ -20,11 +20,7 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -33,7 +29,6 @@
   [ViewableCommandInfoAttribute("New DoubleColumn", 1, ColumnGroupState.Active, "Column Commands", Position = 7)]
   public class AddNewDoubleColumnCommand : AddNewColumnCommandBase {
-    private AddNewDoubleColumnCommand()
-      : base(null, string.Empty, string.Empty, typeof(DoubleColumn)) {
-    }
+    [StorableConstructor]
+    protected AddNewDoubleColumnCommand(bool deserializing) : base(deserializing) { }
 
     public AddNewDoubleColumnCommand(DataSet dataSet, string columnGroupName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewProgrammableColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewProgrammableColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewProgrammableColumnCommand.cs	(revision 9614)
@@ -32,7 +32,6 @@
   OptionsView = typeof(ProgrammableColumnCommandView))]
   public class AddNewProgrammableColumnCommand : AddNewColumnCommandBase {
-    private AddNewProgrammableColumnCommand()
-      : base(null, string.Empty, string.Empty, typeof(ProgrammableColumn)) {
-    }
+    [StorableConstructor]
+    protected AddNewProgrammableColumnCommand(bool deserializing) : base(deserializing) { }
 
     public AddNewProgrammableColumnCommand(DataSet dataSet, string columnGroupName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewStringColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewStringColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/AddNewStringColumnCommand.cs	(revision 9614)
@@ -20,11 +20,7 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -33,7 +29,6 @@
   [ViewableCommandInfoAttribute("New StringColumn", 1, ColumnGroupState.Active, "Column Commands", Position = 8)]
   public class AddNewStringColumnCommand : AddNewColumnCommandBase {
-    private AddNewStringColumnCommand()
-      : base(null,string.Empty,string.Empty,typeof(StringColumn)) {
-    }
+    [StorableConstructor]
+    protected AddNewStringColumnCommand(bool deserializing) : base(deserializing) { }
 
     public AddNewStringColumnCommand(DataSet dataSet, string columnGroupName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnCommandBase.cs	(revision 9614)
@@ -23,8 +23,5 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using System.Xml;
-using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
@@ -43,6 +40,7 @@
     protected IEnumerable<SortOrder> oldSortOrder;
 
-    private ChangeColumnCommandBase()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected ChangeColumnCommandBase(bool deserializing)
+      : base(deserializing) {
       newColumns = new List<ColumnBase>();
       oldColumns = new List<ColumnBase>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToDateTimeColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToDateTimeColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToDateTimeColumnCommand.cs	(revision 9614)
@@ -20,9 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Globalization;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -34,7 +29,6 @@
   [ViewableCommandInfoAttribute("Change to DateTimeColumn", 1, ColumnGroupState.ColumnSelected, "Column Commands", Position = 13)]
   public class ChangeColumnToDateTimeColumnCommand : ChangeColumnCommandBase {
-    private ChangeColumnToDateTimeColumnCommand()
-      : base(null, string.Empty, null, typeof(DateTimeColumn)) {
-    }
+    [StorableConstructor]
+    protected ChangeColumnToDateTimeColumnCommand(bool deserializing) : base(deserializing) { }
 
     public ChangeColumnToDateTimeColumnCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToDoubleColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToDoubleColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToDoubleColumnCommand.cs	(revision 9614)
@@ -20,9 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Globalization;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -34,7 +29,6 @@
   [ViewableCommandInfoAttribute("Change to DoubleColumn", 1, ColumnGroupState.ColumnSelected, "Column Commands", Position = 11)]
   public class ChangeColumnToDoubleColumnCommand : ChangeColumnCommandBase {
-    private ChangeColumnToDoubleColumnCommand()
-      : base(null, string.Empty, null, typeof(DoubleColumn)) {
-    }
+    [StorableConstructor]
+    protected ChangeColumnToDoubleColumnCommand(bool deserializing) : base(deserializing) { }
 
     public ChangeColumnToDoubleColumnCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToStringColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToStringColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/ChangeColumnToStringColumnCommand.cs	(revision 9614)
@@ -20,9 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Globalization;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -34,7 +29,6 @@
   [ViewableCommandInfoAttribute("Change to StringColumn", 1, ColumnGroupState.ColumnSelected, "Column Commands", Position = 12)]
   public class ChangeColumnToStringColumnCommand : ChangeColumnCommandBase {
-    private ChangeColumnToStringColumnCommand()
-      : base(null, string.Empty, null, typeof(StringColumn)) {
-    }
+    [StorableConstructor]
+    protected ChangeColumnToStringColumnCommand(bool deserializing) : base(deserializing) { }
 
     public ChangeColumnToStringColumnCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/CreateTimeSeriesColumnsCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/CreateTimeSeriesColumnsCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/CreateTimeSeriesColumnsCommand.cs	(revision 9614)
@@ -20,14 +20,11 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
+using System.Windows.Forms.DataVisualization.Charting;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Data.Model;
-using System.Windows.Forms.DataVisualization.Charting;
-using System.Drawing;
 
 namespace HeuristicLab.DataImporter.Command {
@@ -37,5 +34,6 @@
   public class CreateTimeSeriesColumnsCommand : ColumnGroupCommandWithAffectedColumnsBase {
     private int addedColumnsCount;
-
+    [StorableConstructor]
+    protected CreateTimeSeriesColumnsCommand(bool deserializing) : base(deserializing) { }
     public CreateTimeSeriesColumnsCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
       : base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/SplitCategorialColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/SplitCategorialColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/SplitCategorialColumnCommand.cs	(revision 9614)
@@ -23,9 +23,8 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Data.Model;
 
 namespace HeuristicLab.DataImporter.Command {
@@ -38,7 +37,6 @@
     private const double NOTSETVALUE = 0.0;
 
-    private SplitCategorialColumnCommand()
-      : base(null, string.Empty, -1) {
-    }
+    [StorableConstructor]
+    protected SplitCategorialColumnCommand(bool deserializing) : base(deserializing) { }
 
     public SplitCategorialColumnCommand(DataSet dataSet, string columnGroupName, int columnIndex)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/SplitDictionaryStyleDataCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/SplitDictionaryStyleDataCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeColumnGroup/SplitDictionaryStyleDataCommand.cs	(revision 9614)
@@ -34,8 +34,6 @@
   public class SplitDictionaryStyleDataCommand : ColumnGroupCommandWithAffectedColumnsBase {
     private int addedColumnsCount;
-
-    private SplitDictionaryStyleDataCommand()
-      : base(null, string.Empty, null) {
-    }
+    [StorableConstructor]
+    protected SplitDictionaryStyleDataCommand(bool deserializing) : base(deserializing) { }
 
     public SplitDictionaryStyleDataCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/AddNewColumnGroupCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/AddNewColumnGroupCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/AddNewColumnGroupCommand.cs	(revision 9614)
@@ -40,7 +40,6 @@
     private ColumnGroup newColumnGroup;
 
-    private AddNewColumnGroupCommand()
-      : base(null) {
-    }
+    [StorableConstructor]
+    protected AddNewColumnGroupCommand(bool deserializing) : base(deserializing) { }
 
     public AddNewColumnGroupCommand(DataSet dataSet)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/AlignColumnGroupsCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/AlignColumnGroupsCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/AlignColumnGroupsCommand.cs	(revision 9614)
@@ -23,5 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
@@ -41,7 +40,6 @@
     private int removePos2;
 
-    private AlignColumnGroupsCommand()
-      : base(null, null) {
-    }
+    [StorableConstructor]
+    protected AlignColumnGroupsCommand(bool deserializing) : base(deserializing) { }
 
     public AlignColumnGroupsCommand(DataSet dataSet, List<string> affectedColumnGroupNames)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnGroupCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnGroupCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnGroupCommand.cs	(revision 9614)
@@ -32,6 +32,7 @@
     private List<KeyValuePair<int, ColumnGroup>> deletedColumnGroups;
 
-    private DeleteColumnGroupCommand()
-      : base(null, null) {
+    [StorableConstructor]
+    protected DeleteColumnGroupCommand(bool deserializing)
+      : base(deserializing) {
       deletedColumnGroups = new List<KeyValuePair<int, ColumnGroup>>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnsWithTooFewValuesCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnsWithTooFewValuesCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/DeleteColumnsWithTooFewValuesCommand.cs	(revision 9614)
@@ -17,6 +17,7 @@
     private SortedDictionary<int, ColumnBase> deletedColumns;
     private ICollection<int> oldSortedColumnIndices;
-    private DeleteColumnsWithTooFewValuesCommand()
-      : base(null, string.Empty) {
+    [StorableConstructor]
+    protected DeleteColumnsWithTooFewValuesCommand(bool deserializing)
+      : base(deserializing) {
       deletedColumns = new SortedDictionary<int, ColumnBase>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MergeColumnGroupsCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MergeColumnGroupsCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MergeColumnGroupsCommand.cs	(revision 9614)
@@ -20,13 +20,11 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
+using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Windows.Forms;
 
 namespace HeuristicLab.DataImporter.Command {
@@ -38,6 +36,7 @@
     private ColumnGroup newColumnGroup;
 
-    private MergeColumnGroupsCommand()
-      : base(null, null) {
+    [StorableConstructor]
+    protected MergeColumnGroupsCommand(bool deserializing)
+      : base(deserializing) {
       oldColumnGroups = new SortedDictionary<int, ColumnGroup>();
       oldRowCounts = new List<int>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MoveColumnGroupLeftCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MoveColumnGroupLeftCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MoveColumnGroupLeftCommand.cs	(revision 9614)
@@ -20,9 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -35,7 +32,6 @@
   [ViewableCommandInfoAttribute("Move ColumnGroup left", 1, ColumnGroupState.Active, "ColumnGroup Commands", Position = 2)]
   public class MoveColumnGroupLeftCommand : DataSetCommandWithAffectedColumnGroupsBase {
-    private MoveColumnGroupLeftCommand()
-      : base(null, null) {
-    }
+    [StorableConstructor]
+    protected MoveColumnGroupLeftCommand(bool deserializing) : base(deserializing) { }
     public MoveColumnGroupLeftCommand(DataSet dataSet, List<string> affectedColumnGroups)
       : base(dataSet, affectedColumnGroups) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MoveColumnGroupRightCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MoveColumnGroupRightCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/MoveColumnGroupRightCommand.cs	(revision 9614)
@@ -20,9 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -35,7 +32,6 @@
   [ViewableCommandInfoAttribute("Move ColumnGroup right", 1, ColumnGroupState.Active, "ColumnGroup Commands", Position = 3)]
   public class MoveColumnGroupRightCommand : DataSetCommandWithAffectedColumnGroupsBase {
-    private MoveColumnGroupRightCommand()
-      : base(null, null) {
-    }
+    [StorableConstructor]
+    protected MoveColumnGroupRightCommand(bool deserializing) : base(deserializing) { }
 
     public MoveColumnGroupRightCommand(DataSet dataSet, List<string> affectedColumnGroups)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/SplitColumnGroupCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/SplitColumnGroupCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeDataset/SplitColumnGroupCommand.cs	(revision 9614)
@@ -20,8 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
@@ -40,8 +38,6 @@
     private ColumnGroup newColumnGroup2;
 
-    private SplitColumnGroupsCommand()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected SplitColumnGroupsCommand(bool deserializing) : base(deserializing) { }
     public SplitColumnGroupsCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
       : base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/BoxCoxTransformationCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/BoxCoxTransformationCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/BoxCoxTransformationCommand.cs	(revision 9614)
@@ -21,12 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -36,7 +32,6 @@
   Position = 6, OptionsView = typeof(BoxCoxTransformationCommandView))]
   public class BoxCoxTransformationCommand : ColumnGroupCommandWithAffectedColumnsBase {
-    private BoxCoxTransformationCommand()
-      : base(null, string.Empty, null) {
-    }
+    [StorableConstructor]
+    protected BoxCoxTransformationCommand(bool deserializing) : base(deserializing) { }
 
     public BoxCoxTransformationCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/DeleteRowsWithGivenValueCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/DeleteRowsWithGivenValueCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/DeleteRowsWithGivenValueCommand.cs	(revision 9614)
@@ -22,13 +22,11 @@
 using System;
 using System.Collections.Generic;
+using System.Drawing;
 using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Drawing;
 
 namespace HeuristicLab.DataImporter.Command {
@@ -39,6 +37,7 @@
     private Dictionary<int, IComparable[]> deletedRows;
 
-    private DeleteRowsWithGivenValueCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected DeleteRowsWithGivenValueCommand(bool deserializing)
+      : base(deserializing) {
       deletedRows = new Dictionary<int, IComparable[]>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterCommandBase.cs	(revision 9614)
@@ -20,13 +20,6 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
-using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -34,18 +27,17 @@
   [StorableClass]
   public abstract class FilterCommandBase : ColumnGroupCommandWithAffectedColumnsBase {
-     private FilterCommandBase()
-      : base(null,string.Empty,null) {
-    }
+    [StorableConstructor]
+    protected FilterCommandBase(bool deserializing) : base(deserializing) { }
 
-     public FilterCommandBase(DataSet dataSet, string columnGroupName, int[] affectedColumns)
+    public FilterCommandBase(DataSet dataSet, string columnGroupName, int[] affectedColumns)
       : base(dataSet, columnGroupName, affectedColumns) {
     }
 
-     [Storable]
-     private int windowSize;
-     public int WindowSize {
-       get { return this.windowSize; }
-       set { this.windowSize = value; }
-     }
+    [Storable]
+    private int windowSize;
+    public int WindowSize {
+      get { return this.windowSize; }
+      set { this.windowSize = value; }
+    }
   }
 }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterMovingAverageCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterMovingAverageCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterMovingAverageCommand.cs	(revision 9614)
@@ -22,11 +22,8 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -39,6 +36,7 @@
     private ICollection<int> oldSortedColumnIndices;
 
-    private FilterMovingAverageCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected FilterMovingAverageCommand(bool deserializing)
+      : base(deserializing) {
       oldColumns = new Dictionary<int, DoubleColumn>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterMovingMedianCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterMovingMedianCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterMovingMedianCommand.cs	(revision 9614)
@@ -20,13 +20,9 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -39,6 +35,7 @@
     private ICollection<int> oldSortedColumnIndices;
 
-    private FilterMovingMedianCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected FilterMovingMedianCommand(bool deserializing)
+      : base(deserializing) {
       oldColumns = new Dictionary<int, DoubleColumn>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterSavitzkyGolayCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterSavitzkyGolayCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/FilterSavitzkyGolayCommand.cs	(revision 9614)
@@ -46,6 +46,7 @@
     public int OrderOfDerivative { get; set; }
 
-    private FilterSavitzkyGolayCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected FilterSavitzkyGolayCommand(bool deserializing)
+      : base(deserializing) {
       oldColumns = new Dictionary<int, DoubleColumn>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/LinearTransformationCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/LinearTransformationCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/LinearTransformationCommand.cs	(revision 9614)
@@ -20,13 +20,8 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -36,7 +31,6 @@
   Position = 6, OptionsView = typeof(LinearTransformationCommandView))]
   public class LinearTransformationCommand : ColumnGroupCommandWithAffectedColumnsBase {
-    private LinearTransformationCommand()
-      : base(null, string.Empty, null) {
-    }
+    [StorableConstructor]
+    protected LinearTransformationCommand(bool deserializing) : base(deserializing) { }
 
     public LinearTransformationCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/NormalDistributionScalingCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/NormalDistributionScalingCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/NormalDistributionScalingCommand.cs	(revision 9614)
@@ -20,13 +20,9 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -38,6 +34,7 @@
     private List<KeyValuePair<double, double>> oldNormalDistribution;
 
-    private NormalDistributionScalingCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected NormalDistributionScalingCommand(bool deserializing)
+      : base(deserializing) {
       oldNormalDistribution = new List<KeyValuePair<double, double>>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/PercentalChangeCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/PercentalChangeCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/PercentalChangeCommand.cs	(revision 9614)
@@ -20,13 +20,9 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -38,6 +34,7 @@
     private ICollection<int> oldSortedColumnIndices;
 
-    private PercentalChangeCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected PercentalChangeCommand(bool deserializing)
+      : base(deserializing) {
       oldColumns = new Dictionary<int, DoubleColumn>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/ScalingBetweenMinAndMaxCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/ScalingBetweenMinAndMaxCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/ScalingBetweenMinAndMaxCommand.cs	(revision 9614)
@@ -20,14 +20,9 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -40,6 +35,7 @@
     private List<double> oldMaxValues;
 
-    private ScalingBetweenMinAndMaxCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected ScalingBetweenMinAndMaxCommand(bool deserializing)
+      : base(deserializing) {
       oldMinValues = new List<double>();
       oldMaxValues = new List<double>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchAndReplaceCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchAndReplaceCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchAndReplaceCommand.cs	(revision 9614)
@@ -22,13 +22,10 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using System.Drawing;
 using System.Windows.Forms;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -42,6 +39,7 @@
     private Dictionary<ColumnBase, SortOrder> oldSortOrder;
 
-    private SearchAndReplaceCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected SearchAndReplaceCommand(bool deserializing)
+      : base(deserializing) {
       changedCells = new Dictionary<Point, IComparable>();
       oldSorteColumnIndices = new List<int>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchCommandBase.cs	(revision 9614)
@@ -20,29 +20,23 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.DataImporter.Data.Model;
 
 namespace HeuristicLab.DataImporter.Command {
   [StorableClass]
   public abstract class SearchCommandBase : ColumnGroupCommandWithAffectedColumnsBase {
-     private SearchCommandBase()
-      : base(null,string.Empty,null) {
-    }
-
-     public SearchCommandBase(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
+    [StorableConstructor]
+    protected SearchCommandBase(bool deserializing) : base(deserializing) { }
+    protected SearchCommandBase(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
       base(dataSet, columnGroupName, affectedColumns) {
     }
 
-     [Storable]
-     private string searchValue;
-     public string SearchValue {
-       get { return this.searchValue; }
-       set { this.searchValue = string.IsNullOrEmpty(value) ? null : value.Trim(); }
-     }
+    [Storable]
+    private string searchValue;
+    public string SearchValue {
+      get { return this.searchValue; }
+      set { this.searchValue = string.IsNullOrEmpty(value) ? null : value.Trim(); }
+    }
   }
 }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchWithMatchOperationCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchWithMatchOperationCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/ChangeValues/SearchWithMatchOperationCommandBase.cs	(revision 9614)
@@ -22,10 +22,8 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using System.Drawing;
 using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.DataImporter.Data.Model;
-using System.Drawing;
 
 namespace HeuristicLab.DataImporter.Command {
@@ -39,9 +37,7 @@
   [StorableClass]
   public abstract class SearchWithMatchOperationCommandBase : SearchCommandBase {
-    private SearchWithMatchOperationCommandBase()
-      : base(null, string.Empty, null) {
-    }
-
-    public SearchWithMatchOperationCommandBase(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
+    [StorableConstructor]
+    protected SearchWithMatchOperationCommandBase(bool deserializing) : base(deserializing) { }
+    protected SearchWithMatchOperationCommandBase(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
       base(dataSet, columnGroupName, affectedColumns) {
     }
@@ -121,9 +117,10 @@
           break;
         case MatchOperation.Larger:
-          compareFunction = (left, right) => { 
+          compareFunction = (left, right) => {
             if (left == null && right == null) return false;
             else if (left != null && right == null) return false;
             else if (left == null && right != null) return false;
-            return left.CompareTo(right) < 0; };
+            return left.CompareTo(right) < 0;
+          };
           break;
         default:
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteColumnsWithMissingValuesThresholdCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteColumnsWithMissingValuesThresholdCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteColumnsWithMissingValuesThresholdCommand.cs	(revision 9614)
@@ -38,7 +38,6 @@
     public double Threshold { get { return threshold; } set { threshold = value; } }
 
-    private DeleteColumnsWithMissingValuesThresholdCommand()
-      : base(null, string.Empty, null) {
-    }
+    [StorableConstructor]
+    protected DeleteColumnsWithMissingValuesThresholdCommand(bool deserializing) : base(deserializing) { }
 
     public DeleteColumnsWithMissingValuesThresholdCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteRowsWithMissingValuesCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteRowsWithMissingValuesCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteRowsWithMissingValuesCommand.cs	(revision 9614)
@@ -35,6 +35,7 @@
     private ICollection<int> oldSortedColumnIndices;
 
-    private DeleteRowsWithMissingValuesCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected DeleteRowsWithMissingValuesCommand(bool deserializing)
+      : base(deserializing) {
       oldColumns = new List<ColumnBase>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteRowsWithMissingValuesThresholdCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteRowsWithMissingValuesThresholdCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/DeleteRowsWithMissingValuesThresholdCommand.cs	(revision 9614)
@@ -40,6 +40,7 @@
     public double Threshold { get { return threshold; } set { threshold = value; } }
 
-    private DeleteRowsWithMissingValuesThresholdCommand()
-      : base(null, string.Empty) {
+    [StorableConstructor]
+    protected DeleteRowsWithMissingValuesThresholdCommand(bool deserializing)
+      : base(deserializing) {
       deletedRows = new Dictionary<int, IComparable[]>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValueCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValueCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValueCommandBase.cs	(revision 9614)
@@ -20,10 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
@@ -37,6 +33,7 @@
     protected IEnumerable<SortOrder> oldSortOrder;
 
-    private FillMissingValueCommandBase()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected FillMissingValueCommandBase(bool deserializing)
+      : base(deserializing) {
       nullValues = new Dictionary<int, List<int>>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithLinearInterpolation.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithLinearInterpolation.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithLinearInterpolation.cs	(revision 9614)
@@ -20,8 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
@@ -35,8 +33,6 @@
     "Handle Missing Values", Position = 2)]
   public class FillMissingValuesWithLinearInterpolation : FillMissingValueCommandBase {
-    private FillMissingValuesWithLinearInterpolation()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected FillMissingValuesWithLinearInterpolation(bool deserializing) : base(deserializing) { }
     public FillMissingValuesWithLinearInterpolation(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
       base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithMeanCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithMeanCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithMeanCommand.cs	(revision 9614)
@@ -20,8 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
@@ -35,8 +33,6 @@
     "Handle Missing Values", Position = 0)]
   public class FillMissingValuesWithMeanCommand : FillMissingValueCommandBase {
-    private FillMissingValuesWithMeanCommand()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected FillMissingValuesWithMeanCommand(bool deserializing) : base(deserializing) { }
     public FillMissingValuesWithMeanCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
       base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithMedianCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithMedianCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithMedianCommand.cs	(revision 9614)
@@ -20,8 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
@@ -35,8 +33,6 @@
     "Handle Missing Values", Position = 1)]
   public class FillMissingValuesWithMedianCommand : FillMissingValueCommandBase {
-    private FillMissingValuesWithMedianCommand()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected FillMissingValuesWithMedianCommand(bool deserializing) : base(deserializing) { }
     public FillMissingValuesWithMedianCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
       base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithPreviousValuesCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithPreviousValuesCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/MissingValues/FillMissingValuesWithPreviousValuesCommand.cs	(revision 9614)
@@ -23,5 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data;
@@ -34,8 +33,6 @@
   [ViewableCommandInfoAttribute("Previous Value", 1, ColumnGroupState.AnySelectedColumnContainsNull, "Handle Missing Values", Position = 3)]
   public class FillMissingValuesWithPreviousValuesCommand : FillMissingValueCommandBase {
-    private FillMissingValuesWithPreviousValuesCommand()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected FillMissingValuesWithPreviousValuesCommand(bool deserializing) : base(deserializing) { }
     public FillMissingValuesWithPreviousValuesCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns) :
       base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/ChangeDateTimeColumnToDoubleColumn.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/ChangeDateTimeColumnToDoubleColumn.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/ChangeDateTimeColumnToDoubleColumn.cs	(revision 9614)
@@ -23,11 +23,10 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.DataImporter.Command.View;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Command.View;
-using System.Windows.Forms;
 
 namespace HeuristicLab.DataImporter.Command {
@@ -42,6 +41,7 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private ChangeDateTimeColumnToDoubleColumn()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected ChangeDateTimeColumnToDoubleColumn(bool deserializing)
+      : base(deserializing) {
       newColumns = new List<ColumnBase>();
       oldColumns = new List<ColumnBase>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/DeleteNotEquidistantRowsCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/DeleteNotEquidistantRowsCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/DeleteNotEquidistantRowsCommand.cs	(revision 9614)
@@ -23,11 +23,9 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -42,6 +40,7 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private DeleteNotEquidistantRowsCommand()
-      : base(null, string.Empty) {
+    [StorableConstructor]
+    protected DeleteNotEquidistantRowsCommand(bool deserializing)
+      : base(deserializing) {
       oldColumns = new List<ColumnBase>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/EquidistantSamplingCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/EquidistantSamplingCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/EquidistantSamplingCommand.cs	(revision 9614)
@@ -23,11 +23,9 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -40,8 +38,6 @@
     private DateTimeColumn columnToSample;
 
-    private EquidistantSamplingCommand()
-      : base(null, string.Empty) {
-    }
-
+    [StorableConstructor]
+    protected EquidistantSamplingCommand(bool deserializing) : base(deserializing) { }
     public EquidistantSamplingCommand(DataSet dataSet, string columnGroupName)
       : base(dataSet, columnGroupName) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/EquidistantTimeSeriesCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/EquidistantTimeSeriesCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/EquidistantTimeSeriesCommandBase.cs	(revision 9614)
@@ -21,19 +21,14 @@
 
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
+using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
 
 namespace HeuristicLab.DataImporter.Command {
   [StorableClass]
   public abstract class EquidistantTimeSeriesCommandBase : ColumnGroupCommandBase {
-    private EquidistantTimeSeriesCommandBase()
-      : base(null, string.Empty) {
-    }
-
+    [StorableConstructor]
+    protected EquidistantTimeSeriesCommandBase(bool deserializing) : base(deserializing) { }
     public EquidistantTimeSeriesCommandBase(DataSet dataSet, string columnGroupName)
       : base(dataSet, columnGroupName) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/InterpolateMissingValues.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/InterpolateMissingValues.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/InterpolateMissingValues.cs	(revision 9614)
@@ -23,10 +23,8 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -39,8 +37,6 @@
     private DateTimeColumn columnToSample;
 
-    private InterpolateMissingValues()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected InterpolateMissingValues(bool deserializing) : base(deserializing) { }
     public InterpolateMissingValues(DataSet dataSet, string columnGroupName, int[] affectedColumns)
       : base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/SetPartOfDateTimeCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/SetPartOfDateTimeCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Command/TimeSeries/SetPartOfDateTimeCommand.cs	(revision 9614)
@@ -23,11 +23,9 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using System.Xml;
+using HeuristicLab.DataImporter.Command.View;
+using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data;
-using HeuristicLab.DataImporter.Command.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -41,8 +39,6 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private SetPartOfDateTimeCommand()
-      : base(null, string.Empty, null) {
-    }
-
+    [StorableConstructor]
+    protected SetPartOfDateTimeCommand(bool deserializing) : base(deserializing) { }
     public SetPartOfDateTimeCommand(DataSet dataSet, string columnGroupName, int[] affectedColumns)
       : base(dataSet, columnGroupName, affectedColumns) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/AddRowCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/AddRowCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/AddRowCommand.cs	(revision 9614)
@@ -23,6 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -40,7 +38,6 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private AddRowCommand()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected AddRowCommand(bool deserializing) : base(deserializing) { }
 
     public AddRowCommand(DataSet dataSet, string columnGroupName, IComparable[] row)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/ChangeValueCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/ChangeValueCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/ChangeValueCommand.cs	(revision 9614)
@@ -23,6 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -42,7 +40,6 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private ChangeValueCommand()
-      : base(null, string.Empty, -1) {
-    }
+    [StorableConstructor]
+    protected ChangeValueCommand(bool deserializing) : base(deserializing) { }
 
     public ChangeValueCommand(DataSet dataSet, string columnGroupName, int columnIndex, int position, IComparable newValue)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/ChangeValuesToNullCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/ChangeValuesToNullCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/ChangeValuesToNullCommand.cs	(revision 9614)
@@ -22,8 +22,6 @@
 using System;
 using System.Collections.Generic;
+using System.Drawing;
 using System.Linq;
-using System.Text;
-using System.Drawing;
-using System.Xml;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -40,7 +38,6 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private ChangeValuesToNullCommand()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected ChangeValuesToNullCommand(bool deserializing) : base(deserializing) { }
 
     public ChangeValuesToNullCommand(DataSet dataSet, string columnGroupName, IEnumerable<Point> cellIndexes)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/DeleteColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/DeleteColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/DeleteColumnCommand.cs	(revision 9614)
@@ -33,6 +33,7 @@
     private List<int> oldSortedColumnIndices;
 
-    private DeleteColumnCommand()
-      : base(null, string.Empty, null) {
+    [StorableConstructor]
+    protected DeleteColumnCommand(bool deserializing)
+      : base(deserializing) {
       deletedColumns = new List<ColumnBase>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/DeleteRowsCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/DeleteRowsCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/DeleteRowsCommand.cs	(revision 9614)
@@ -23,6 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
@@ -37,8 +35,6 @@
     private List<IComparable[]> oldrows;
 
-    private DeleteRowsCommand()
-      : base(null, string.Empty) {
-      this.oldrows = new List<IComparable[]>();
-    }
+    [StorableConstructor]
+    protected DeleteRowsCommand(bool deserializing) : base(deserializing) { }
 
     public DeleteRowsCommand(DataSet dataSet, string columnGroupName, IEnumerable<int> rowIndexes)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/InsertRowCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/InsertRowCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/InsertRowCommand.cs	(revision 9614)
@@ -20,9 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -39,7 +36,6 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private InsertRowCommand()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected InsertRowCommand(bool deserializing) : base(deserializing) { }
 
     public InsertRowCommand(DataSet dataSet, string columnGroupName, int position)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/PasteValuesCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/PasteValuesCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/PasteValuesCommand.cs	(revision 9614)
@@ -23,7 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Globalization;
-using System.Xml;
 using System.Windows.Forms;
 using HeuristicLab.DataImporter.Data.CommandBase;
@@ -46,7 +43,6 @@
     private IEnumerable<SortOrder> oldSortOrder;
 
-    private PasteValuesCommand()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected PasteValuesCommand(bool deserializing) : base(deserializing) { }
 
     public PasteValuesCommand(DataSet dataSet, string columnGroupName, int columnIndex, int rowIndex, string values)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/RenameColumnCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/RenameColumnCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/RenameColumnCommand.cs	(revision 9614)
@@ -20,11 +20,6 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -37,7 +32,6 @@
     private string oldName;
 
-    private RenameColumnCommand()
-      : base(null, string.Empty, -1) {
-    }
+    [StorableConstructor]
+    protected RenameColumnCommand(bool deserializing) : base(deserializing) { }
 
     public RenameColumnCommand(DataSet dataSet, string columnGroupName, int columnIndex, string newName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/RenameColumnGroupCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/RenameColumnGroupCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/RenameColumnGroupCommand.cs	(revision 9614)
@@ -20,11 +20,7 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -37,7 +33,6 @@
     private string oldName;
 
-    private RenameColumnGroupCommand()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected RenameColumnGroupCommand(bool deserializing) : base(deserializing) { }
 
     public RenameColumnGroupCommand(DataSet dataSet, string columnGroupName, string newName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/SortCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/SortCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Command/SortCommand.cs	(revision 9614)
@@ -23,7 +23,5 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
 using System.Windows.Forms;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
@@ -41,7 +39,6 @@
     private int[] indices;
 
-    private SortCommand()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected SortCommand(bool deserializing) : base(deserializing) { }
 
     public SortCommand(DataSet dataSet, string columnGroupName, int sortColumnIndex) :
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnCommandBase.cs	(revision 9614)
@@ -34,7 +34,6 @@
     private int columnIndex;
 
-    private ColumnCommandBase()
-      : base(null, string.Empty) {
-    }
+    [StorableConstructor]
+    protected ColumnCommandBase(bool deserializing) : base(deserializing) { }
 
     protected ColumnCommandBase(DataSet dataSet, string columnGroupName, int columnIndex)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnGroupCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnGroupCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnGroupCommandBase.cs	(revision 9614)
@@ -27,7 +27,6 @@
   [StorableClass]
   public abstract class ColumnGroupCommandBase : DataSetCommandBase {
-    private ColumnGroupCommandBase()
-      : base(null) {
-    }
+    [StorableConstructor]
+    protected ColumnGroupCommandBase(bool deserializing) : base(deserializing) { }
 
     protected ColumnGroupCommandBase(DataSet dataSet, string columnGroupName)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnGroupCommandWithAffectedColumnsBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnGroupCommandWithAffectedColumnsBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/ColumnGroupCommandWithAffectedColumnsBase.cs	(revision 9614)
@@ -20,9 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -31,7 +26,6 @@
   [StorableClass]
   public abstract class ColumnGroupCommandWithAffectedColumnsBase : ColumnGroupCommandBase {
-    private ColumnGroupCommandWithAffectedColumnsBase()
-      : base(null,string.Empty) {
-    }
+    [StorableConstructor]
+    protected ColumnGroupCommandWithAffectedColumnsBase(bool deserializing) : base(deserializing) { }
 
     protected ColumnGroupCommandWithAffectedColumnsBase(DataSet dataSet, string columnGroupName, int[] affectedColumns)
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/CommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/CommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/CommandBase.cs	(revision 9614)
@@ -20,8 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -29,4 +25,6 @@
   [StorableClass]
   public abstract class CommandBase : ICommand {
+    [StorableConstructor]
+    protected CommandBase(bool deserializing) : base() { }
     protected CommandBase() { }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/DataSetCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/DataSetCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/DataSetCommandBase.cs	(revision 9614)
@@ -20,8 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -30,6 +26,6 @@
   [StorableClass]
   public abstract class DataSetCommandBase : CommandBase {
-    private DataSetCommandBase() {
-    }
+    [StorableConstructor]
+    protected DataSetCommandBase(bool deserializing) : base(deserializing) { }
 
     protected DataSetCommandBase(DataSet dataSet) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/DataSetCommandWithAffectedColumnGroupsBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/DataSetCommandWithAffectedColumnGroupsBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandBase/DataSetCommandWithAffectedColumnGroupsBase.cs	(revision 9614)
@@ -20,9 +20,5 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.Model;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -31,8 +27,6 @@
   [StorableClass]
   public abstract class DataSetCommandWithAffectedColumnGroupsBase : DataSetCommandBase {
-    private DataSetCommandWithAffectedColumnGroupsBase()
-      : base(null) {
-    }
-
+    [StorableConstructor]
+    protected DataSetCommandWithAffectedColumnGroupsBase(bool deserializing) : base(deserializing) { }
     protected DataSetCommandWithAffectedColumnGroupsBase(DataSet dataSet, List<string> affectedColumnGroupNames)
       : base(dataSet) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandChain.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandChain.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/CommandChain.cs	(revision 9614)
@@ -22,7 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -61,4 +58,9 @@
     }
 
+    [StorableConstructor]
+    protected CommandChain(bool deserializing)
+      : base() {
+      this.commands = new LinkedList<ICommand>();
+    }
     public CommandChain() {
       this.commands = new LinkedList<ICommand>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/DateTimeSpan.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/DateTimeSpan.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/DateTimeSpan.cs	(revision 9614)
@@ -21,6 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Xml;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -28,4 +26,8 @@
   [StorableClass]
   public class DateTimeSpan : ICloneable {
+    public DateTimeSpan() : base() { }
+    [StorableConstructor]
+    protected DateTimeSpan(bool deserializing) : base() { }
+
     [Storable]
     public int Seconds { get; set; }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ColumnBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ColumnBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ColumnBase.cs	(revision 9614)
@@ -28,18 +28,14 @@
   [StorableClass]
   public abstract class ColumnBase {
-    private ColumnBase() {
-    }
+    [StorableConstructor]
+    protected ColumnBase(bool deserializing) : base() { }
 
     protected ColumnBase(string name)
-      : this() {
+      : base() {
       this.sortOrder = SortOrder.None;
       this.name = name;
     }
 
-    private Type dataType;
-    public Type DataType {
-      get { return dataType; }
-      protected set { this.dataType = value; }
-    }
+    public abstract Type DataType { get; }
 
     [Storable]
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ColumnGroup.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ColumnGroup.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ColumnGroup.cs	(revision 9614)
@@ -29,5 +29,6 @@
   [StorableClass]
   public class ColumnGroup {
-
+    [StorableConstructor]
+    protected ColumnGroup(bool deserializing) : base() { }
     public ColumnGroup()
       : base() {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DataSet.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DataSet.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DataSet.cs	(revision 9614)
@@ -23,7 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
-using HeuristicLab.DataImporter.Data.View;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -37,5 +34,6 @@
       get { return this.columnGroups; }
     }
-
+    [StorableConstructor]
+    protected DataSet(bool deserializing) : base() { }
     public DataSet() {
       this.columnGroups = new List<ColumnGroup>();
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DateTimeColumn.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DateTimeColumn.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DateTimeColumn.cs	(revision 9614)
@@ -22,7 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
 using System.Globalization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -34,11 +31,9 @@
     private List<DateTime?> values;
 
-    private DateTimeColumn() : base(string.Empty) {
-      this.DataType = typeof(DateTime?);
-    }
+    [StorableConstructor]
+    protected DateTimeColumn(bool deserializing) : base(deserializing) { }
 
     public DateTimeColumn(string columnName)
       : base(columnName) {
-      this.DataType = typeof(DateTime?);
       this.values = new List<DateTime?>();
     }
@@ -47,4 +42,8 @@
       : this(columnName) {
       this.values.Capacity = capacity;
+    }
+
+    public override Type DataType {
+      get { return typeof(DateTime?); }
     }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DoubleColumn.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DoubleColumn.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/DoubleColumn.cs	(revision 9614)
@@ -21,10 +21,8 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
-using System.Collections;
+using System.Globalization;
 using System.Linq;
-using System.Text;
-using System.Xml;
-using System.Globalization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,11 +33,9 @@
     private List<double?> values;
 
-    private DoubleColumn() :base(string.Empty) {
-      this.DataType = typeof(double?);
-    }
+    [StorableConstructor]
+    protected DoubleColumn(bool deserializing) : base(deserializing) { }
 
     public DoubleColumn(string columnName)
       : base(columnName) {
-      this.DataType = typeof(double?);
       this.values = new List<double?>();
     }
@@ -48,4 +44,8 @@
       : this(columnName) {
       this.values.Capacity = capacity;
+    }
+
+    public override Type DataType {
+      get { return typeof(double?); }
     }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ProgrammableColumn.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ProgrammableColumn.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/ProgrammableColumn.cs	(revision 9614)
@@ -21,10 +21,6 @@
 
 using System;
-using System.Collections.Generic;
 using System.Collections;
 using System.Linq;
-using System.Text;
-using System.Xml;
-using System.Globalization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -36,14 +32,15 @@
     private int myIndexInColumnGroup;
 
-    private ProgrammableColumn()
-      : base(string.Empty) {
-      this.DataType = typeof(double?);
-    }
+    [StorableConstructor]
+    protected ProgrammableColumn(bool deserializing) : base(deserializing) { }
 
     public ProgrammableColumn(string columnName, ColumnGroup columnGroup)
       : base(columnName) {
-      this.DataType = typeof(double?);
       this.ColumnGroup = columnGroup;
       Expression = string.Empty;
+    }
+
+    public override Type DataType {
+      get { return typeof(double?); }
     }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/StringColumn.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/StringColumn.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.Data/Model/StringColumn.cs	(revision 9614)
@@ -21,10 +21,6 @@
 
 using System;
+using System.Collections;
 using System.Collections.Generic;
-using System.Collections;
-using System.Linq;
-using System.Text;
-using System.Xml;
-using System.Globalization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -35,11 +31,9 @@
     private List<string> values;
 
-    private StringColumn() :base(string.Empty) {
-      this.DataType = typeof(string);
-    }
+    [StorableConstructor]
+    protected StringColumn(bool deserializing) : base(deserializing) { }
 
     public StringColumn(string columnName)
       : base(columnName) {
-      this.DataType = typeof(string);
       this.values = new List<string>();
     }
@@ -48,4 +42,8 @@
       : this(columnName) {
       this.values.Capacity = capacity;
+    }
+
+    public override Type DataType {
+      get { return typeof(string); }
     }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/DataBaseCommandBase.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/DataBaseCommandBase.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/DataBaseCommandBase.cs	(revision 9614)
@@ -1,8 +1,25 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿#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.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.DbExplorer.Interfaces;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -11,8 +28,6 @@
   [StorableClass]
   public abstract class DatabaseCommandBase : DataSetCommandBase {
-    private DatabaseCommandBase()
-      : base(null) {
-    }
-
+    [StorableConstructor]
+    protected DatabaseCommandBase(bool deserializing) : base(deserializing) { }
     protected DatabaseCommandBase(DataSet dataSet, IDbExplorer dbExplorer)
       : base(dataSet) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/LoadColumnGroupWithSqlStringFromDBCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/LoadColumnGroupWithSqlStringFromDBCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/LoadColumnGroupWithSqlStringFromDBCommand.cs	(revision 9614)
@@ -20,11 +20,6 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.DbExplorer.Interfaces;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -38,8 +33,6 @@
     private ColumnGroup newColumnGroup;
 
-    private LoadColumnGroupWithSqlStringFromDBCommand()
-      : base(null, null) {
-    }
-
+    [StorableConstructor]
+    protected LoadColumnGroupWithSqlStringFromDBCommand(bool deserializing) : base(deserializing) { }
     public LoadColumnGroupWithSqlStringFromDBCommand(DataSet dataSet, IDbExplorer dbExplorer, string sqlString)
       : base(dataSet, dbExplorer) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/LoadColumnGroupsFromDBCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/LoadColumnGroupsFromDBCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/LoadColumnGroupsFromDBCommand.cs	(revision 9614)
@@ -20,11 +20,7 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
+using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
-using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.DbExplorer.Interfaces;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
@@ -38,6 +34,7 @@
     private List<ColumnGroup> newColumnGroups;
 
-    private LoadColumnGroupsFromDBCommand()
-      : base(null, null) {
+    [StorableConstructor]
+    protected LoadColumnGroupsFromDBCommand(bool deserializing)
+      : base(deserializing) {
       this.newColumnGroups = new List<ColumnGroup>();
     }
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/ReorderColumnsCommand.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/ReorderColumnsCommand.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Command/ReorderColumnsCommand.cs	(revision 9614)
@@ -20,9 +20,6 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.DataImporter.Data.CommandBase;
 using HeuristicLab.DataImporter.Data.Model;
@@ -35,8 +32,6 @@
     private Dictionary<string, int[]> displayedIndexes;
 
-    private ReorderColumnsCommand()
-      : base(null) {
-    }
-
+    [StorableConstructor]
+    protected ReorderColumnsCommand(bool deserializing) : base(deserializing) { }
     public ReorderColumnsCommand(DataSet ds, Dictionary<string, int[]> displayedIndexes)
       : base(ds) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/DataProcessor.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/DataProcessor.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/DataProcessor.cs	(revision 9614)
@@ -20,20 +20,20 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
-using HeuristicLab.DataImporter.DbExplorer.Interfaces;
 using HeuristicLab.DataImporter.Data;
 using HeuristicLab.DataImporter.Data.Model;
+using HeuristicLab.DataImporter.DbExplorer.Interfaces;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.DataImporter.DataProcessor {
   [StorableClass]
-  public class DataProcessor{
+  public class DataProcessor {
     public DataProcessor() {
       this.commandChain = new CommandChain();
       this.dataSet = new DataSet();
+    }
+    [StorableConstructor]
+    protected DataProcessor(bool deserializing)
+      : base() {
+      this.commandChain = new CommandChain();
     }
 
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Plugin.cs.frame
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Plugin.cs.frame	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DataProcessor/Plugin.cs.frame	(revision 9614)
@@ -31,6 +31,6 @@
   [PluginFile("HeuristicLab.DataImporter.DataProcessor-1.0.dll", PluginFileType.Assembly)]
   [PluginFile("HeuristicLab.DataImporter.DbExplorer.Interfaces-1.0.dll", PluginFileType.Assembly)]
-  [PluginDependency("HeuristicLab.ALGLIB","3.6")]
   [PluginDependency("HeuristicLab.Common.Resources","3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis","3.4")]
   [PluginDependency("HeuristicLab.Persistence","3.3")]
   public class HeuristicLabDataImporterDataProcessorPlugin : PluginBase {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DbExplorer.Interfaces/DbColumn.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DbExplorer.Interfaces/DbColumn.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DbExplorer.Interfaces/DbColumn.cs	(revision 9614)
@@ -20,9 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -30,7 +25,6 @@
   [StorableClass]
   public class DbColumn {
-    private DbColumn()
-      : base() {
-    }
+    [StorableConstructor]
+    protected DbColumn(bool deserializing) : base() { }
 
     public DbColumn(string columnName, string sqlDataType) {
Index: /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DbExplorer.Interfaces/DbTable.cs
===================================================================
--- /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DbExplorer.Interfaces/DbTable.cs	(revision 9613)
+++ /branches/HeuristicLab.DataImporter/HeuristicLab.DataImporter.DbExplorer.Interfaces/DbTable.cs	(revision 9614)
@@ -23,6 +23,4 @@
 using System.Collections.Generic;
 using System.Linq;
-using System.Text;
-using System.Xml;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
@@ -30,12 +28,14 @@
   [StorableClass]
   public class DbTable {
-    private DbTable()
+    [StorableConstructor]
+    protected DbTable(bool deserializing)
       : base() {
-      this.columns = new List<DbColumn>();
       this.informationLoaded = new DateTime(1990, 1, 1);
     }
 
     public DbTable(string ownerName, string tableName)
-      : this() {
+      : base() {
+      this.informationLoaded = new DateTime(1990, 1, 1);
+      this.columns = new List<DbColumn>();
       this.ownerName = ownerName;
       this.tableName = tableName;
