Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/CheckedItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/CheckedItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/CheckedItemCollection.cs	(revision 14927)
@@ -25,5 +25,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -32,5 +32,5 @@
   /// </summary>
   /// <typeparam name="T">The element type (base type IItem)</typeparam>
-  [StorableClass]
+  [StorableType("c71d18fe-b8c6-4980-b7c5-5d0d257a63d3")]
   [Item("CheckedItemCollection", "Represents a collection of items that can be checked or unchecked.")]
   public class CheckedItemCollection<T> : ItemCollection<T>, ICheckedItemCollection<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/CheckedItemList.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/CheckedItemList.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/CheckedItemList.cs	(revision 14927)
@@ -25,5 +25,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -32,5 +32,5 @@
   /// </summary>
   /// <typeparam name="T">The element type (base type is IItem)</typeparam>
-  [StorableClass]
+  [StorableType("d675819c-c2af-41e7-bf5c-45c1d7a38667")]
   [Item("CheckedItemList", "Represents a list of items that can be checked or unchecked.")]
   public class CheckedItemList<T> : ItemList<T>, ICheckedItemList<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ConstraintCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ConstraintCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ConstraintCollection.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("7b5b031d-d2dc-44ae-ab4c-825dbd7a5345")]
   [Item("ConstraintCollection", "Represents a collection of constraints.")]
   public class ConstraintCollection : ItemCollection<IConstraint> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/Arc.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/Arc.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/Arc.cs	(revision 14927)
@@ -22,9 +22,9 @@
 using System;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("Arc", "A graph arc connecting two graph vertices, that can have a weight, label, and data object for holding additional info")]
-  [StorableClass]
+  [StorableType("448ab484-bfb6-4faf-bc53-30112dc28a3b")]
   public class Arc : Item, IArc {
     [Storable]
@@ -82,5 +82,5 @@
   }
 
-  [StorableClass]
+  [StorableType("a538ad5a-5b6a-4e6b-aca1-a75b949325a9")]
   public class Arc<T> : Arc, IArc<T> where T : class, IDeepCloneable {
     [Storable]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/DirectedGraph.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/DirectedGraph.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/DirectedGraph.cs	(revision 14927)
@@ -26,9 +26,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Common.Resources;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("DirectedGraph", "Generic class representing a directed graph with custom vertices and content")]
-  [StorableClass]
+  [StorableType("fe2b6b6c-5842-485c-b1b8-e61127923537")]
   public class DirectedGraph : Item, IDirectedGraph {
     public override Image ItemImage { get { return VSImageLibrary.Graph; } }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/Vertex.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/Vertex.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/DirectedGraph/Vertex.cs	(revision 14927)
@@ -24,9 +24,9 @@
 using System.Linq;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("Vertex", "An object representing a vertex in the graph. It can have a text label, a weight, and an additional data object.")]
-  [StorableClass]
+  [StorableType("604093fb-87ca-4d3a-9799-6ef67e92abd9")]
   public class Vertex : Item, IVertex {
     [Storable]
@@ -141,6 +141,6 @@
   }
 
-  [StorableClass]
-  public class Vertex<T> : Vertex, IVertex<T> where T : class,IDeepCloneable {
+  [StorableType("00fed0da-71c5-4448-96d9-7c4db385eb19")]
+  public class Vertex<T> : Vertex, IVertex<T> where T : class, IDeepCloneable {
     [Storable]
     private T data;
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemArray.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemArray.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemArray.cs	(revision 14927)
@@ -26,8 +26,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("0a574f49-d76d-4ce6-84bf-ca4b4ee82c45")]
   [Item("ItemArray", "Represents an array of items.")]
   public class ItemArray<T> : ObservableArray<T>, IItemArray<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemCollection.cs	(revision 14927)
@@ -26,8 +26,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("1a2186c9-4e36-4d6a-b968-fcc1d4485600")]
   [Item("ItemCollection", "Represents a collection of items.")]
   public class ItemCollection<T> : ObservableCollection<T>, IItemCollection<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemDictionary.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemDictionary.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemDictionary.cs	(revision 14927)
