Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/BinPacking2D.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/BinPacking2D.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/BinPacking2D.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("BinPacking2D", "Represents a single-bin packing for a 2D bin-packing problem.")]
-  [StorableClass]
+  [StorableType("8B9C6AB0-ED65-4868-B1DF-09BD1F49309A")]
   public class BinPacking2D : BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> {
 
@@ -39,5 +39,5 @@
 
     [StorableConstructor]
-    protected BinPacking2D(bool deserializing) : base(deserializing) { }
+    protected BinPacking2D(StorableConstructorFlag _) : base(_) { }
     protected BinPacking2D(BinPacking2D original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Evaluators/BinUtilizationEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Evaluators/BinUtilizationEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Evaluators/BinUtilizationEvaluator.cs	(revision 16462)
@@ -20,17 +20,16 @@
 #endregion
 
-using System;
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Bin-Utilization Evaluator (2d)", "Calculates the overall utilization of bin space.")]
-  [StorableClass]
+  [StorableType("54C2F064-D3C8-40C0-808D-B952D0C43033")]
   public class BinUtilizationEvaluator : Item, IEvaluator {
 
     [StorableConstructor]
-    protected BinUtilizationEvaluator(bool deserializing) : base(deserializing) { }
+    protected BinUtilizationEvaluator(StorableConstructorFlag _) : base(_) { }
     protected BinUtilizationEvaluator(BinUtilizationEvaluator original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Evaluators/PackingRatioEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Evaluators/PackingRatioEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Evaluators/PackingRatioEvaluator.cs	(revision 16462)
@@ -23,14 +23,14 @@
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Packing-Ratio Evaluator (2d)", "Calculates the ratio between packed and unpacked space.")]
-  [StorableClass]
+  [StorableType("F07A6B7A-763B-413C-B3DA-916A6147B71A")]
   public class PackingRatioEvaluator : Item, IEvaluator {
 
     [StorableConstructor]
-    protected PackingRatioEvaluator(bool deserializing) : base(deserializing) { }
+    protected PackingRatioEvaluator(StorableConstructorFlag _) : base(_) { }
     protected PackingRatioEvaluator(PackingRatioEvaluator original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 16462)
@@ -20,18 +20,16 @@
 #endregion
 
-using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
-using HeuristicLab.Encodings.IntegerVectorEncoding;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Bottom-left IntegerVector Decoder (2d)", "Decodes the integer vector and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("27643FED-BADA-48BF-8A71-38C35D160961")]
   public class BottomLeftIntegerVectorDecoder : IntegerVectorDecoderBase {
 
     [StorableConstructor]
-    protected BottomLeftIntegerVectorDecoder(bool deserializing) : base(deserializing) { }
+    protected BottomLeftIntegerVectorDecoder(StorableConstructorFlag _) : base(_) { }
     protected BottomLeftIntegerVectorDecoder(BottomLeftIntegerVectorDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 16462)
@@ -21,17 +21,15 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Encodings.IntegerVectorEncoding;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Extreme-point IntegerVector Decoder (2d)", "Decodes the integer vector and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("D40DEE7A-4AAC-47DA-9FA8-12D3C09177A7")]
   public class ExtremePointIntegerVectorDecoder : IntegerVectorDecoderBase {
 
     [StorableConstructor]
-    protected ExtremePointIntegerVectorDecoder(bool deserializing) : base(deserializing) { }
+    protected ExtremePointIntegerVectorDecoder(StorableConstructorFlag _) : base(_) { }
     protected ExtremePointIntegerVectorDecoder(ExtremePointIntegerVectorDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
@@ -28,9 +28,9 @@
 
 namespace HeuristicLab.Problems.BinPacking2D {
-  [StorableClass]
+  [StorableType("63588140-31BB-402A-BEEE-B11C8809A585")]
   public abstract class IntegerVectorDecoderBase : Item, IDecoder<IntegerVector> {
 
     [StorableConstructor]
-    protected IntegerVectorDecoderBase(bool deserializing) : base(deserializing) { }
+    protected IntegerVectorDecoderBase(StorableConstructorFlag _) : base(_) { }
     protected IntegerVectorDecoderBase(IntegerVectorDecoderBase original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/IntegerVectorProblem.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 16462)
@@ -30,14 +30,14 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Bin Packing Problem (2D, integer vector encoding) (BPP)", "Represents a two-dimensional bin-packing problem using only bins with identical measures and bins/items with rectangular shapes.")]
-  [StorableClass]
+  [StorableType("0928004F-FB4B-4516-9FAE-B44D2F39413B")]
   [Creatable(Category = CreatableAttribute.Categories.CombinatorialProblems, Priority = 310)]
   public sealed class IntegerVectorProblem : ProblemBase<IntegerVectorEncoding, IntegerVector> {
     // persistence
     [StorableConstructor]
-    private IntegerVectorProblem(bool deserializing) : base(deserializing) { }
+    private IntegerVectorProblem(StorableConstructorFlag _) : base(_) { }
 
     // cloning
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/MoveEvaluatorBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/MoveEvaluatorBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/MoveEvaluatorBase.cs	(revision 16462)
@@ -26,8 +26,8 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking2D {
-  [StorableClass]
+  [StorableType("13553924-A74F-4897-ABAB-CD049CFD2B41")]
   public abstract class MoveEvaluatorBase<TSol, TMove> : SingleSuccessorOperator,
     ISingleObjectiveMoveEvaluator, ISingleObjectiveMoveOperator, IOperator<TSol>
@@ -61,5 +61,5 @@
 
     [StorableConstructor]
-    protected MoveEvaluatorBase(bool deserializing) : base(deserializing) { }
+    protected MoveEvaluatorBase(StorableConstructorFlag _) : base(_) { }
     protected MoveEvaluatorBase(MoveEvaluatorBase<TSol, TMove> original, Cloner cloner) : base(original, cloner) { }
     protected MoveEvaluatorBase()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingItem.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingItem.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingItem.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -30,5 +30,5 @@
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("PackingItem (2d)", "Represents a rectangular packing-item for bin-packing problems.")]
-  [StorableClass]
+  [StorableType("36B693B0-3CD9-4EE2-97EF-B8BEA8E4877A")]
   public class PackingItem : PackingShape, IPackingItem {
 
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected PackingItem(bool deserializing) : base(deserializing) { }
+    protected PackingItem(StorableConstructorFlag _) : base(_) { }
     protected PackingItem(PackingItem original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingPosition.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingPosition.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingPosition.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using System;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
@@ -27,5 +27,5 @@
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Packing Position (2d)", "Represents a packing-position associated with a two dimensional packing-problem.")]
-  [StorableClass]
+  [StorableType("7B0A0FD9-2D2C-4E03-BB66-674446A07587")]
   // PackingPosition is an immutable class (and handled as value type concerning Equals and GetHashCode())
   public class PackingPosition : BinPacking.PackingPosition, IComparable<PackingPosition> {
@@ -39,5 +39,5 @@
 
     [StorableConstructor]
-    protected PackingPosition(bool deserializing) : base(deserializing) { }
+    protected PackingPosition(StorableConstructorFlag _) : base(_) { }
     protected PackingPosition(PackingPosition original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingShape.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingShape.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PackingShape.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using System;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using HeuristicLab.Data;
@@ -31,5 +31,5 @@
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("PackingShape (2d)", "Represents the rectangular measures (width, height) of a two-dimensional bin-packing object.")]
-  [StorableClass]
+  [StorableType("11EF7917-826C-4154-A7E6-0869C1188B95")]
   public class PackingShape : PackingShape<PackingPosition>, IComparable<PackingShape> {
     public int Height {
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    protected PackingShape(bool deserializing) : base(deserializing) { }
+    protected PackingShape(StorableConstructorFlag _) : base(_) { }
     protected PackingShape(PackingShape original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/BottomLeftPermutationDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/BottomLeftPermutationDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/BottomLeftPermutationDecoder.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
@@ -28,9 +28,9 @@
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Bottom-left Permutation Decoder (2d)", "Decodes the permutation and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("BD0B1034-46EC-430A-B971-258FACC9A39B")]
   public class BottomLeftPermutationDecoder : Item, IDecoder<Permutation> {
 
     [StorableConstructor]
-    protected BottomLeftPermutationDecoder(bool deserializing) : base(deserializing) { }
+    protected BottomLeftPermutationDecoder(StorableConstructorFlag _) : base(_) { }
     protected BottomLeftPermutationDecoder(BottomLeftPermutationDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/ExtremePointPermutationDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/ExtremePointPermutationDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/ExtremePointPermutationDecoder.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
@@ -28,9 +28,9 @@
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Extreme-point Permutation Decoder (2d)", "Decodes the permutation and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("F50F332A-CFE7-4AB7-95C6-8D7943B3DEF2")]
   public class ExtremePointPermutationDecoder : Item, IDecoder<Permutation> {
 
     [StorableConstructor]
-    protected ExtremePointPermutationDecoder(bool deserializing) : base(deserializing) { }
+    protected ExtremePointPermutationDecoder(StorableConstructorFlag _) : base(_) { }
     protected ExtremePointPermutationDecoder(ExtremePointPermutationDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/PermutationProblem.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/PermutationProblem.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/PermutationProblem.cs	(revision 16462)
@@ -29,14 +29,14 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Bin Packing Problem (2D, permutation encoding) (BPP)", "Represents a two-dimensional bin-packing problem using only bins with identical measures and bins/items with rectangular shapes.")]
-  [StorableClass]
+  [StorableType("BE95CC5D-7FFD-4BC7-A2FF-7D71D3B951F6")]
   [Creatable(Category = CreatableAttribute.Categories.CombinatorialProblems, Priority = 300)]
   public sealed class PermutationProblem : ProblemBase<PermutationEncoding, Permutation> {
     // persistence
     [StorableConstructor]
-    private PermutationProblem(bool deserializing) : base(deserializing) { }
+    private PermutationProblem(StorableConstructorFlag _) : base(_) { }
 
     // cloning
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/Swap2MoveEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/Swap2MoveEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/Swap2MoveEvaluator.cs	(revision 16462)
@@ -23,9 +23,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Swap2MoveEvaluator", "Move evaluator for 2-opt moves.")]
-  [StorableClass]
+  [StorableType("7C1A0291-AD10-457D-B7B3-3D2B5B02C58D")]
   public sealed class Swap2MoveEvaluator : MoveEvaluatorBase<Permutation, Swap2Move>, IPermutationSwap2MoveOperator {
     public ILookupParameter<Swap2Move> Swap2MoveParameter {
@@ -37,5 +37,5 @@
 
     [StorableConstructor]
-    private Swap2MoveEvaluator(bool deserializing) : base(deserializing) { }
+    private Swap2MoveEvaluator(StorableConstructorFlag _) : base(_) { }
     private Swap2MoveEvaluator(Swap2MoveEvaluator original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveEvaluator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/TranslocationMoveEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/TranslocationMoveEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/PermutationEncoding/TranslocationMoveEvaluator.cs	(revision 16462)
@@ -23,9 +23,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("TranslocationMoveEvaluator", "Move evaluator for insertion or translocation moves.")]
-  [StorableClass]
+  [StorableType("9198644C-27DA-408B-810E-7686F0539802")]
   public sealed class TranslocationMoveEvaluator : MoveEvaluatorBase<Permutation, TranslocationMove>, IPermutationTranslocationMoveOperator {
     public ILookupParameter<TranslocationMove> TranslocationMoveParameter {
@@ -36,5 +36,5 @@
     }
     [StorableConstructor]
-    private TranslocationMoveEvaluator(bool deserializing) : base(deserializing) { }
+    private TranslocationMoveEvaluator(StorableConstructorFlag _) : base(_) { }
     private TranslocationMoveEvaluator(TranslocationMoveEvaluator original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveEvaluator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/ProblemBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/ProblemBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/ProblemBase.cs	(revision 16462)
@@ -28,9 +28,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.BinPacking2D {
-  [StorableClass]
+  [StorableType("215B7963-4B3D-4197-B18F-16CC13EC5D68")]
   public abstract class ProblemBase<TEnc, TSol> :
     SingleObjectiveBasicProblem<TEnc>, IProblemInstanceConsumer<BPPData>, IProblemInstanceExporter<BPPData>
@@ -138,5 +138,5 @@
     // persistence
     [StorableConstructor]
-    protected ProblemBase(bool deserializing) : base(deserializing) { }
+    protected ProblemBase(StorableConstructorFlag _) : base(_) { }
 
     // cloning
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Solution.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Solution.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/2D/Solution.cs	(revision 16462)
@@ -22,15 +22,15 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Problems.BinPacking;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("Bin Packing Solution (2d)", "Represents a solution for a 2D bin packing problem.")]
-  [StorableClass]
+  [StorableType("9C014DEE-B1B3-447F-885E-5887E29DADF1")]
   public class Solution : PackingPlan<PackingPosition, PackingShape, PackingItem> {
     public Solution(PackingShape binShape) : this(binShape, false, false) { }
     public Solution(PackingShape binShape, bool useExtremePoints, bool stackingConstraints) : base(binShape, useExtremePoints, stackingConstraints) { }
     [StorableConstructor]
-    protected Solution(bool deserializing) : base(deserializing) { }
+    protected Solution(StorableConstructorFlag _) : base(_) { }
     protected Solution(Solution original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/BinPacking3D.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/BinPacking3D.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/BinPacking3D.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
@@ -30,5 +30,5 @@
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("BinPacking3D", "Represents a single-bin packing for a 3D bin-packing problem.")]
-  [StorableClass]
+  [StorableType("34D86A6D-F75F-4F62-9FB6-D7FEA738CECD")]
   public class BinPacking3D : BinPacking<PackingPosition, PackingShape, PackingItem> {
 
@@ -43,5 +43,5 @@
     }
     [StorableConstructor]
-    protected BinPacking3D(bool deserializing) : base(deserializing) { }
+    protected BinPacking3D(StorableConstructorFlag _) : base(_) { }
     protected BinPacking3D(BinPacking3D original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/BinUtilizationEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/BinUtilizationEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/BinUtilizationEvaluator.cs	(revision 16462)
@@ -20,8 +20,7 @@
 #endregion
 
-using System;
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 
@@ -29,9 +28,9 @@
   // NOTE: same implementation as for 2d problem
   [Item("Bin-Utilization Evaluator (3d)", "Calculates the overall utilization of bin space.")]
-  [StorableClass]
+  [StorableType("D6743552-FF6F-4D9B-AFC2-38FF3D25DEB9")]
   public class BinUtilizationEvaluator : Item, IEvaluator {
 
     [StorableConstructor]
-    protected BinUtilizationEvaluator(bool deserializing) : base(deserializing) { }
+    protected BinUtilizationEvaluator(StorableConstructorFlag _) : base(_) { }
     protected BinUtilizationEvaluator(BinUtilizationEvaluator original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/PackingRatioEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/PackingRatioEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/PackingRatioEvaluator.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 
@@ -29,9 +29,9 @@
   // NOTE: same implementation as for 2d problem
   [Item("Packing-Ratio Evaluator (3d)", "Calculates the ratio between packed and unpacked space.")]
-  [StorableClass]
+  [StorableType("1CD9C03B-3C29-4D3D-B3FA-A3C5234907CD")]
   public class PackingRatioEvaluator : Item, IEvaluator {
 
     [StorableConstructor]
-    protected PackingRatioEvaluator(bool deserializing) : base(deserializing) { }
+    protected PackingRatioEvaluator(StorableConstructorFlag _) : base(_) { }
     protected PackingRatioEvaluator(PackingRatioEvaluator original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 16462)
@@ -21,7 +21,6 @@
 
 using System;
-using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
@@ -30,9 +29,9 @@
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Bottom-left IntegerVector Decoder (3d)", "Decodes the integer vector and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("3216A482-05F0-4E4C-B74E-E5C81A24DFC2")]
   public class BottomLeftIntegerVectorDecoder : IntegerVectorDecoderBase {
 
     [StorableConstructor]
-    protected BottomLeftIntegerVectorDecoder(bool deserializing) : base(deserializing) { }
+    protected BottomLeftIntegerVectorDecoder(StorableConstructorFlag _) : base(_) { }
     protected BottomLeftIntegerVectorDecoder(BottomLeftIntegerVectorDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 16462)
@@ -21,17 +21,15 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
-using System.Linq;
-using HeuristicLab.Encodings.IntegerVectorEncoding;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Extreme-point IntegerVector Decoder (3d)", "Decodes the integer vector and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("F5A3F964-93C0-4B94-82ED-F241ADE409E8")]
   public class ExtremePointIntegerVectorDecoder : IntegerVectorDecoderBase {
 
     [StorableConstructor]
-    protected ExtremePointIntegerVectorDecoder(bool deserializing) : base(deserializing) { }
+    protected ExtremePointIntegerVectorDecoder(StorableConstructorFlag _) : base(_) { }
     protected ExtremePointIntegerVectorDecoder(ExtremePointIntegerVectorDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
@@ -28,9 +28,9 @@
 
 namespace HeuristicLab.Problems.BinPacking3D {
-  [StorableClass]
+  [StorableType("19C0AA6B-8FC5-4EA9-A441-5C4F5AD4C38E")]
   public abstract class IntegerVectorDecoderBase : Item, IDecoder<IntegerVector> {
 
     [StorableConstructor]
-    protected IntegerVectorDecoderBase(bool deserializing) : base(deserializing) { }
+    protected IntegerVectorDecoderBase(StorableConstructorFlag _) : base(_) { }
     protected IntegerVectorDecoderBase(IntegerVectorDecoderBase original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorProblem.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 16462)
@@ -30,13 +30,13 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Bin Packing Problem (3D, integer vector encoding) (BPP)", "Represents a two-dimensional bin-packing problem using only bins with identical measures and bins/items with rectangular shapes.")]
-  [StorableClass]
+  [StorableType("B5101A23-114F-4052-A06D-FFAF2B95A5E6")]
   [Creatable(Category = CreatableAttribute.Categories.CombinatorialProblems, Priority = 330)]
   public sealed class IntegerVectorProblem : ProblemBase<IntegerVectorEncoding, IntegerVector> {
     [StorableConstructor]
-    private IntegerVectorProblem(bool deserializing) : base(deserializing) { }
+    private IntegerVectorProblem(StorableConstructorFlag _) : base(_) { }
 
     // cloning
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/MoveEvaluatorBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/MoveEvaluatorBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/MoveEvaluatorBase.cs	(revision 16462)
@@ -26,8 +26,8 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
-  [StorableClass]
+  [StorableType("13F03B86-9790-4F75-9155-B3AEE3F9B541")]
   public abstract class MoveEvaluatorBase<TSol, TMove> : SingleSuccessorOperator,
     ISingleObjectiveMoveEvaluator, ISingleObjectiveMoveOperator, IOperator<TSol>
@@ -64,5 +64,5 @@
 
     [StorableConstructor]
-    protected MoveEvaluatorBase(bool deserializing) : base(deserializing) { }
+    protected MoveEvaluatorBase(StorableConstructorFlag _) : base(_) { }
     protected MoveEvaluatorBase(MoveEvaluatorBase<TSol, TMove> original, Cloner cloner) : base(original, cloner) { }
     protected MoveEvaluatorBase()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using HeuristicLab.Data;
@@ -29,5 +29,5 @@
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("PackingItem (3d)", "Represents a cuboidic packing-item for bin-packing problems.")]
-  [StorableClass]
+  [StorableType("413E8254-9600-42F9-B057-E57B502881FD")]
   public class PackingItem : PackingShape, IPackingItem {
     public IValueParameter<PackingShape> TargetBinParameter {
@@ -61,5 +61,5 @@
 
     [StorableConstructor]
-    protected PackingItem(bool deserializing) : base(deserializing) { }
+    protected PackingItem(StorableConstructorFlag _) : base(_) { }
     protected PackingItem(PackingItem original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingPosition.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingPosition.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingPosition.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using System;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
@@ -27,5 +27,5 @@
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Packing Position (3d)", "Represents a packing-position associated with a three dimensional packing-problem.")]
-  [StorableClass]
+  [StorableType("68408986-2325-43D3-A53B-DC2F31FB690C")]
   // PackingPosition is immutable (and handled as value type concerning Equals and GetHashCode)
   public class PackingPosition : BinPacking.PackingPosition, IComparable<PackingPosition> {
@@ -42,5 +42,5 @@
 
     [StorableConstructor]
-    protected PackingPosition(bool deserializing) : base(deserializing) { }
+    protected PackingPosition(StorableConstructorFlag _) : base(_) { }
     protected PackingPosition(PackingPosition original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingShape.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingShape.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PackingShape.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using System;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using HeuristicLab.Data;
@@ -30,5 +30,5 @@
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("PackingShape (3d)", "Represents the cuboid measures (width, height, depth) of a three-dimensional cuboidic bin-packing object.")]
-  [StorableClass]
+  [StorableType("87C5DC4E-A7E3-4853-B6C7-690B3F47DB57")]
   public class PackingShape : PackingShape<PackingPosition>, IComparable<PackingShape> {
     public IFixedValueParameter<IntValue> HeightParameter {
@@ -58,5 +58,5 @@
 
     [StorableConstructor]
-    protected PackingShape(bool deserializing) : base(deserializing) { }
+    protected PackingShape(StorableConstructorFlag _) : base(_) { }
     protected PackingShape(PackingShape original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/BottomLeftPermutationDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/BottomLeftPermutationDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/BottomLeftPermutationDecoder.cs	(revision 16462)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
@@ -28,9 +28,9 @@
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Bottom-left Permutation Decoder (3d)", "Decodes the permutation and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("120B6DE4-B1C2-4FCD-AE1F-051863DBE698")]
   public class BottomLeftPermutationDecoder : Item, IDecoder<Permutation> {
 
     [StorableConstructor]
-    protected BottomLeftPermutationDecoder(bool deserializing) : base(deserializing) { }
+    protected BottomLeftPermutationDecoder(StorableConstructorFlag _) : base(_) { }
     protected BottomLeftPermutationDecoder(BottomLeftPermutationDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoder.cs	(revision 16462)
@@ -20,20 +20,18 @@
 #endregion
 
-using System;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 using System.Collections.Generic;
 using HeuristicLab.Encodings.PermutationEncoding;
-using System.Linq;
 
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Extreme-point Permutation Decoder (3d)", "Decodes the permutation and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("1232374B-6C9C-46A2-B7C2-97F484597D44")]
   public class ExtremePointPermutationDecoder : ExtremePointPermutationDecoderBase {
 
     [StorableConstructor]
-    protected ExtremePointPermutationDecoder(bool deserializing) : base(deserializing) { }
+    protected ExtremePointPermutationDecoder(StorableConstructorFlag _) : base(_) { }
     protected ExtremePointPermutationDecoder(ExtremePointPermutationDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoderBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoderBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoderBase.cs	(revision 16462)
@@ -24,13 +24,13 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Extreme-point Permutation Decoder (3d) Base", "Base class for decoders")]
-  [StorableClass]
+  [StorableType("CF1A3362-B650-419D-A5C0-ADB9AFFCCC56")]
   public abstract class ExtremePointPermutationDecoderBase : Item, IDecoder<Permutation> {
 
     [StorableConstructor]
-    protected ExtremePointPermutationDecoderBase(bool deserializing) : base(deserializing) { }
+    protected ExtremePointPermutationDecoderBase(StorableConstructorFlag _) : base(_) { }
     protected ExtremePointPermutationDecoderBase(ExtremePointPermutationDecoderBase original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/FreeVolumeBestFitExtremePointPermutationDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/FreeVolumeBestFitExtremePointPermutationDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/FreeVolumeBestFitExtremePointPermutationDecoder.cs	(revision 16462)
@@ -26,13 +26,13 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Free Volume Best Fit Extreme-point Permutation Decoder (3d)", "Decodes the permutation and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("3CF690C8-EB29-40DC-ADE3-9B9A83928772")]
   public class FreeVolumeBestFitExtremePointPermutationDecoder : ExtremePointPermutationDecoderBase {
 
     [StorableConstructor]
-    protected FreeVolumeBestFitExtremePointPermutationDecoder(bool deserializing) : base(deserializing) { }
+    protected FreeVolumeBestFitExtremePointPermutationDecoder(StorableConstructorFlag _) : base(_) { }
     protected FreeVolumeBestFitExtremePointPermutationDecoder(FreeVolumeBestFitExtremePointPermutationDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/PermutationProblem.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/PermutationProblem.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/PermutationProblem.cs	(revision 16462)
@@ -29,13 +29,13 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Bin Packing Problem (3D, permutation encoding) (BPP)", "Represents a three-dimensional bin-packing problem using only bins with identical measures and bins/items with rectangular shapes.")]
-  [StorableClass]
+  [StorableType("84B8B871-C360-43BD-BFC3-F6F16B379439")]
   [Creatable(Category = CreatableAttribute.Categories.CombinatorialProblems, Priority = 320)]
   public sealed class PermutationProblem : ProblemBase<PermutationEncoding, Permutation> {
     [StorableConstructor]
-    private PermutationProblem(bool deserializing) : base(deserializing) { }
+    private PermutationProblem(StorableConstructorFlag _) : base(_) { }
 
     // cloning
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ResidualSpaceBestFitExtremePointPermutationDecoder.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ResidualSpaceBestFitExtremePointPermutationDecoder.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ResidualSpaceBestFitExtremePointPermutationDecoder.cs	(revision 16462)
@@ -26,13 +26,13 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Residual Space Best Fit Extreme-point Permutation Decoder (3d)", "Decodes the permutation and creates a packing solution candidate")]
-  [StorableClass]
+  [StorableType("FD6679E5-CB7C-4DDA-B45F-DA6137CFA00E")]
   public class ResidualSpaceBestFitExtremePointPermutationDecoder : ExtremePointPermutationDecoderBase {
 
     [StorableConstructor]
-    protected ResidualSpaceBestFitExtremePointPermutationDecoder(bool deserializing) : base(deserializing) { }
+    protected ResidualSpaceBestFitExtremePointPermutationDecoder(StorableConstructorFlag _) : base(_) { }
     protected ResidualSpaceBestFitExtremePointPermutationDecoder(ResidualSpaceBestFitExtremePointPermutationDecoder original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/Swap2MoveEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/Swap2MoveEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/Swap2MoveEvaluator.cs	(revision 16462)
@@ -23,9 +23,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Swap2MoveEvaluator", "Move evaluator for 2-opt moves.")]
-  [StorableClass]
+  [StorableType("CF5E678F-E420-4825-A3FE-AE48D9B9B7C0")]
   public sealed class Swap2MoveEvaluator : MoveEvaluatorBase<Permutation, Swap2Move>, IPermutationSwap2MoveOperator {
     public ILookupParameter<Swap2Move> Swap2MoveParameter {
@@ -37,5 +37,5 @@
 
     [StorableConstructor]
-    private Swap2MoveEvaluator(bool deserializing) : base(deserializing) { }
+    private Swap2MoveEvaluator(StorableConstructorFlag _) : base(_) { }
     private Swap2MoveEvaluator(Swap2MoveEvaluator original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveEvaluator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/TranslocationMoveEvaluator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/TranslocationMoveEvaluator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/TranslocationMoveEvaluator.cs	(revision 16462)
@@ -23,9 +23,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("TranslocationMoveEvaluator", "Move evaluator for insertion or translocation moves.")]
-  [StorableClass]
+  [StorableType("76E856C1-3DB9-44EC-A995-2CD667B69753")]
   public sealed class TranslocationMoveEvaluator : MoveEvaluatorBase<Permutation, TranslocationMove>, IPermutationTranslocationMoveOperator {
     public ILookupParameter<TranslocationMove> TranslocationMoveParameter {
@@ -36,5 +36,5 @@
     }
     [StorableConstructor]
-    private TranslocationMoveEvaluator(bool deserializing) : base(deserializing) { }
+    private TranslocationMoveEvaluator(StorableConstructorFlag _) : base(_) { }
     private TranslocationMoveEvaluator(TranslocationMoveEvaluator original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveEvaluator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/ProblemBase.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/ProblemBase.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/ProblemBase.cs	(revision 16462)
@@ -28,10 +28,10 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   // in comparison to the 2d problem the 3d problem implementation also supports checking stacking constraints
-  [StorableClass]
+  [StorableType("11F0A7B9-EF53-435E-AE3B-200A269DE308")]
   public abstract class ProblemBase<TEnc, TSol> :
     SingleObjectiveBasicProblem<TEnc>, IProblemInstanceConsumer<BPPData>, IProblemInstanceExporter<BPPData>
@@ -152,5 +152,5 @@
     // persistence
     [StorableConstructor]
-    protected ProblemBase(bool deserializing) : base(deserializing) { }
+    protected ProblemBase(StorableConstructorFlag _) : base(_) { }
 
     // cloning
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Solution.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Solution.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/3D/Solution.cs	(revision 16462)
@@ -1,15 +1,15 @@
 ﻿using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Problems.BinPacking;
 
 namespace HeuristicLab.Problems.BinPacking3D {
   [Item("Bin Packing Solution (3d)", "Represents a solution for a 3D bin packing problem.")]
-  [StorableClass]
+  [StorableType("C0620C6F-3882-45CD-976F-4840ABD08BCD")]
   public class Solution : PackingPlan<PackingPosition, PackingShape, PackingItem> {
     public Solution(PackingShape binShape) : this(binShape, false, false) { }
     public Solution(PackingShape binShape, bool useExtremePoints, bool stackingConstraints) : base(binShape, useExtremePoints, stackingConstraints) { }
     [StorableConstructor]
-    protected Solution(bool deserializing) : base(deserializing) { }
+    protected Solution(StorableConstructorFlag _) : base(_) { }
     protected Solution(Solution original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/Algorithms/3D/ExtremePointAlgorithm.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/Algorithms/3D/ExtremePointAlgorithm.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/Algorithms/3D/ExtremePointAlgorithm.cs	(revision 16462)
@@ -31,5 +31,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Problems.BinPacking3D {
@@ -39,5 +39,5 @@
 
   [Item("Extreme-point-based Bin Packing (3d)", "An implementation of the extreme-point based packing described in Crainic, T. G., Perboli, G., & Tadei, R. (2008). Extreme point-based heuristics for three-dimensional bin packing. Informs Journal on computing, 20(3), 368-384.")]
-  [StorableClass]
+  [StorableType("33F16B60-E562-4609-A6BE-A21B83BDA575")]
   [Creatable(CreatableAttribute.Categories.SingleSolutionAlgorithms, Priority = 180)]
   public sealed class ExtremePointAlgorithm : BasicAlgorithm {
@@ -75,5 +75,5 @@
 
     [StorableConstructor]
-    private ExtremePointAlgorithm(bool deserializing) : base(deserializing) { }
+    private ExtremePointAlgorithm(StorableConstructorFlag _) : base(_) { }
     private ExtremePointAlgorithm(ExtremePointAlgorithm original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/BinPacking.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/BinPacking.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/BinPacking.cs	(revision 16462)
@@ -20,8 +20,7 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
@@ -30,5 +29,5 @@
 namespace HeuristicLab.Problems.BinPacking {
   [Item("BinPacking", "Represents a single-bin packing for a bin-packing problem.")]
-  [StorableClass]
+  [StorableType("7B0C7B64-CB50-405F-9F73-15B7C86F9B86")]
   public abstract class BinPacking<TPos, TBin, TItem> : Item
     where TPos : class, IPackingPosition
@@ -67,5 +66,5 @@
 
     [StorableConstructor]
-    protected BinPacking(bool deserializing) : base(deserializing) { }
+    protected BinPacking(StorableConstructorFlag _) : base(_) { }
     protected BinPacking(BinPacking<TPos, TBin, TItem> original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj	(revision 16462)
@@ -75,5 +75,5 @@
       <HintPath>..\..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll</HintPath>
     </Reference>
-    <Reference Include="HEAL.Fossil, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="HEAL.Fossil, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <HintPath>..\..\packages\HEAL.Fossil.1.0.0\lib\netstandard2.0\HEAL.Fossil.dll</HintPath>
     </Reference>
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingPlan.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingPlan.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingPlan.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using System;
 using System.Linq;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
@@ -29,5 +29,5 @@
 
 namespace HeuristicLab.Problems.BinPacking {
-  [StorableClass]
+  [StorableType("2E5A4B2A-EB2B-49F8-9BE8-45DA1A421F3E")]
   public abstract class PackingPlan<D, B, I> : Item
     where D : class, IPackingPosition
@@ -78,5 +78,5 @@
 
     [StorableConstructor]
-    protected PackingPlan(bool deserializing) : base(deserializing) { }
+    protected PackingPlan(StorableConstructorFlag _) : base(_) { }
     protected PackingPlan(PackingPlan<D, B, I> original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingPosition.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingPosition.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingPosition.cs	(revision 16462)
@@ -20,11 +20,10 @@
 #endregion
 
-using System;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Core;
 using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.BinPacking {
-  [StorableClass]
+  [StorableType("8ED65A4B-6F85-47EA-90C6-A4B47533E429")]
   // PackingPosition is immutable (and handled as value types concerning Equals and GetHashCode)
   public abstract class PackingPosition : Item, IPackingPosition {
@@ -48,5 +47,5 @@
 
     [StorableConstructor]
-    protected PackingPosition(bool deserializing) : base(deserializing) { }
+    protected PackingPosition(StorableConstructorFlag _) : base(_) { }
     protected PackingPosition(PackingPosition original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingShape.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingShape.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Problems.BinPacking/3.3/PackingShape.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.BinPacking {
-  [StorableClass]
+  [StorableType("FA24378B-4353-4CC9-AEFD-4B002EF5B139")]
   public abstract class PackingShape<T> : Item, IPackingShape, IParameterizedItem
     where T : class, IPackingPosition {
@@ -48,5 +48,5 @@
 
     [StorableConstructor]
-    protected PackingShape(bool deserializing) { }
+    protected PackingShape(StorableConstructorFlag _) : base(_) { }
     protected PackingShape(PackingShape<T> original, Cloner cloner) {
       this.Parameters = new ParameterCollection(original.Parameters.Select(p => cloner.Clone(p)));
