Index: trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGA.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGA.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGA.cs	(revision 3017)
@@ -38,5 +38,5 @@
   [Item("SGA", "A standard genetic algorithm.")]
   [Creatable("Algorithms")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class SGA : EngineAlgorithm {
     #region Problem Properties
Index: trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGAOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGAOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGAOperator.cs	(revision 3017)
@@ -35,5 +35,5 @@
   [Item("SGAOperator", "An operator which represents a Standard Genetic Algorithm.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class SGAOperator : AlgorithmOperator {
     #region Parameter properties
Index: trunk/sources/HeuristicLab.Algorithms.TS/3.3/TSOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.TS/3.3/TSOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Algorithms.TS/3.3/TSOperator.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("TSOperator", "An operator which represents a Tabu Search.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TSOperator : AlgorithmOperator {
     #region Parameter properties
Index: trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuListCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuListCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuListCreator.cs	(revision 3017)
@@ -30,5 +30,5 @@
 namespace HeuristicLab.Algorithms.TS {
   [Item("TabuListCreator", "An operator that creates a new empty tabu list. It can also replace an existing tabu list with a new empty one.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TabuListCreator : SingleSuccessorOperator {
     public ValueLookupParameter<ItemList<IItem>> TabuListParameter {
Index: trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuSelector.cs	(revision 3017)
@@ -37,5 +37,5 @@
   /// </remarks>
   [Item("TabuSelector", "An operator that selects the best move that is either not tabu or satisfies the aspiration criterion. It expects the move subscopes to be sorted.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TabuSelector : Selector {
     /// <summary>
Index: trunk/sources/HeuristicLab.Analysis/3.3/BestAverageWorstQualityCalculator.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/BestAverageWorstQualityCalculator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Analysis/3.3/BestAverageWorstQualityCalculator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("BestAverageWorstQualityCalculator", "An operator which calculates the best, average and worst solution quality of the current population.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class BestAverageWorstQualityCalculator : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Analysis/3.3/BestQualityMemorizer.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/BestQualityMemorizer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Analysis/3.3/BestQualityMemorizer.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("BestQualityMemorizer", "An operator that updates the best quality found so far with those qualities in the subscopes.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class BestQualityMemorizer : SingleSuccessorOperator {
     public IValueLookupParameter<BoolData> MaximizationParameter {
Index: trunk/sources/HeuristicLab.Analysis/3.3/DataRow.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/DataRow.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Analysis/3.3/DataRow.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("DataRow", "A row of data values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class DataRow : NamedItem {
     [Storable]
Index: trunk/sources/HeuristicLab.Analysis/3.3/DataTable.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/DataTable.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Analysis/3.3/DataTable.cs	(revision 3017)
@@ -29,5 +29,5 @@
   [Item("DataTable", "A table of data values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class DataTable : NamedItem {
     [Storable]
Index: trunk/sources/HeuristicLab.Analysis/3.3/DataTableValuesCollector.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/DataTableValuesCollector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Analysis/3.3/DataTableValuesCollector.cs	(revision 3017)
@@ -33,5 +33,5 @@
   [Item("DataTableValuesCollector", "An operator which collects the actual values of parameters and adds them to a table of data values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class DataTableValuesCollector : ValuesCollector {
     public ValueLookupParameter<DataTable> DataTableParameter {
Index: trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ObservableArray.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ObservableArray<T> : IObservableArray<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ObservableCollection.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ObservableCollection<T> : IObservableCollection<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ObservableDictionary.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ObservableDictionary<TKey, TValue> : IObservableDictionary<TKey, TValue> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ObservableKeyedCollection.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class ObservableKeyedCollection<TKey, TItem> : IObservableKeyedCollection<TKey, TItem> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ObservableList.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ObservableList<T> : IObservableList<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ObservableSet.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ObservableSet<T> : IObservableSet<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableArray.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ReadOnlyObservableArray<T> : IObservableArray<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableCollection.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ReadOnlyObservableCollection<T> : IObservableCollection<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableDictionary.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ReadOnlyObservableDictionary<TKey, TValue> : IObservableDictionary<TKey, TValue> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableKeyedCollection.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ReadOnlyObservableKeyedCollection<TKey, TItem> : IObservableKeyedCollection<TKey, TItem> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableList.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ReadOnlyObservableList<T> : IObservableList<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs
===================================================================
--- trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Collections/3.3/ReadOnlyObservableSet.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Collections {
   [Serializable]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ReadOnlyObservableSet<T> : IObservableSet<T> {
     [Storable]
Index: trunk/sources/HeuristicLab.Core/3.3/DeepCloneable.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/DeepCloneable.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/DeepCloneable.cs	(revision 3017)
@@ -27,5 +27,5 @@
   /// Represents a base class for all deeply cloneable objects.
   /// </summary>
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class DeepCloneable : IDeepCloneable {
     /// <summary>
Index: trunk/sources/HeuristicLab.Core/3.3/Engine.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Engine.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/Engine.cs	(revision 3017)
@@ -34,5 +34,5 @@
   /// </summary>
   [Item("Engine", "A base class for engines.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class Engine : Item, IEngine {
     public override Image ItemImage {
Index: trunk/sources/HeuristicLab.Core/3.3/ExecutionContext.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ExecutionContext.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ExecutionContext.cs	(revision 3017)
@@ -25,5 +25,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ExecutionContext : DeepCloneable, IExecutionContext, IAtomicOperation {
     [Storable]
Index: trunk/sources/HeuristicLab.Core/3.3/Item.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Item.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/Item.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// Represents the base class for all basic item types.
   /// </summary>
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("Item", "Base class for all HeuristicLab items.")]
   public abstract class Item : DeepCloneable, IItem {
Index: trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemArray.cs	(revision 3017)
@@ -32,5 +32,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ItemArray<T>", "Represents an array of items.")]
   public class ItemArray<T> : ObservableArray<T>, IItem where T : class, IItem {
Index: trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemCollection.cs	(revision 3017)
@@ -29,5 +29,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ItemCollection<T>", "Represents a collection of items.")]
   public class ItemCollection<T> : ObservableCollection<T>, IItem where T : class, IItem {
Index: trunk/sources/HeuristicLab.Core/3.3/ItemList.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemList.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemList.cs	(revision 3017)
@@ -33,5 +33,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ItemList<T>", "Represents a list of items.")]
   public class ItemList<T> : ObservableList<T>, IItem where T : class, IItem {
Index: trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ItemSet.cs	(revision 3017)
@@ -33,5 +33,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ItemSet<T>", "Represents a set of items.")]
   public class ItemSet<T> : ObservableSet<T>, IItem where T : class, IItem {
Index: trunk/sources/HeuristicLab.Core/3.3/NamedItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/NamedItem.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/NamedItem.cs	(revision 3017)
@@ -26,5 +26,5 @@
 namespace HeuristicLab.Core {
   [Item("NamedItem", "Base class for items which have a name and an optional description.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class NamedItem : Item, INamedItem {
     [Storable]
Index: trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/NamedItemCollection.cs	(revision 3017)
@@ -30,5 +30,5 @@
 namespace HeuristicLab.Core {
   [Item("NamedItemCollection<T>", "Represents a collection of named items.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class NamedItemCollection<T> : ObservableKeyedCollection<string, T>, IItem where T : class, INamedItem {
     public virtual string ItemName {
Index: trunk/sources/HeuristicLab.Core/3.3/OperationCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/OperationCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/OperationCollection.cs	(revision 3017)
@@ -25,5 +25,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class OperationCollection : DeepCloneable, IList<IOperation>, IOperation {
     [Storable]
Index: trunk/sources/HeuristicLab.Core/3.3/OperatorCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/OperatorCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/OperatorCollection.cs	(revision 3017)
@@ -29,5 +29,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("OperatorCollection", "Represents a collection of operators.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Core/3.3/OperatorGraph.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/OperatorGraph.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/OperatorGraph.cs	(revision 3017)
@@ -35,5 +35,5 @@
   [Item("OperatorGraph", "Represents a graph of operators.")]
   [Creatable("Algorithms")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class OperatorGraph : Item {
     private OperatorSet operators;
Index: trunk/sources/HeuristicLab.Core/3.3/OperatorList.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/OperatorList.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/OperatorList.cs	(revision 3017)
@@ -29,5 +29,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("OperatorList", "Represents a list of operators.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Core/3.3/OperatorSet.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/OperatorSet.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/OperatorSet.cs	(revision 3017)
@@ -29,5 +29,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("OperatorSet", "Represents a set of operators.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Core/3.3/ParameterCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ParameterCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ParameterCollection.cs	(revision 3017)
@@ -24,5 +24,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ParameterCollection", "Represents a collection of parameters.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 3017)
@@ -28,5 +28,5 @@
   /// </summary>
   [Item("ParameterizedNamedItem", "A base class for items which have a name and contain parameters.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class ParameterizedNamedItem : NamedItem, IParameterizedNamedItem {
     private ParameterCollection parameters;
Index: trunk/sources/HeuristicLab.Core/3.3/Scope.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Scope.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/Scope.cs	(revision 3017)
@@ -29,5 +29,5 @@
   [Item("Scope", "A scope which contains variables and sub-scopes.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class Scope : NamedItem, IScope {
     [Storable]
Index: trunk/sources/HeuristicLab.Core/3.3/ScopeList.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ScopeList.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ScopeList.cs	(revision 3017)
@@ -25,5 +25,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ScopeList", "Represents a list of scopes.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Core/3.3/ValueParameterCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/ValueParameterCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/ValueParameterCollection.cs	(revision 3017)
@@ -24,5 +24,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("ValueParameterCollection", "Represents a collection of value parameters.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Core/3.3/Variable.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/Variable.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/Variable.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("Variable", "A variable which has a name and holds an IItem.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class Variable : NamedItem, IVariable {
     private IItem value;
Index: trunk/sources/HeuristicLab.Core/3.3/VariableCollection.cs
===================================================================
--- trunk/sources/HeuristicLab.Core/3.3/VariableCollection.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Core/3.3/VariableCollection.cs	(revision 3017)
@@ -25,5 +25,5 @@
 
 namespace HeuristicLab.Core {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("VariableCollection", "Represents a collection of variables.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Data/3.3/BoolArrayData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/BoolArrayData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/BoolArrayData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("BoolArrayData", "Represents an array of boolean values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class BoolArrayData : ValueTypeArrayData<bool>, IStringConvertibleArrayData {
     public BoolArrayData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/BoolData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/BoolData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/BoolData.cs	(revision 3017)
@@ -28,5 +28,5 @@
   [Item("BoolData", "Represents a boolean value.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class BoolData : ValueTypeData<bool>, IComparable, IStringConvertibleData {
     public BoolData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/BoolMatrixData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/BoolMatrixData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/BoolMatrixData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("BoolMatrixData", "Represents a matrix of boolean values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class BoolMatrixData : ValueTypeMatrixData<bool>, IStringConvertibleMatrixData {
     public BoolMatrixData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/ComparisonData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/ComparisonData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/ComparisonData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("ComparisonData", "Represents a comparison.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class ComparisonData : ValueTypeData<Comparison>, IComparable {
     public ComparisonData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/DateTimeData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/DateTimeData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/DateTimeData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("DateTimeData", "Represents a date and time value.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class DateTimeData : ValueTypeData<DateTime>, IComparable, IStringConvertibleData {
     public DateTimeData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/DoubleArrayData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/DoubleArrayData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/DoubleArrayData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("DoubleArrayData", "Represents an array of double values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class DoubleArrayData : ValueTypeArrayData<double>, IStringConvertibleArrayData {
     public DoubleArrayData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/DoubleData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/DoubleData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/DoubleData.cs	(revision 3017)
@@ -28,5 +28,5 @@
   [Item("DoubleData", "Represents a double value.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class DoubleData : ValueTypeData<double>, IComparable, IStringConvertibleData {
     public DoubleData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/DoubleMatrixData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/DoubleMatrixData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/DoubleMatrixData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("DoubleMatrixData", "Represents a matrix of double values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class DoubleMatrixData : ValueTypeMatrixData<double>, IStringConvertibleMatrixData {
     public DoubleMatrixData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/IntArrayData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/IntArrayData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/IntArrayData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("IntArrayData", "Represents an array of integer values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class IntArrayData : ValueTypeArrayData<int>, IStringConvertibleArrayData {
     public IntArrayData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/IntData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/IntData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/IntData.cs	(revision 3017)
@@ -28,5 +28,5 @@
   [Item("IntData", "Represents an integer value.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class IntData : ValueTypeData<int>, IComparable, IStringConvertibleData {
     public IntData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/IntMatrixData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/IntMatrixData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/IntMatrixData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("IntMatrixData", "Represents a matrix of integer values.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class IntMatrixData : ValueTypeMatrixData<int>, IStringConvertibleMatrixData {
     public IntMatrixData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/StringArrayData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/StringArrayData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/StringArrayData.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("StringArrayData", "Represents an array of strings.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class StringArrayData : Item, IEnumerable, IStringConvertibleArrayData {
     [Storable]
Index: trunk/sources/HeuristicLab.Data/3.3/StringData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/StringData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/StringData.cs	(revision 3017)
@@ -27,5 +27,5 @@
   [Item("StringData", "Represents a string.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class StringData : Item, IComparable, IStringConvertibleData {
     [Storable]
Index: trunk/sources/HeuristicLab.Data/3.3/StringMatrixData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/StringMatrixData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/StringMatrixData.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("StringMatrixData", "Represents a matrix of strings.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class StringMatrixData : Item, IEnumerable, IStringConvertibleMatrixData {
     [Storable]
Index: trunk/sources/HeuristicLab.Data/3.3/TimeSpanData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/TimeSpanData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/TimeSpanData.cs	(revision 3017)
@@ -28,5 +28,5 @@
   [Item("TimeSpanData", "Represents a duration of time.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class TimeSpanData : ValueTypeData<TimeSpan>, IComparable, IStringConvertibleData {
     public TimeSpanData() : base() { }
Index: trunk/sources/HeuristicLab.Data/3.3/ValueTypeArrayData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/ValueTypeArrayData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/ValueTypeArrayData.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Data {
   [Item("ValueTypeArrayData<T>", "A base class for representing arrays of value types.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ValueTypeArrayData<T> : Item, IEnumerable where T : struct {
     [Storable]
Index: trunk/sources/HeuristicLab.Data/3.3/ValueTypeData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/ValueTypeData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/ValueTypeData.cs	(revision 3017)
@@ -26,5 +26,5 @@
 namespace HeuristicLab.Data {
   [Item("ValueTypeData<T>", "A base class for representing value types.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ValueTypeData<T> : Item where T : struct {
     [Storable]
Index: trunk/sources/HeuristicLab.Data/3.3/ValueTypeMatrixData.cs
===================================================================
--- trunk/sources/HeuristicLab.Data/3.3/ValueTypeMatrixData.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Data/3.3/ValueTypeMatrixData.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Data {
   [Item("ValueTypeMatrixData<T>", "A base class for representing matrices of value types.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ValueTypeMatrixData<T> : Item, IEnumerable where T : struct {
     [Storable]
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Creators/RandomPermutationCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Creators/RandomPermutationCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Creators/RandomPermutationCreator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("RandomPermutationCreator", "An operator which creates a new random permutation of integer values.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class RandomPermutationCreator : SingleSuccessorOperator, IPermutationCreator, IStochasticOperator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CosaCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CosaCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CosaCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("CosaCrossover", "An operator which performs the crossover described in the COSA optimization method. It is implemented as described in Wendt, O. 1994. COSA: COoperative Simulated Annealing - Integration von Genetischen Algorithmen und Simulated Annealing am Beispiel der Tourenplanung. Dissertation Thesis. IWI Frankfurt.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class CosaCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CyclicCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CyclicCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CyclicCrossover.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </remarks>
   [Item("CyclicCrossover", "An operator which performs the cyclic crossover on two permutations. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class CyclicCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CyclicCrossover2.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CyclicCrossover2.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/CyclicCrossover2.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </remarks>
   [Item("CyclicCrossover2", "An operator which performs the cyclic crossover on two permutations. It is implemented as described in Affenzeller, M. et al. 2009. Genetic Algorithms and Genetic Programming - Modern Concepts and Practical Applications. CRC Press. p. 136.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class CyclicCrossover2 : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/EdgeRecombinationCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/EdgeRecombinationCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/EdgeRecombinationCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("EdgeRecombinationCrossover", "An operator which performs the edge recombination crossover on two permutations. It is implemented as described in Whitley et.al. 1991, The Traveling Salesman and Sequence Scheduling, in Davis, L. (Ed.), Handbook ov Genetic Algorithms, New York, pp. 350-372.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class EdgeRecombinationCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/MaximalPreservativeCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/MaximalPreservativeCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/MaximalPreservativeCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("MaximalPreservativeCrossover", "An operator which performs the maximal preservative crossover on two permutations. It is implemented as described in Mühlenbein, H. 1991. Evolution in time and space - the parallel genetic algorithm. FOUNDATIONS OF GENETIC ALGORITHMS, pp. 316-337. Morgan Kaufmann.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class MaximalPreservativeCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderBasedCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderBasedCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderBasedCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("OrderBasedCrossover", "An operator which performs an order based crossover of two permutations. It is implemented as described in Syswerda, G. (1991). Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp. 332-349.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class OrderBasedCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("OrderCrossover", "An operator which performs an order crossover of two permutations. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class OrderCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderCrossover2.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderCrossover2.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/OrderCrossover2.cs	(revision 3017)
@@ -34,5 +34,5 @@
   /// </remarks>
   [Item("OrderCrossover2", "An operator which performs an order crossover of two permutations. It is implemented as described in Affenzeller, M. et al. 2009. Genetic Algorithms and Genetic Programming - Modern Concepts and Practical Applications. CRC Press. p. 135.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class OrderCrossover2 : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/PartiallyMatchedCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/PartiallyMatchedCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/PartiallyMatchedCrossover.cs	(revision 3017)
@@ -34,5 +34,5 @@
   /// </remarks>
   [Item("PartiallyMatchedCrossover", "An operator which performs the partially matched crossover on two permutations. It is implemented as described in Fogel, D.B. 1988. An Evolutionary Approach to the Traveling Salesman Problem. Biological Cybernetics, 60, pp. 139-144, Springer-Verlag.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class PartiallyMatchedCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/PositionBasedCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/PositionBasedCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Crossovers/PositionBasedCrossover.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </remarks>
   [Item("PositionBasedCrossover", "An operator which performs the position based crossover on two permutations. It is implemented as described in Syswerda, G. (1991). Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp 332-349.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class PositionBasedCrossover : PermutationCrossover {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/InsertionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/InsertionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/InsertionManipulator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </remarks>
   [Item("InsertionManipulator", "An operator which moves randomly one element to another position in the permutation. It is implemented as described in Fogel, D.B. (1988). An Evolutionary Approach to the Traveling Salesman Problem, Biological Cybernetics, 60, pp. 139-144.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class InsertionManipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/InversionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/InversionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/InversionManipulator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </remarks>
   [Item("InversionManipulator", "An operator which inverts a randomly chosen part of a permutation. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class InversionManipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/ScrambleManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/ScrambleManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/ScrambleManipulator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </remarks>
   [Item("ScrambleManipulator", "An operator which manipulates a permutation array by randomly scrambling the elements in a randomly chosen interval. It is implemented as described in Syswerda, G. (1991). Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp 332-349.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class ScrambleManipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/Swap2Manipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/Swap2Manipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/Swap2Manipulator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </remarks>
   [Item("Swap2Manipulator", "An operator which manipulates a permutation array by swapping to randomly chosen elements. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class Swap2Manipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/Swap3Manipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/Swap3Manipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/Swap3Manipulator.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </remarks>
   [Item("Swap3Manipulator", "An operator which manipulates a permutation array by swaping three randomly chosen elements. It is implemented such that first 3 positions are randomly chosen in the interval [0;N) with N = length of the permutation with all positions being distinct from each other. Then position 1 is put in place of position 3, position 2 is put in place of position 1 and position 3 is put in place of position 2.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class Swap3Manipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/TranslocationInversionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/TranslocationInversionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/TranslocationInversionManipulator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </remarks>
   [Item("TranslocationInversionManipulator", "An operator which inverts a randomly chosen part of a permutation and inserts it at a random position. It is implemented as described in Fogel, D.B. 1993. Applying Evolutionary Programming to Selected TSP Problems, Cybernetics and Systems, 22, pp. 27-36.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class TranslocationInversionManipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/TranslocationManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/TranslocationManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Manipulators/TranslocationManipulator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </remarks>
   [Item("TranslocationManipulator", "An operator which Manipulates a permutation array by moving a randomly chosen interval of elements to another (randomly chosen) position in the array. It is implemented as described in Michalewicz, Z. 1992. Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag, Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class TranslocationManipulator : PermutationManipulator {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/ExhaustiveTwoOptMoveGenerator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/ExhaustiveTwoOptMoveGenerator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/ExhaustiveTwoOptMoveGenerator.cs	(revision 3017)
@@ -28,5 +28,5 @@
 namespace HeuristicLab.Encodings.Permutation {
   [Item("ExhaustiveTwoOptMoveGenerator", "Generates all possible 2-opt moves from a given permutation.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class ExhaustiveTwoOptMoveGenerator : SingleSuccessorOperator, IPermutationMoveGenerator {
     public ILookupParameter<Permutation> PermutationParameter {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoIndexMove.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoIndexMove.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoIndexMove.cs	(revision 3017)
@@ -25,5 +25,5 @@
 namespace HeuristicLab.Encodings.Permutation {
   [Item("TwoIndexMove", "A move on a permutation that is specified by 2 indices")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class TwoIndexMove : Item {
     [Storable]
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMove.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMove.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMove.cs	(revision 3017)
@@ -25,5 +25,5 @@
 namespace HeuristicLab.Encodings.Permutation {
   [Item("TwoOptMove", "Item that describes a 2-Opt move.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TwoOptMove : TwoIndexMove {
     public TwoOptMove()
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveMaker.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveMaker.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveMaker.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Encodings.Permutation {
   [Item("TwoOptMoveMaker", "Peforms a 2-opt move on a given permutation and updates the quality.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TwoOptMoveMaker : SingleSuccessorOperator {
     public LookupParameter<DoubleData> QualityParameter {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuAttribute.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuAttribute.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuAttribute.cs	(revision 3017)
@@ -25,5 +25,5 @@
 namespace HeuristicLab.Encodings.Permutation {
   [Item("TwoOptMoveTabuAttribute", "Specifies the tabu attributes for a 2-opt move.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class TwoOptMoveTabuAttribute : Item {
     [Storable]
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuEvaluator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuEvaluator.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Encodings.Permutation {
   [Item("TwoOptMoveTabuEvaluator", "Evaluates whether a given 2-opt move is tabu.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TwoOptMoveTabuEvaluator : SingleSuccessorOperator {
     public LookupParameter<TwoOptMove> MoveParameter {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuMaker.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuMaker.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Moves/TwoOptMoveTabuMaker.cs	(revision 3017)
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Encodings.Permutation.Moves {
   [Item("TwoOptMoveTabuMaker", "Declares a given 2-opt move as tabu, by adding its attributes to the tabu list. It also removes the oldest entry in the tabu list when its size is greater than tenure.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TwoOptMoveTabuMaker : SingleSuccessorOperator {
     public LookupParameter<TwoOptMove> MoveParameter {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Permutation.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Permutation.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/Permutation.cs	(revision 3017)
@@ -28,5 +28,5 @@
 
 namespace HeuristicLab.Encodings.Permutation {
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("Permutation", "Represents a permutation of integer values.")]
   [Creatable("Test")]
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationCrossover.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("PermutationCrossover", "A base class for permutation crossover operators.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class PermutationCrossover : SingleSuccessorOperator, IPermutationCrossover, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.Permutation/3.3/PermutationManipulator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("PermutationManipulator", "A base class for permutation manipulation operators.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class PermutationManipulator : SingleSuccessorOperator, IPermutationManipulator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/BoundsChecker.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/BoundsChecker.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/BoundsChecker.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("BoundsChecker", "Checks if all elements of a real vector are inside a given minimum and maximum value. If not, elements are corrected.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class BoundsChecker : SingleSuccessorOperator {
     public LookupParameter<DoubleArrayData> RealVectorParameter {
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Creators/UniformRandomRealVectorCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Creators/UniformRandomRealVectorCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Creators/UniformRandomRealVectorCreator.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("UniformRandomRealVectorCreator", "An operator which creates a new random real vector with each element uniformly distributed in a specified range.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class UniformRandomRealVectorCreator : RealVectorCreator {
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/AverageCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/AverageCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/AverageCrossover.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </remarks>
   [Item("AverageCrossover", "The average crossover (intermediate recombination) produces a new offspring by calculating in each position the average of a number of parents. It is implemented as described by Beyer, H.-G. and Schwefel, H.-P. 2002. Evolution Strategies - A Comprehensive Introduction Natural Computing, 1, pp. 3-52.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class AverageCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/BlendAlphaBetaCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/BlendAlphaBetaCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/BlendAlphaBetaCrossover.cs	(revision 3017)
@@ -38,5 +38,5 @@
   /// </remarks>
   [Item("BlendAlphaBetaCrossover", "The blend alpha beta crossover (BLX-a-b) for real vectors is similar to the blend alpha crossover (BLX-a), but distinguishes between the better and worse of the parents. The interval from which to choose the new offspring can be extended more around the better parent by specifying a higher alpha value. It is implemented as described in Takahashi, M. and Kita, H. 2001. A crossover operator using independent component analysis for real-coded genetic algorithms Proceedings of the 2001 Congress on Evolutionary Computation, pp. 643-649.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class BlendAlphaBetaCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/BlendAlphaCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/BlendAlphaCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/BlendAlphaCrossover.cs	(revision 3017)
@@ -37,5 +37,5 @@
   /// </remarks>
   [Item("BlendAlphaCrossover", "The blend alpha crossover (BLX-a) for real vectors creates new offspring by sampling a new value in the range [min_i - d * alpha, max_i + d * alpha) at each position i. Here min_i and max_i are the smaller and larger value of the two parents at position i and d is max_i - min_i. It is implemented as described in Takahashi, M. and Kita, H. 2001. A crossover operator using independent component analysis for real-coded genetic algorithms Proceedings of the 2001 Congress on Evolutionary Computation, pp. 643-649.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class BlendAlphaCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/DiscreteCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/DiscreteCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/DiscreteCrossover.cs	(revision 3017)
@@ -36,5 +36,5 @@
   /// </remarks>
   [Item("DiscreteCrossover", "Discrete crossover for real vectors: Creates a new offspring by combining the alleles in the parents such that each allele is randomly selected from one parent. It is implemented as described in Beyer, H.-G. and Schwefel, H.-P. 2002. Evolution Strategies - A Comprehensive Introduction Natural Computing, 1, pp. 3-52.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class DiscreteCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/HeuristicCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/HeuristicCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/HeuristicCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("HeuristicCrossover", "The heuristic crossover produces offspring that extend the better parent in direction from the worse to the better parent. It is implemented as described in Wright, A.H. (1994), Genetic algorithms for real parameter optimization, Foundations of Genetic Algorithms, G.J.E. Rawlins (Ed.), Morgan Kaufmann, San Mateo, CA, 205-218.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class HeuristicCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/LocalCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/LocalCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/LocalCrossover.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </remarks>
   [Item("LocalCrossover", @"The local crossover is similar to the arithmetic all positions crossover, but uses a random alpha for each position x = alpha * p1 + (1-alpha) * p2. It is implemented as described in Dumitrescu, D. et al. (2000), Evolutionary computation, CRC Press, Boca Raton, FL., p. 194.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class LocalCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/RandomConvexCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/RandomConvexCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/RandomConvexCrossover.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </remarks>
   [Item("RandomConvexCrossover", "The random convex crossover acts like the local crossover, but with just one randomly chosen alpha for all crossed positions. It is implementes as described in Dumitrescu, D. et al. (2000), Evolutionary computation, CRC Press, Boca Raton, FL, pp. 193 - 194.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class RandomConvexCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/SimulatedBinaryCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/SimulatedBinaryCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/SimulatedBinaryCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("SimulatedBinaryCrossover", "The simulated binary crossover (SBX) is implemented as described in Deb, K. and Agrawal, R. B. 1995. Simulated binary crossover for continuous search space. Complex Systems, 9, pp. 115-148.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class SimulatedBinaryCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/SinglePointCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/SinglePointCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/SinglePointCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("SinglePointCrossover", "Breaks both parent chromosomes at a randomly chosen point and assembles a child by taking one part of the first parent and the other part of the second pard. It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class SinglePointCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/UniformAllPositionsArithmeticCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/UniformAllPositionsArithmeticCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/UniformAllPositionsArithmeticCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("UniformAllPositionsArithmeticCrossover", "The uniform all positions arithmetic crossover constructs an offspring by calculating x = alpha * p1 + (1-alpha) * p2 for every position x in the vector. Note that for alpha = 0.5 it is the same as the AverageCrossover. It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class UniformAllPositionsArithmeticCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/UniformSomePositionsArithmeticCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/UniformSomePositionsArithmeticCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Crossovers/UniformSomePositionsArithmeticCrossover.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("UniformSomePositionsArithmeticCrossover", "The uniform some positions arithmetic crossover (continuous recombination) constructs an offspring by calculating x = alpha * p1 + (1-alpha) * p2 for a position x in the vector with a given probability (otherwise p1 is taken at this position). It is implemented as described in Dumitrescu, D. et al. (2000), Evolutionary computation, CRC Press, Boca Raton, FL, p. 191. Note that Dumitrescu et al. specify the alpha to be 0.5.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class UniformSomePositionsArithmeticCrossover : RealVectorCrossover {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/BreederGeneticAlgorithmManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/BreederGeneticAlgorithmManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/BreederGeneticAlgorithmManipulator.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("BreederGeneticAlgorithmManipulator", "It is implemented as described by Mühlenbein, H. and Schlierkamp-Voosen, D. 1993. Predictive Models for the Breeder Genetic Algorithm - I. Continuous Parameter Optimization. Evolutionary Computation, 1(1), pp. 25-49.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class BreederGeneticAlgorithmManipulator : RealVectorManipulator {
     private static readonly double[] powerOfTwo = new double[] { 1, 0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625, 0.0078125, 0.00390625, 0.001953125, 0.0009765625, 0.00048828125, 0.000244140625, 0.0001220703125, 0.00006103515625, 0.000030517578125 };
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/MichalewiczNonUniformAllPositionsManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/MichalewiczNonUniformAllPositionsManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/MichalewiczNonUniformAllPositionsManipulator.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("MichalewiczNonUniformOnePositionManipulator", "It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class MichalewiczNonUniformAllPositionsManipulator : RealVectorManipulator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/MichalewiczNonUniformOnePositionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/MichalewiczNonUniformOnePositionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/MichalewiczNonUniformOnePositionManipulator.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("MichalewiczNonUniformOnePositionManipulator", "It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class MichalewiczNonUniformOnePositionManipulator : RealVectorManipulator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/PolynomialAllPositionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/PolynomialAllPositionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/PolynomialAllPositionManipulator.cs	(revision 3017)
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("PolynomialAllPositionManipulator", "The polynomial manipulation is implemented as described in Deb, K. & Goyal, M. A. 1996. Combined Genetic Adaptive Search (GeneAS) for Engineering Design Computer Science and Informatics, 26, pp. 30-45. In this operator it is performed on all positions of the real vector.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class PolynomialAllPositionManipulator : RealVectorManipulator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/PolynomialOnePositionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/PolynomialOnePositionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/PolynomialOnePositionManipulator.cs	(revision 3017)
@@ -34,5 +34,5 @@
   /// </remarks>
   [Item("PolynomialOnePositionManipulator", "The polynomial manipulation is implemented as described in Deb, K. & Goyal, M. A. 1996. Combined Genetic Adaptive Search (GeneAS) for Engineering Design Computer Science and Informatics, 26, pp. 30-45. In this operator it is performed on a single randomly chosen position of the real vector.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class PolynomialOnePositionManipulator : RealVectorManipulator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/SelfAdaptiveNormalAllPositionsManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/SelfAdaptiveNormalAllPositionsManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/SelfAdaptiveNormalAllPositionsManipulator.cs	(revision 3017)
@@ -37,5 +37,5 @@
   /// </remarks>
   [Item("SelfAdaptiveNormalAllPositionsManipulator", "This manipulation operator adds a value sigma_i * N(0,1) to the current value in each position i. The values for sigma_i are taken from the strategy vector. It is implemented as described in Beyer, H.-G. and Schwefel, H.-P. 2002. Evolution Strategies - A Comprehensive Introduction Natural Computing, 1, pp. 3-52.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class SelfAdaptiveNormalAllPositionsManipulator : RealVectorManipulator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/UniformOnePositionManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/UniformOnePositionManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/Manipulators/UniformOnePositionManipulator.cs	(revision 3017)
@@ -34,5 +34,5 @@
   /// </remarks>
   [Item("UniformOnePositionManipulator", "Changes a single position in the vector by sampling uniformly from the interval [Minimum, Maximum). It is implemented as described in Michalewicz, Z. 1999. Genetic Algorithms + Data Structures = Evolution Programs. Third, Revised and Extended Edition, Spring-Verlag Berlin Heidelberg.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class UniformOnePositionManipulator : RealVectorManipulator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorCreator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("RealVectorCreator", "A base class for operators creating real-valued vectors.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class RealVectorCreator : SingleSuccessorOperator, IRealVectorCreator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorCrossover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorCrossover.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("RealVectorCrossover", "A base class for operators that perform a crossover of real-valued vectors.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class RealVectorCrossover : SingleSuccessorOperator, IRealVectorCrossover, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorManipulator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Encodings.RealVector/3.3/RealVectorManipulator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("RealVectorManipulator", "A base class for operators that manipulate real-valued vectors.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class RealVectorManipulator : SingleSuccessorOperator, IRealVectorManipulator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Evolutionary/3.3/ChildrenCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Evolutionary/3.3/ChildrenCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Evolutionary/3.3/ChildrenCreator.cs	(revision 3017)
@@ -37,5 +37,5 @@
   /// </remarks>
   [Item("ChildrenCreator", "An operator which is used to prepare crossover. The sub-scopes of the current scope the operator is applied on represent the parents. The operator creates new and empty scopes for each child, adds the scopes that represent the child's parents as sub-scopes to the child and adds the child as sub-scope to the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class ChildrenCreator : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Evolutionary/3.3/PopulationCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Evolutionary/3.3/PopulationCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Evolutionary/3.3/PopulationCreator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("PopulationCreator", "An operator which creates a new population of solutions.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class PopulationCreator : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs	(revision 3017)
@@ -43,5 +43,5 @@
   [Item("ProgrammableOperator", "An operator that can be programmed for arbitrary needs.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]  
+  [StorableClass]  
   public class ProgrammableOperator : Operator, IParameterizedNamedItem {
 
Index: trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/BidirectionalLookup.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/BidirectionalLookup.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/BidirectionalLookup.cs	(revision 3017)
@@ -27,5 +27,5 @@
 
 namespace HeuristicLab.Operators.Views.GraphVisualization {
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class BidirectionalLookup<TFirst, TSecond> {
     [Storable]
Index: trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/GraphVisualizationInfo.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/GraphVisualizationInfo.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/GraphVisualizationInfo.cs	(revision 3017)
@@ -31,5 +31,5 @@
 
 namespace HeuristicLab.Operators.Views.GraphVisualization {
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public sealed class GraphVisualizationInfo : DeepCloneable {
     private BidirectionalLookup<IOperator, IOperatorShapeInfo> operatorShapeInfoMapping;
Index: trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/OperatorShapeInfo.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/OperatorShapeInfo.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/OperatorShapeInfo.cs	(revision 3017)
@@ -31,5 +31,5 @@
 
 namespace HeuristicLab.Operators.Views.GraphVisualization {
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   internal class OperatorShapeInfo : ShapeInfo, IOperatorShapeInfo {
     [Storable]
Index: trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/ShapeInfo.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/ShapeInfo.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators.Views.GraphVisualization/3.3/Model/ShapeInfo.cs	(revision 3017)
@@ -31,5 +31,5 @@
 
 namespace HeuristicLab.Operators.Views.GraphVisualization {
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   internal abstract class ShapeInfo : DeepCloneable, IShapeInfo {
     private ShapeInfo() {
Index: trunk/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/AlgorithmOperator.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("AlgorithmOperator", "An operator which represents an algorithm represented as an operator graph.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class AlgorithmOperator : SingleSuccessorOperator {
     public override Image ItemImage {
Index: trunk/sources/HeuristicLab.Operators/3.3/Assigner.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/Assigner.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/Assigner.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("Assigner", "An operator which clones and assigns the value of one parameter to another parameter.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class Assigner : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/CombinedOperator.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("CombinedOperator", "An operator which contains an operator graph.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class CombinedOperator : AlgorithmOperator, IParameterizedItem {
     public new ParameterCollection Parameters {
Index: trunk/sources/HeuristicLab.Operators/3.3/Comparator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/Comparator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/Comparator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("Comparator", "An operator which compares two items.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class Comparator : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/ConditionalBranch.cs	(revision 3017)
@@ -31,5 +31,5 @@
   [Item("ConditionalBranch", "A branch of two operators whose executions depend on a boolean condition.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class ConditionalBranch : SingleSuccessorOperator {
     public LookupParameter<BoolData> ConditionParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/DoubleCounter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("DoubleCounter", "An operator which increments a double variable.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class DoubleCounter : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/EmptyOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/EmptyOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/EmptyOperator.cs	(revision 3017)
@@ -29,5 +29,5 @@
   [Item("EmptyOperator", "An operator which represents an empty statement.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class EmptyOperator : SingleSuccessorOperator {
     public EmptyOperator()
Index: trunk/sources/HeuristicLab.Operators/3.3/IntCounter.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/IntCounter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/IntCounter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("IntCounter", "An operator which increments an integer variable.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class IntCounter : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/MultipleCallsOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/MultipleCallsOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/MultipleCallsOperator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("MultipleCallsOperator", "A base class for operators which apply multiple user-defined operators.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class MultipleCallsOperator : SingleSuccessorOperator {
     protected IValueParameter<IOperator>[] OperatorParameters {
Index: trunk/sources/HeuristicLab.Operators/3.3/Operator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/Operator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/Operator.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("Operator", "Base class for operators.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class Operator : ParameterizedNamedItem, IOperator {
     public override Image ItemImage {
Index: trunk/sources/HeuristicLab.Operators/3.3/ParallelSubScopesProcessor.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/ParallelSubScopesProcessor.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/ParallelSubScopesProcessor.cs	(revision 3017)
@@ -29,5 +29,5 @@
   [Item("ParallelSubScopesProcessor", "An operator which contains multiple operators of which each is applied in parallel on one sub-scope of the current scope. The first operator is applied on the first sub-scope, the second on the second, and so on.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class ParallelSubScopesProcessor : MultipleCallsOperator {
     public ParallelSubScopesProcessor()
Index: trunk/sources/HeuristicLab.Operators/3.3/Placeholder.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/Placeholder.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/Placeholder.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("Placeholder", "An operator which acts as a placeholder for another operator retrieved from the scope or a parent execution context.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class Placeholder : SingleSuccessorOperator {
     public LookupParameter<IOperator> OperatorParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/ResultsCollector.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/ResultsCollector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/ResultsCollector.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("ResultsCollector", "An operator which collects the actual values of parameters and adds them to a collection of variables.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class ResultsCollector : ValuesCollector {
     public ValueLookupParameter<VariableCollection> ResultsParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/ScopeCleaner.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("ScopeCleaner", "An operator which removes all variables and sub-scopes from the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class ScopeCleaner : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/SequentialSubScopesProcessor.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/SequentialSubScopesProcessor.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/SequentialSubScopesProcessor.cs	(revision 3017)
@@ -29,5 +29,5 @@
   [Item("SequentialSubScopesProcessor", "An operator which contains multiple operators of which each is applied sequentially on one sub-scope of the current scope. The first operator is applied on the first sub-scope, the second on the second, and so on.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class SequentialSubScopesProcessor : MultipleCallsOperator {
     public SequentialSubScopesProcessor()
Index: trunk/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/SingleSuccessorOperator.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("SingleSuccessorOperator", "A base class for operators which have only one successor.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class SingleSuccessorOperator : Operator {
     protected OperatorParameter SuccessorParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/StochasticBranch.cs	(revision 3017)
@@ -31,5 +31,5 @@
   [Item("StochasticBranch", "A branch of two operators which are executed with a specified probability.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class StochasticBranch : SingleSuccessorOperator {
     public LookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/SubScopesCreator.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("SubScopesCreator", "An operator which adds new and empty sub-scopes to the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class SubScopesCreator : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/SubScopesRemover.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("SubScopesRemover", "An operator which removes all sub-scopes or one specified sub-scope from the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class SubScopesRemover : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("SubScopesSorter", "An operator which sorts the sub-scopes of the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class SubScopesSorter : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/UniformParallelSubScopesProcessor.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("UniformParallelSubScopesProcessor", "An operator which applies a specified operator on all sub-scopes of the current scope in parallel.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class UniformParallelSubScopesProcessor : SingleSuccessorOperator {
     private OperatorParameter OperatorParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/UniformSequentialSubScopesProcessor.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("UniformSequentialSubScopesProcessor", "An operator which applies a specified operator sequentially on all sub-scopes of the current scope.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class UniformSequentialSubScopesProcessor : SingleSuccessorOperator {
     private OperatorParameter OperatorParameter {
Index: trunk/sources/HeuristicLab.Operators/3.3/ValuesCollector.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/ValuesCollector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/ValuesCollector.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("ValuesCollector", "An operator which collects the actual values of parameters.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class ValuesCollector : SingleSuccessorOperator, IOperator {
     private ParameterCollection collectedValues;
Index: trunk/sources/HeuristicLab.Operators/3.3/VariableCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Operators/3.3/VariableCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Operators/3.3/VariableCreator.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("VariableCreator", "An operator which collects the actual values of parameters and clones them into the current scope.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class VariableCreator : ValuesCollector {
     protected ScopeParameter CurrentScopeParameter {
Index: trunk/sources/HeuristicLab.Optimization/3.3/Algorithm.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization/3.3/Algorithm.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Optimization/3.3/Algorithm.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("Algorithm", "A base class for algorithms.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class Algorithm : ParameterizedNamedItem, IAlgorithm {
     public override Image ItemImage {
Index: trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Optimization/3.3/EngineAlgorithm.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("EngineAlgorithm", "A base class for algorithms which use an engine for execution.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class EngineAlgorithm : Algorithm {
     private OperatorGraph operatorGraph;
Index: trunk/sources/HeuristicLab.Optimization/3.3/UserDefinedAlgorithm.cs
===================================================================
--- trunk/sources/HeuristicLab.Optimization/3.3/UserDefinedAlgorithm.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Optimization/3.3/UserDefinedAlgorithm.cs	(revision 3017)
@@ -31,5 +31,5 @@
   [Item("UserDefinedAlgorithm", "An algorithm which can be defined by the user.")]
   [Creatable("Algorithms")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class UserDefinedAlgorithm : EngineAlgorithm, IParameterizedItem {
     public new ParameterCollection Parameters {
Index: trunk/sources/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("ConstrainedValueParameter<T>", "A parameter whose value has to be chosen from a set of valid values.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class ConstrainedValueParameter<T> : OptionalConstrainedValueParameter<T> where T : class, IItem {
     public override T Value {
Index: trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/LookupParameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("LookupParameter<T>", "A parameter whose value is retrieved from or written to a scope.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class LookupParameter<T> : Parameter, ILookupParameter<T> where T : class, IItem {
     [Storable]
Index: trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/OperatorParameter.cs	(revision 3017)
@@ -28,5 +28,5 @@
   /// </summary>
   [Item("OperatorParameter", "A parameter which represents an operator.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class OperatorParameter : OptionalValueParameter<IOperator> {
Index: trunk/sources/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("OptionalConstrainedValueParameter<T>", "A parameter whose value has to be chosen from a set of valid values or is null.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class OptionalConstrainedValueParameter<T> : Parameter, IValueParameter<T> where T : class, IItem {
     private ItemSet<T> validValues;
Index: trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/OptionalValueParameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("OptionalValueParameter<T>", "A parameter whose value is defined in the parameter itself or is null.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class OptionalValueParameter<T> : Parameter, IValueParameter<T> where T : class, IItem {
     private T value;
Index: trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/Parameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("Parameter", "A base class for parameters.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public abstract class Parameter : NamedItem, IParameter {
     public override bool CanChangeName {
Index: trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ScopeParameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("ScopeParameter", "A parameter which represents the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public class ScopeParameter : Parameter {
Index: trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("SubScopesLookupParameter<T>", "A generic parameter representing instances of type T which are collected from or written to the sub-scopes of the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class SubScopesLookupParameter<T> : LookupParameter<ItemArray<T>> where T : class, IItem {
     public SubScopesLookupParameter() : base() { }
Index: trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ValueLookupParameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("ValueLookupParameter<T>", "A parameter whose value is either defined in the parameter itself or is retrieved from or written to a scope.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class ValueLookupParameter<T> : LookupParameter<T>, IValueLookupParameter<T> where T : class, IItem {
     private T value;
Index: trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs
===================================================================
--- trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Parameters/3.3/ValueParameter.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("ValueParameter<T>", "A parameter whose value is defined in the parameter itself.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class ValueParameter<T> : OptionalValueParameter<T> where T : class, IItem {
     public override T Value {
Index: trunk/sources/HeuristicLab.Persistence/3.3/Auxiliary/TypeName.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Auxiliary/TypeName.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Auxiliary/TypeName.cs	(revision 3017)
@@ -13,5 +13,5 @@
   /// attributes.
   /// </summary>
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class TypeName {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Core/Configuration.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Core/Configuration.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Core/Configuration.cs	(revision 3017)
@@ -11,5 +11,5 @@
   /// <c>ConfigurationService</c>.
   /// </summary>
-  [StorableClass(StorableClassType.MarkedOnly)]    
+  [StorableClass]    
   public class Configuration {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Core/FormatBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Core/FormatBase.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Core/FormatBase.cs	(revision 3017)
@@ -7,5 +7,5 @@
   /// Common base class for defining a new serialization format.
   /// </summary>  
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class FormatBase<SerialDataFormat> : IFormat<SerialDataFormat> where SerialDataFormat : ISerialData {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Core/PrimitiveSerializerBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Core/PrimitiveSerializerBase.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Core/PrimitiveSerializerBase.cs	(revision 3017)
@@ -11,5 +11,5 @@
   /// <typeparam name="Source">The source type.</typeparam>
   /// <typeparam name="SerialData">The serialized type.</typeparam>
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class PrimitiveSerializerBase<Source, SerialData> :
       IPrimitiveSerializer<Source, SerialData>
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs	(revision 3017)
@@ -8,5 +8,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class ArraySerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs	(revision 3017)
@@ -10,5 +10,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class CompactNumberArray2StringSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs	(revision 3017)
@@ -9,5 +9,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class DictionarySerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs	(revision 3017)
@@ -7,5 +7,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class EnumSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs	(revision 3017)
@@ -10,5 +10,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class EnumerableSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs	(revision 3017)
@@ -9,5 +9,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class KeyValuePairSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs	(revision 3017)
@@ -12,5 +12,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class Number2StringSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs	(revision 3017)
@@ -11,5 +11,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class NumberEnumerable2StringSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs	(revision 3017)
@@ -10,5 +10,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class StackSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableAttribute.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableAttribute.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableAttribute.cs	(revision 3017)
@@ -10,5 +10,5 @@
   /// <summary>
   /// Mark the member of a class to be considered by the <c>StorableSerializer</c>.
-  /// The class must be marked as <c>[StorableClass(StorableClassType.Empty)]</c> and the
+  /// The class must be marked as <c>[StorableClass]</c> and the
   /// <c>StorableClassType</c> should be set to <c>MarkedOnly</c> for
   /// this attribute to kick in.
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableClassAttribute.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableClassAttribute.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableClassAttribute.cs	(revision 3017)
@@ -13,12 +13,6 @@
 
     /// <summary>
-    /// Serialize the class completely empty
-    /// (ignore further [Storable] attributes inside the class)
-    /// </summary>
-    Empty,
-
-    /// <summary>
     /// Serialize only fields and properties that have been marked
-    /// with the [Storable] attribute
+    /// with the [Storable] attribute. This is the default value.
     /// </summary>
     MarkedOnly,
@@ -57,11 +51,20 @@
     /// Specify how members are selected for serialization.
     /// </summary>
-    public StorableClassType Type { get; set; }    
+    public StorableClassType Type { get; set; }
 
     /// <summary>
-    /// Mark a class to be serialize by the <c>StorableSerizlier</c>    
-    /// </summary>    
+    /// Mark a class to be serialize by the <c>StorableSerizlier</c>
+    /// </summary>
+    /// <param name="type">The storable class type.</param>
     public StorableClassAttribute(StorableClassType type) {
       Type = type;
+    }
+
+    /// <summary>
+    /// Initializes a new instance of the <see cref="StorableClassAttribute"/> class.
+    /// The default value for <see cref="StorableClassType"/> is
+    /// <see cref="StorableClassType.MarkedOnly"/>.
+    /// </summary>
+    public StorableClassAttribute() {
     }
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs	(revision 3017)
@@ -11,9 +11,9 @@
   /// <summary>
   /// Intended for serialization of all custom classes. Classes should have the
-  /// <c>[StorableClass(StorableClassType.Empty)]</c> attribute set and a serialization mode set.
+  /// <c>[StorableClass]</c> attribute set and a serialization mode set.
   /// Optionally selected fields and properties can be marked with the
   /// <c>[Storable]</c> attribute.
   /// </summary>
-  [StorableClass(StorableClassType.Empty)]    
+  [StorableClass]    
   public class StorableSerializer : ICompositeSerializer {
 
@@ -33,5 +33,5 @@
         StorableConstructorAttribute.GetStorableConstructor(type) == null)
         return "no default constructor and no storable constructor";
-      return "class or one of its base classes is not empty and has no [StorableClass(StorableClassType.Empty)] attribute";
+      return "class or one of its base classes is not empty and has no [StorableClass] attribute";
     }
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs	(revision 3017)
@@ -10,5 +10,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class StructSerializer : ICompositeSerializer {    
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs	(revision 3017)
@@ -8,5 +8,5 @@
 namespace HeuristicLab.Persistence.Default.CompositeSerializers {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TypeSerializer : ICompositeSerializer {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs	(revision 3017)
@@ -13,5 +13,5 @@
   /// Simple write-only format for debugging purposes.
   /// </summary>
-  [StorableClass(StorableClassType.MarkedOnly)]  
+  [StorableClass]  
   public class DebugString : ISerialData {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs	(revision 3017)
@@ -10,5 +10,5 @@
 namespace HeuristicLab.Persistence.Default.DebugString {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class DebugStringFormat : FormatBase<DebugString> {
     public override string Name { get { return "DebugString"; } }
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlSerializerBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlSerializerBase.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlSerializerBase.cs	(revision 3017)
@@ -8,5 +8,5 @@
 namespace HeuristicLab.Persistence.Default.Xml.Compact {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class NumberArray2XmlSerializerBase<T> : CompactXmlSerializerBase<T> where T : class {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlSerializerBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlSerializerBase.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlSerializerBase.cs	(revision 3017)
@@ -8,5 +8,5 @@
 namespace HeuristicLab.Persistence.Default.Xml.Compact {
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class NumberEnumeration2XmlSerializerBase<T> : CompactXmlSerializerBase<T> where T : IEnumerable {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs	(revision 3017)
@@ -9,5 +9,5 @@
   /// or save to a file.
   /// </summary>
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class XmlFormat : FormatBase<XmlString> {
     public override string Name { get { return "XML"; } }
Index: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs	(revision 3017)
@@ -6,5 +6,5 @@
 namespace HeuristicLab.Persistence.Default.Xml {
 
-  [StorableClass(StorableClassType.MarkedOnly)]  
+  [StorableClass]  
   public class XmlString : ISerialData {
 
Index: trunk/sources/HeuristicLab.Persistence/3.3/Tests/StorableAttributeTests.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Tests/StorableAttributeTests.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Tests/StorableAttributeTests.cs	(revision 3017)
@@ -8,5 +8,5 @@
 namespace HeuristicLab.Persistence_33.Tests {
 
-  [StorableClass(StorableClassType.MarkedOnly)] 
+  [StorableClass] 
   class DemoClass {
 
@@ -21,5 +21,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   class Base {
     public string baseName;
@@ -31,5 +31,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   class Override : Base {
     [Storable]
@@ -40,9 +40,9 @@
   }
 
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   class Intermediate : Override {
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   class New : Intermediate {
     public string newName;
Index: trunk/sources/HeuristicLab.Persistence/3.3/Tests/UseCases.cs
===================================================================
--- trunk/sources/HeuristicLab.Persistence/3.3/Tests/UseCases.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Persistence/3.3/Tests/UseCases.cs	(revision 3017)
@@ -21,5 +21,5 @@
 namespace HeuristicLab.Persistence_33.Tests {
 
-  [StorableClass(StorableClassType.MarkedOnly)]  
+  [StorableClass]  
   public class NumberTest {
     [Storable]
@@ -43,5 +43,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class NonDefaultConstructorClass {
     [Storable]
@@ -52,5 +52,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class IntWrapper {
 
@@ -75,5 +75,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class PrimitivesTest : NumberTest {
     [Storable]
@@ -90,5 +90,5 @@
   public enum TestEnum { va1, va2, va3, va8 } ;
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class RootBase {
     [Storable]
@@ -98,5 +98,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class Root : RootBase {
     [Storable]
@@ -133,5 +133,5 @@
   public enum TrickyEnum { zero = 0, one = 1, two = 2 }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class EnumTest {
     [Storable]
@@ -143,5 +143,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class Custom {
     [Storable]
@@ -153,5 +153,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class Manager {
 
@@ -166,5 +166,5 @@
   }
 
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class C {
     [Storable]
@@ -373,5 +373,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableClass]
     public class NestedType {
       [Storable]
@@ -603,5 +603,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableClass]
     class Child {
       [Storable]
@@ -609,5 +609,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableClass]
     class Parent {
       [Storable]
@@ -615,5 +615,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableClass]
     class GrandParent {
       [Storable]
@@ -683,5 +683,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableClass]
     private class PersistenceHooks {
       [Storable]
@@ -718,5 +718,5 @@
     }
     
-    [StorableClass(StorableClassType.Empty)]
+    [StorableClass]
     private class CustomConstructor {
       public string Value = "none";
@@ -740,5 +740,5 @@
     }
 
-    [StorableClass(StorableClassType.Empty)]
+    [StorableClass]
     public class ExplodingDefaultConstructor {
       public ExplodingDefaultConstructor() {
@@ -784,5 +784,5 @@
     }
 
-    [StorableClass(StorableClassType.MarkedOnly)]
+    [StorableClass]
     public class HookInheritanceTestBase {
       [Storable]
@@ -795,5 +795,5 @@
     }
 
-    [StorableClass(StorableClassType.Empty)]
+    [StorableClass]
     public class HookInheritanceTestDerivedClass : HookInheritanceTestBase {
       [Storable]
Index: trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPCoordinatesPathEvaluator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("TSPCoordinatesPathEvaluator", "A base class for operators which evaluate TSP solutions given in path representation using city coordinates.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class TSPCoordinatesPathEvaluator : TSPEvaluator, ITSPCoordinatesPathEvaluator {
     public ILookupParameter<Permutation> PermutationParameter {
Index: trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPDistanceMatrixPathEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPDistanceMatrixPathEvaluator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPDistanceMatrixPathEvaluator.cs	(revision 3017)
@@ -32,5 +32,5 @@
   [Item("TSPDistanceMatrixPathEvaluator", "An operator which evaluates TSP solutions given in path representation using a distance matrix.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class TSPDistanceMatrixPathEvaluator : TSPEvaluator, ITSPDistanceMatrixPathEvaluator {
     public ILookupParameter<Permutation> PermutationParameter {
Index: trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEvaluator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPEvaluator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("TSPEvaluator", "A base class for operators which evaluate TSP solutions.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class TSPEvaluator : SingleSuccessorOperator, ITSPEvaluator {
     public ILookupParameter<DoubleData> QualityParameter {
Index: trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPRoundedEuclideanPathEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPRoundedEuclideanPathEvaluator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Problems.TSP/3.3/Evaluators/TSPRoundedEuclideanPathEvaluator.cs	(revision 3017)
@@ -30,5 +30,5 @@
   [Item("TSPRoundedEuclideanPathEvaluator", "An operator which evaluates TSP solutions given in path representation using the rounded Euclidean distance metric.")]
   [Creatable("Test")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class TSPRoundedEuclideanPathEvaluator : TSPCoordinatesPathEvaluator {
     /// <summary>
Index: trunk/sources/HeuristicLab.Problems.TSP/3.3/MoveEvaluators/TwoOptMoveTSPEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TSP/3.3/MoveEvaluators/TwoOptMoveTSPEvaluator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Problems.TSP/3.3/MoveEvaluators/TwoOptMoveTSPEvaluator.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("TwoOptMoveTSPEvaluator", "Evaluates a 2-opt move (rounded euclidean distances) by summing up the length of all added edges and subtracting the length of all deleted edges.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public class TwoOptMoveTSPEvaluator : SingleSuccessorOperator {
     public ILookupParameter<DoubleData> QualityParameter {
Index: trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs	(revision 3017)
@@ -36,5 +36,5 @@
   [Item("TSP", "Represents a symmetric Traveling Salesman Problem.")]
   [Creatable("Problems")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public sealed class TSP : ParameterizedNamedItem, ISingleObjectiveProblem {
     public override Image ItemImage {
Index: trunk/sources/HeuristicLab.Random/3.3/MersenneTwister.cs
===================================================================
--- trunk/sources/HeuristicLab.Random/3.3/MersenneTwister.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Random/3.3/MersenneTwister.cs	(revision 3017)
@@ -41,5 +41,5 @@
   /// </summary>
   [Item("MersenneTwister", "A high-quality pseudo random number generator which creates uniformly distributed random numbers.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class MersenneTwister : Item, IRandom {
     private const int n = 624, m = 397;
Index: trunk/sources/HeuristicLab.Random/3.3/NormalDistributedRandom.cs
===================================================================
--- trunk/sources/HeuristicLab.Random/3.3/NormalDistributedRandom.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Random/3.3/NormalDistributedRandom.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("NormalDistributedRandom", "A pseudo random number generator which uses the Ziggurat method to create normally distributed random numbers.")]
-  [StorableClass(StorableClassType.MarkedOnly)]
+  [StorableClass]
   public class NormalDistributedRandom : Item, IRandom {
     [Storable]
Index: trunk/sources/HeuristicLab.Random/3.3/RandomCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Random/3.3/RandomCreator.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Random/3.3/RandomCreator.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("RandomCreator", "An operator which creates a new Mersenne Twister pseudo random number generator.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class RandomCreator : SingleSuccessorOperator {
Index: trunk/sources/HeuristicLab.Selection/3.3/LeftReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/LeftReducer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/LeftReducer.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("LeftReducer", "An operator which reduces to the sub-scopes of the leftmost sub-scope of the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class LeftReducer : Reducer {
Index: trunk/sources/HeuristicLab.Selection/3.3/LeftSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/LeftSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/LeftSelector.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("LeftSelector", "An operator which selects sub-scopes from left to right.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class LeftSelector : Selector {
Index: trunk/sources/HeuristicLab.Selection/3.3/LinearRankSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/LinearRankSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/LinearRankSelector.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("LinearRankSelector", "A linear rank selection operator which considers the rank based on a single double quality value for selection.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class LinearRankSelector : StochasticSingleObjectiveSelector {
Index: trunk/sources/HeuristicLab.Selection/3.3/MergingReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/MergingReducer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/MergingReducer.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("MergingReducer", "An operator which reduces to the sub-scopes of all sub-scopes of the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class MergingReducer : Reducer {
Index: trunk/sources/HeuristicLab.Selection/3.3/ProportionalSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/ProportionalSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/ProportionalSelector.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("ProportionalSelector", "A quality proportional selection operator which considers a single double quality value for selection.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class ProportionalSelector : StochasticSingleObjectiveSelector {
Index: trunk/sources/HeuristicLab.Selection/3.3/RandomSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/RandomSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/RandomSelector.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("RandomSelector", "A random selection operator.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class RandomSelector : StochasticSelector {
Index: trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/Reducer.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("Reducer", "A base class for reduction operators.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class Reducer : SingleSuccessorOperator, IReducer {
     protected ScopeParameter CurrentScopeParameter {
Index: trunk/sources/HeuristicLab.Selection/3.3/RightReducer.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/RightReducer.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/RightReducer.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("RightReducer", "An operator which reduces to the sub-scopes of the rightmost sub-scope of the current scope.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class RightReducer : Reducer {
Index: trunk/sources/HeuristicLab.Selection/3.3/RightSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/RightSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/RightSelector.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// </summary>
   [Item("RightSelector", "An operator which selects sub-scopes from right to left.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class RightSelector : Selector {
Index: trunk/sources/HeuristicLab.Selection/3.3/Selector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/Selector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/Selector.cs	(revision 3017)
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("Selector", "A base class for selection operators.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class Selector : SingleSuccessorOperator, ISelector {
     protected ValueParameter<BoolData> CopySelectedParameter {
Index: trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 3017)
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("StochasticSelector", "A base class for stochastic selection operators.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class StochasticSelector : Selector, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
Index: trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 3017)
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("StochasticSingleObjectiveSelector", "A base class for stochastic selection operators which consider a single double quality value for selection.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   public abstract class StochasticSingleObjectiveSelector : StochasticSelector, ISingleObjectiveSelector {
     public IValueLookupParameter<BoolData> MaximizationParameter {
Index: trunk/sources/HeuristicLab.Selection/3.3/TournamentSelector.cs
===================================================================
--- trunk/sources/HeuristicLab.Selection/3.3/TournamentSelector.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.Selection/3.3/TournamentSelector.cs	(revision 3017)
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("TournamentSelector", "A tournament selection operator which considers a single double quality value for selection.")]
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Creatable("Test")]
   public sealed class TournamentSelector : StochasticSingleObjectiveSelector {
Index: trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs
===================================================================
--- trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs	(revision 3016)
+++ trunk/sources/HeuristicLab.SequentialEngine/3.3/SequentialEngine.cs	(revision 3017)
@@ -29,5 +29,5 @@
   /// in parallel.
   /// </summary>
-  [StorableClass(StorableClassType.Empty)]
+  [StorableClass]
   [Item("Sequential Engine", "Engine for sequential execution of algorithms.")]
   public class SequentialEngine : Engine {