@@ -25,8 +25,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("8b66bc68-4684-47df-a8e6-00a023de38a8")]
   [Item("ItemDictionary", "Represents a dictionary of items.")]
   public class ItemDictionary<TKey, TValue> : ObservableDictionary<TKey, TValue>, IItemDictionary<TKey, TValue>
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemList.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemList.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemList.cs	(revision 14927)
@@ -26,8 +26,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("8c2e6dea-fb5a-4782-a3d2-34294627e364")]
   [Item("ItemList", "Represents a list of items.")]
   public class ItemList<T> : ObservableList<T>, IItemList<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemSet.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemSet.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ItemSet.cs	(revision 14927)
@@ -26,8 +26,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("ef1b719e-47b7-47bf-80cf-14b0c5b6d301")]
   [Item("ItemSet", "Represents a set of items.")]
   public class ItemSet<T> : ObservableSet<T>, IItemSet<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/KeyedItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/KeyedItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/KeyedItemCollection.cs	(revision 14927)
@@ -25,9 +25,9 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("KeyedItemCollection", "Represents a keyed collection of items.")]
-  [StorableClass]
+  [StorableType("12d433de-ad9f-4122-89bf-0763061e59c9")]
   public abstract class KeyedItemCollection<TKey, TItem> : ObservableKeyedCollection<TKey, TItem>, IKeyedItemCollection<TKey, TItem> where TItem : class, IItem {
     public virtual string ItemName {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/NamedItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/NamedItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/NamedItemCollection.cs	(revision 14927)
@@ -23,9 +23,9 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("NamedItemCollection", "Represents a collection of named items.")]
-  [StorableClass]
+  [StorableType("b0e5eea7-b0a4-433a-a2fc-5b4ea14e0e05")]
   public class NamedItemCollection<T> : KeyedItemCollection<string, T> where T : class, INamedItem {
     [StorableConstructor]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperationCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperationCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperationCollection.cs	(revision 14927)
@@ -23,8 +23,8 @@
 using System.Linq;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("cf411669-6645-4a19-a40c-259a3f76fd3d")]
   public sealed class OperationCollection : DeepCloneable, IList<IOperation>, IOperation {
     [Storable]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorCollection.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("f703f10f-0e77-4f36-8f3e-733d84548ba2")]
   [Item("Operator Collection", "Represents a collection of operators.")]
   public class OperatorCollection : ItemCollection<IOperator> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorList.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorList.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorList.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("59bd31c3-ca0b-4ba1-9d98-7fc957d2d201")]
   [Item("OperatorList", "Represents a list of operators.")]
   public class OperatorList : ItemList<IOperator> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorSet.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorSet.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/OperatorSet.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("ce206a6b-691e-4a21-ab86-dcb0f7476300")]
   [Item("OperatorSet", "Represents a set of operators.")]
   public class OperatorSet : ItemSet<IOperator> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ParameterCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ParameterCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ParameterCollection.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("921f7ab3-0ff1-4e2a-ad41-7774cb0e3fc8")]
   [Item("ParameterCollection", "Represents a collection of parameters.")]
   public class ParameterCollection : NamedItemCollection<IParameter> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemCollection.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("d3dc532a-1a15-43d7-8a49-de499a264543")]
   [Item("ReadOnlyCheckedItemCollection", "Represents a read-only collection of checked items.")]
   public class ReadOnlyCheckedItemCollection<T> : ReadOnlyItemCollection<T>, ICheckedItemCollection<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemList.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemList.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyCheckedItemList.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("0f4d2911-e0d3-4ff8-999d-9374780ec1ec")]
   [Item("ReadOnlyCheckedItemList", "Represents a read-only list of checked items.")]
   public class ReadOnlyCheckedItemList<T> : ReadOnlyItemList<T>, ICheckedItemList<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemArray.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemArray.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemArray.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("46f77f5c-02db-4389-9140-9ac30f5edd76")]
   [Item("ReadOnlyItemArray", "Represents a read-only array of items.")]
   public class ReadOnlyItemArray<T> : ReadOnlyObservableArray<T>, IItemArray<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemCollection.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("beced559-4078-4ba0-a027-c26dd18a27e1")]
   [Item("ReadOnlyItemCollection", "Represents a read-only collection of items.")]
   public class ReadOnlyItemCollection<T> : ReadOnlyObservableCollection<T>, IItemCollection<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemDictionary.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemDictionary.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemDictionary.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("6d16ce4e-9076-4226-8323-21a858e4617f")]
   [Item("ReadOnlyItemDictionary", "Represents a read-only dictionary of items.")]
   public class ReadOnlyItemDictionary<TKey, TValue> : ReadOnlyObservableDictionary<TKey, TValue>, IItemDictionary<TKey, TValue>
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemList.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemList.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemList.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("3c5c521a-8ce8-4f5a-8a83-8ef21bf8bf3b")]
   [Item("ReadOnlyItemList", "Represents a read-only list of items.")]
   public class ReadOnlyItemList<T> : ReadOnlyObservableList<T>, IItemList<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemSet.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemSet.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyItemSet.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("8a5dffb9-a7b5-4042-a0d1-4f4aa3ff08de")]
   [Item("ReadOnlyItemSet", "Represents a read-only set of items.")]
   public class ReadOnlyItemSet<T> : ReadOnlyObservableSet<T>, IItemSet<T> where T : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyKeyedItemCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyKeyedItemCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ReadOnlyKeyedItemCollection.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("a0b6c811-6f0a-429c-8e34-dd84d8e72c39")]
   [Item("ReadOnlyKeyedItemCollection", "Represents a read-only keyed collection of items.")]
   public class ReadOnlyKeyedItemCollection<TKey, TItem> : ReadOnlyObservableKeyedCollection<TKey, TItem>, IKeyedItemCollection<TKey, TItem> where TItem : class, IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ScopeList.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ScopeList.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ScopeList.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("f19c8c22-914a-4110-a86c-9d6a49d7d0a8")]
   [Item("ScopeList", "Represents a list of scopes.")]
   public sealed class ScopeList : ItemList<IScope> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ValueParameterCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ValueParameterCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/ValueParameterCollection.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("91c1fb23-1394-4655-ba9b-07fb3d2686a8")]
   [Item("ValueParameterCollection", "Represents a collection of value parameters.")]
   public class ValueParameterCollection : NamedItemCollection<IValueParameter> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/VariableCollection.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/VariableCollection.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Collections/VariableCollection.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("d58e79c9-e34f-4439-b152-a915221c3715")]
   [Item("VariableCollection", "Represents a collection of variables.")]
   public sealed class VariableCollection : NamedItemCollection<IVariable> {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/ComparisonConstraint.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/ComparisonConstraint.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/ComparisonConstraint.cs	(revision 14927)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("88a25f2a-5430-45a9-b477-308f37812ad9")]
   [Item("ComparisonConstraint", "A constraint which checks for specified compare operation.")]
   public class ComparisonConstraint : Constraint {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/Constraint.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/Constraint.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/Constraint.cs	(revision 14927)
@@ -24,8 +24,8 @@
 using System.Linq;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("fce56ba2-5786-4645-8f90-590a7d436c18")]
   public abstract class Constraint : Item, IConstraint {
     [StorableConstructor]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/ConstraintOperation.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/ConstraintOperation.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/ConstraintOperation.cs	(revision 14927)
@@ -20,7 +20,7 @@
 #endregion
 
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("da8fba0a-2c33-434d-be0b-c049e1e4af4f")]
   public class ConstraintOperation {
     public static readonly ConstraintOperation Equal = new ConstraintOperation(0, "Equal");
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/EqualityConstraint.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/EqualityConstraint.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/EqualityConstraint.cs	(revision 14927)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("c3b37852-73e8-47ea-9071-39146d9d9dff")]
   [Item("EqualityConstraint", "A constraint which checks for equality.")]
   public class EqualityConstraint : Constraint {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/TypeCompatibilityConstraint.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/TypeCompatibilityConstraint.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Constraints/TypeCompatibilityConstraint.cs	(revision 14927)
@@ -23,8 +23,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("bedfe153-9e1e-404a-b60d-cf2fb98c1631")]
   [Item("TypeCompatibilityConstraint", "A constraint that checks for compatible types.")]
   public class TypeCompatibilityConstraint : Constraint {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Engine.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Engine.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Engine.cs	(revision 14927)
@@ -25,9 +25,9 @@
 using System.Threading.Tasks;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("Engine", "A base class for engines.")]
