Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/BinPacking3D.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/BinPacking3D.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/BinPacking3D.cs	(revision 16723)
@@ -23,5 +23,5 @@
 using System.Collections.Generic;
 using System.Linq;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/BinUtilizationEvaluator.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/BinUtilizationEvaluator.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/BinUtilizationEvaluator.cs	(revision 16723)
@@ -20,8 +20,7 @@
 #endregion
 
-using System;
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/PackingRatioEvaluator.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/PackingRatioEvaluator.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Evaluators/PackingRatioEvaluator.cs	(revision 16723)
@@ -23,5 +23,5 @@
 using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/RandomInstanceProvider.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/RandomInstanceProvider.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/RandomInstanceProvider.cs	(revision 16723)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/RealWorldContainerPackingInstanceProvider.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/RealWorldContainerPackingInstanceProvider.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/RealWorldContainerPackingInstanceProvider.cs	(revision 16723)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/ThreeDInstanceDescriptor.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/ThreeDInstanceDescriptor.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/ThreeDInstanceDescriptor.cs	(revision 16723)
@@ -2,5 +2,5 @@
 
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/ThreeDInstanceParser.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/ThreeDInstanceParser.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Instances/ThreeDInstanceParser.cs	(revision 16723)
@@ -2,5 +2,5 @@
 
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 16723)
@@ -21,7 +21,6 @@
 
 using System;
-using System.Linq;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 16723)
@@ -21,17 +21,15 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 16723)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorProblem.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 16723)
@@ -2,5 +2,5 @@
 
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -30,13 +30,13 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IDecoder.cs	(revision 16723)
@@ -22,6 +22,8 @@
 using System.Collections.Generic;
 using HeuristicLab.Core;
+using HEAL.Attic;
 
 namespace HeuristicLab.Problems.BinPacking3D {
+  [StorableType("df195f8b-c7c1-4167-bff1-362e30f3c4dd")]
   public interface IDecoder<in T> : IItem {
     Solution Decode(T encodedSolution, PackingShape binShape, IList<PackingItem> items, bool useStackingConstraints);
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IEvaluator.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IEvaluator.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IEvaluator.cs	(revision 16723)
@@ -21,6 +21,8 @@
 
 using HeuristicLab.Core;
+using HEAL.Attic;
 
 namespace HeuristicLab.Problems.BinPacking3D {
+  [StorableType("9bc2a33b-46b1-457c-a96b-afb15d5cc01f")]
   public interface IEvaluator : IItem {
     double Evaluate(Solution solution);
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IOperator.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IOperator.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Interfaces/IOperator.cs	(revision 16723)
@@ -22,6 +22,8 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
+using HEAL.Attic;
 
 namespace HeuristicLab.Problems.BinPacking3D {
+  [StorableType("d442d459-ad09-46df-8b3e-6164db9fb0e2")]
   public interface IOperator<TSol> : IItem {
     ILookupParameter<ReadOnlyItemList<PackingItem>> ItemsParameter { get; }
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/MoveEvaluatorBase.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/MoveEvaluatorBase.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/MoveEvaluatorBase.cs	(revision 16723)
@@ -26,8 +26,8 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingItem.cs	(revision 16723)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingPosition.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingPosition.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingPosition.cs	(revision 16723)
@@ -21,5 +21,5 @@
 
 using System;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingShape.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingShape.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PackingShape.cs	(revision 16723)
@@ -22,5 +22,5 @@
 using System;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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) {
@@ -118,7 +118,7 @@
       else throw new ArgumentException(string.Format("Cannot compare with object {0}", obj), "obj");
     }
-
     #endregion
 
+    [StorableType(StorableMemberSelection.AllFields, "6dc0b0e2-e165-44e0-a342-71974f0494e3")]
     private struct CuboidDiagonal {
       public int x1;
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/BottomLeftPermutationDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/BottomLeftPermutationDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/BottomLeftPermutationDecoder.cs	(revision 16723)
@@ -21,5 +21,5 @@
 
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoder.cs	(revision 16723)
@@ -20,20 +20,18 @@
 #endregion
 
-using System;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoderBase.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoderBase.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ExtremePointPermutationDecoderBase.cs	(revision 16723)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -24,13 +24,13 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/FreeVolumeBestFitExtremePointPermutationDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/FreeVolumeBestFitExtremePointPermutationDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/FreeVolumeBestFitExtremePointPermutationDecoder.cs	(revision 16723)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,13 +26,13 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/PermutationProblem.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/PermutationProblem.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/PermutationProblem.cs	(revision 16723)
@@ -2,5 +2,5 @@
 
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -29,13 +29,13 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ResidualSpaceBestFitExtremePointPermutationDecoder.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ResidualSpaceBestFitExtremePointPermutationDecoder.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/ResidualSpaceBestFitExtremePointPermutationDecoder.cs	(revision 16723)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,13 +26,13 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/Swap2MoveEvaluator.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/Swap2MoveEvaluator.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/Swap2MoveEvaluator.cs	(revision 16723)
@@ -23,9 +23,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/TranslocationMoveEvaluator.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/TranslocationMoveEvaluator.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/PermutationEncoding/TranslocationMoveEvaluator.cs	(revision 16723)
@@ -23,9 +23,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Encodings.PermutationEncoding;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/ProblemBase.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/ProblemBase.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/ProblemBase.cs	(revision 16723)
@@ -2,5 +2,5 @@
 
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -28,10 +28,10 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Solution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Solution.cs	(revision 16692)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.BinPacking/3.3/3D/Solution.cs	(revision 16723)
@@ -1,15 +1,15 @@
 ﻿using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 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) {