-  [StorableClass]
+  [StorableType("fd2385ca-79e8-496e-bd12-4925d4b3cd1a")]
   public abstract class Engine : Executable, IEngine {
     [Storable]
@@ -90,10 +90,8 @@
         try {
           t.Wait();
-        }
-        catch (AggregateException ex) {
+        } catch (AggregateException ex) {
           try {
             ex.Flatten().Handle(x => x is OperationCanceledException);
-          }
-          catch (AggregateException remaining) {
+          } catch (AggregateException remaining) {
             if (remaining.InnerExceptions.Count == 1) OnExceptionOccurred(remaining.InnerExceptions[0]);
             else OnExceptionOccurred(remaining);
@@ -152,6 +150,5 @@
       try {
         Run(cancellationToken);
-      }
-      finally {
+      } finally {
         timer.Elapsed -= new System.Timers.ElapsedEventHandler(timer_Elapsed);
         timer.Stop();
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Executable.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Executable.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Executable.cs	(revision 14927)
@@ -23,9 +23,9 @@
 using System.Drawing;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("Executable", "A base class for executables.")]
-  [StorableClass]
+  [StorableType("1da020c4-f08d-4abb-8399-0e1fd9ec670a")]
   public abstract class Executable : Item, IExecutable {
     public static new Image StaticItemImage {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/ExecutionContext.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/ExecutionContext.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/ExecutionContext.cs	(revision 14927)
@@ -22,8 +22,8 @@
 using System;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
-  [StorableClass]
+  [StorableType("09b21cdb-7fa9-4870-ab07-efc08fc524de")]
   public sealed class ExecutionContext : DeepCloneable, IExecutionContext, IAtomicOperation {
     [Storable]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/HeuristicLab.Core-3.3.csproj	(revision 14927)
@@ -234,4 +234,8 @@
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
+      <Project>{102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b}</Project>
+      <Name>HeuristicLab.Persistence-3.3</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Persistence\4.0\HeuristicLab.Persistence-4.0.csproj">
       <Project>{b1663091-8156-4deb-9e37-5b19810a4644}</Project>
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/DirectedGraph/IArc.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/DirectedGraph/IArc.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/DirectedGraph/IArc.cs	(revision 14927)
@@ -33,5 +33,5 @@
   }
 
-  public interface IArc<T> : IArc where T : class,IDeepCloneable {
+  public interface IArc<T> : IArc where T : class, IDeepCloneable {
     T Data { get; set; }
   }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/ICheckedMultiOperator.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/ICheckedMultiOperator.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/ICheckedMultiOperator.cs	(revision 14927)
@@ -22,5 +22,5 @@
 
 namespace HeuristicLab.Core {
-  public interface ICheckedMultiOperator<T> : IMultiOperator<T> where T : class,IOperator {
+  public interface ICheckedMultiOperator<T> : IMultiOperator<T> where T : class, IOperator {
     new ICheckedItemList<T> Operators { get; }
   }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/IMultiOperator.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/IMultiOperator.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Interfaces/IMultiOperator.cs	(revision 14927)
@@ -22,5 +22,5 @@
 
 namespace HeuristicLab.Core {
-  public interface IMultiOperator<T> : IOperator where T : class,IOperator {
+  public interface IMultiOperator<T> : IOperator where T : class, IOperator {
     IItemList<T> Operators { get; }
   }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Item.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Item.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Item.cs	(revision 14927)
@@ -23,5 +23,5 @@
 using System.Drawing;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -29,5 +29,5 @@
   /// Represents the base class for all basic item types.
   /// </summary>
-  [StorableClass]
+  [StorableType("307c797a-d48f-4673-82d1-467eada0c482")]
   [Item("Item", "Base class for all HeuristicLab items.")]
   public abstract class Item : IItem {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Log.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Log.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Log.cs	(revision 14927)
@@ -24,10 +24,10 @@
 using System.Drawing;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Core {
   [Item("Log", "A log for logging string messages.")]
-  [StorableClass]
+  [StorableType("655d94e0-8058-42e8-9a44-6b43c83887e0")]
   public sealed class Log : Item, ILog, IStorableContent {
     public string Filename { get; set; }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/NamedItem.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/NamedItem.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/NamedItem.cs	(revision 14927)
@@ -22,9 +22,9 @@
 using System;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("NamedItem", "Base class for items which have a name and an optional description.")]
-  [StorableClass]
+  [StorableType("8942465b-b857-4b21-afbb-ca5a6d7edf4f")]
   public abstract class NamedItem : Item, INamedItem {
     [Storable]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/OperatorGraph.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/OperatorGraph.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/OperatorGraph.cs	(revision 14927)
@@ -25,5 +25,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("Operator Graph", "Represents a graph of operators.")]
-  [StorableClass]
+  [StorableType("749477b8-e741-4373-a6ee-d1f98e11e91d")]
   public class OperatorGraph : Item, IStorableContent {
     public string Filename { get; set; }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/ParameterizedNamedItem.cs	(revision 14927)
@@ -24,5 +24,5 @@
 using System.Linq;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("ParameterizedNamedItem", "A base class for items which have a name and contain parameters.")]
-  [StorableClass]
+  [StorableType("176c4e71-1544-4c7f-af48-42f811d170ab")]
   public abstract class ParameterizedNamedItem : NamedItem, IParameterizedNamedItem {
     [Storable]
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Scope.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Scope.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Scope.cs	(revision 14927)
@@ -23,5 +23,5 @@
 using HeuristicLab.Collections;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("Scope", "A scope which contains variables and sub-scopes.")]
-  [StorableClass]
+  [StorableType("4f032016-f898-47cf-a536-6ed4833dc65d")]
   public sealed class Scope : NamedItem, IScope {
     public static new Image StaticItemImage {
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/ThreadSafeLog.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/ThreadSafeLog.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/ThreadSafeLog.cs	(revision 14927)
@@ -24,9 +24,9 @@
 using System.Collections.Generic;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
   [Item("ThreadSafeLog", "A thread-safe log for logging string messages.")]
-  [StorableClass]
+  [StorableType("0f729d7c-8d01-4297-8793-ed1524d360a1")]
   public sealed class ThreadSafeLog : Item, ILog, IStorableContent {
     public string Filename { get; set; }
Index: branches/PersistenceReintegration/HeuristicLab.Core/3.3/Variable.cs
===================================================================
--- branches/PersistenceReintegration/HeuristicLab.Core/3.3/Variable.cs	(revision 14926)
+++ branches/PersistenceReintegration/HeuristicLab.Core/3.3/Variable.cs	(revision 14927)
@@ -23,5 +23,5 @@
 using System.Drawing;
 using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Persistence;
 
 namespace HeuristicLab.Core {
@@ -30,5 +30,5 @@
   /// </summary>
   [Item("Variable", "A variable which has a name and holds an IItem.")]
-  [StorableClass]
+  [StorableType("91282682-72d9-43fb-9927-55ad65c71bcb")]
   public sealed class Variable : NamedItem, IVariable {
     public override Image ItemImage {
