Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Creators/RandomPermutationCreator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Creators/RandomPermutationCreator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Creators/RandomPermutationCreator.cs	(revision 16462)
@@ -26,5 +26,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("RandomPermutationCreator", "An operator which creates a new random permutation of integer values.")]
-  [StorableClass]
+  [StorableType("527B14A9-DB58-4507-8C3F-1DE1EF4C4A2B")]
   public sealed class RandomPermutationCreator : InstrumentedOperator, IPermutationCreator, IStochasticOperator {
     public override bool CanChangeName {
@@ -58,5 +58,5 @@
 
     [StorableConstructor]
-    private RandomPermutationCreator(bool deserializing) : base(deserializing) { }
+    private RandomPermutationCreator(StorableConstructorFlag _) : base(_) { }
     private RandomPermutationCreator(RandomPermutationCreator original, Cloner cloner) : base(original, cloner) { }
     public RandomPermutationCreator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CosaCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CosaCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CosaCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -36,8 +36,8 @@
   /// </remarks>
   [Item("CosaCrossover", "An operator which performs the crossover described in the COSA optimization method. It is implemented as described in Wendt, O. 1994. COSA: COoperative Simulated Annealing - Integration von Genetischen Algorithmen und Simulated Annealing am Beispiel der Tourenplanung. Dissertation Thesis. IWI Frankfurt.")]
-  [StorableClass]
+  [StorableType("2C6B5F27-A921-4CDD-A484-35B8824CDDBE")]
   public class CosaCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected CosaCrossover(bool deserializing) : base(deserializing) { }
+    protected CosaCrossover(StorableConstructorFlag _) : base(_) { }
     protected CosaCrossover(CosaCrossover original, Cloner cloner) : base(original, cloner) { }
     public CosaCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CyclicCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CyclicCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CyclicCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,8 +33,8 @@
   /// </remarks>
   [Item("CyclicCrossover", "An operator which performs the cyclic crossover on two permutations. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass]
+  [StorableType("7C4797B7-A154-4702-AEEB-5511A170858B")]
   public class CyclicCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected CyclicCrossover(bool deserializing) : base(deserializing) { }
+    protected CyclicCrossover(StorableConstructorFlag _) : base(_) { }
     protected CyclicCrossover(CyclicCrossover original, Cloner cloner) : base(original, cloner) { }
     public CyclicCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CyclicCrossover2.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CyclicCrossover2.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/CyclicCrossover2.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -34,8 +34,8 @@
   /// </remarks>
   [Item("CyclicCrossover2", "An operator which performs the cyclic crossover on two permutations. It is implemented as described in Affenzeller, M. et al. 2009. Genetic Algorithms and Genetic Programming - Modern Concepts and Practical Applications. CRC Press. p. 136.")]
-  [StorableClass]
+  [StorableType("B1550E88-0F0B-452F-94EC-F457761A58F3")]
   public class CyclicCrossover2 : PermutationCrossover {
     [StorableConstructor]
-    protected CyclicCrossover2(bool deserializing) : base(deserializing) { }
+    protected CyclicCrossover2(StorableConstructorFlag _) : base(_) { }
     protected CyclicCrossover2(CyclicCrossover2 original, Cloner cloner) : base(original, cloner) { }
     public CyclicCrossover2() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/EdgeRecombinationCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/EdgeRecombinationCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/EdgeRecombinationCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -36,8 +36,8 @@
   /// </remarks>
   [Item("EdgeRecombinationCrossover", "An operator which performs the edge recombination crossover on two permutations. It is implemented as described in Whitley et.al. 1991, The Traveling Salesman and Sequence Scheduling, in Davis, L. (Ed.), Handbook of Genetic Algorithms, New York, pp. 350-372.")]
-  [StorableClass]
+  [StorableType("4A2E0B7A-F92A-4085-8F3A-149FA010FEB0")]
   public class EdgeRecombinationCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected EdgeRecombinationCrossover(bool deserializing) : base(deserializing) { }
+    protected EdgeRecombinationCrossover(StorableConstructorFlag _) : base(_) { }
     protected EdgeRecombinationCrossover(EdgeRecombinationCrossover original, Cloner cloner) : base(original, cloner) { }
     public EdgeRecombinationCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MaximalPreservativeCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MaximalPreservativeCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MaximalPreservativeCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -36,8 +36,8 @@
   /// </remarks>
   [Item("MaximalPreservativeCrossover", "An operator which performs the maximal preservative crossover on two permutations. It is implemented as described in Mühlenbein, H. 1991. Evolution in time and space - the parallel genetic algorithm. FOUNDATIONS OF GENETIC ALGORITHMS, pp. 316-337. Morgan Kaufmann.")]
-  [StorableClass]
+  [StorableType("FEC5CCFA-C7E6-4A2E-88C0-C537329BEE73")]
   public class MaximalPreservativeCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected MaximalPreservativeCrossover(bool deserializing) : base(deserializing) { }
+    protected MaximalPreservativeCrossover(StorableConstructorFlag _) : base(_) { }
     protected MaximalPreservativeCrossover(MaximalPreservativeCrossover original, Cloner cloner) : base(original, cloner) { }
     public MaximalPreservativeCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MultiPermutationCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MultiPermutationCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MultiPermutationCrossover.cs	(revision 16462)
@@ -28,10 +28,10 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("MultiPermutationCrossover", "Randomly selects and applies one of its crossovers every time it is called.")]
-  [StorableClass]
+  [StorableType("C4F47F2E-FAF5-4AC6-B8AB-42F8A11D8703")]
   public class MultiPermutationCrossover : StochasticMultiBranch<IPermutationCrossover>, IPermutationCrossover, IStochasticOperator {
     public override bool CanChangeName {
@@ -51,5 +51,5 @@
 
     [StorableConstructor]
-    protected MultiPermutationCrossover(bool deserializing) : base(deserializing) { }
+    protected MultiPermutationCrossover(StorableConstructorFlag _) : base(_) { }
     protected MultiPermutationCrossover(MultiPermutationCrossover original, Cloner cloner) : base(original, cloner) { }
     public MultiPermutationCrossover()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderBasedCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderBasedCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderBasedCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -36,8 +36,8 @@
   /// </remarks>
   [Item("OrderBasedCrossover", "An operator which performs an order based crossover of two permutations. It is implemented as described in Syswerda, G. (1991). Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp. 332-349.")]
-  [StorableClass]
+  [StorableType("399EAAF3-ECDF-46AE-9DB6-1D99E45EBA66")]
   public class OrderBasedCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected OrderBasedCrossover(bool deserializing) : base(deserializing) { }
+    protected OrderBasedCrossover(StorableConstructorFlag _) : base(_) { }
     protected OrderBasedCrossover(OrderBasedCrossover original, Cloner cloner) : base(original, cloner) { }
     public OrderBasedCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -36,8 +36,8 @@
   /// </remarks>
   [Item("OrderCrossover", "An operator which performs an order crossover of two permutations. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass]
+  [StorableType("DEF33012-C7C5-4C09-8FCD-1145353D06A2")]
   public class OrderCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected OrderCrossover(bool deserializing) : base(deserializing) { }
+    protected OrderCrossover(StorableConstructorFlag _) : base(_) { }
     protected OrderCrossover(OrderCrossover original, Cloner cloner) : base(original, cloner) { }
     public OrderCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderCrossover2.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderCrossover2.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/OrderCrossover2.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -35,8 +35,8 @@
   /// </remarks>
   [Item("OrderCrossover2", "An operator which performs an order crossover of two permutations. It is implemented as described in Affenzeller, M. et al. 2009. Genetic Algorithms and Genetic Programming - Modern Concepts and Practical Applications. CRC Press. p. 135.")]
-  [StorableClass]
+  [StorableType("9E9A828E-E853-43FD-A39B-F47D17BCE539")]
   public class OrderCrossover2 : PermutationCrossover {
     [StorableConstructor]
-    protected OrderCrossover2(bool deserializing) : base(deserializing) { }
+    protected OrderCrossover2(StorableConstructorFlag _) : base(_) { }
     protected OrderCrossover2(OrderCrossover2 original, Cloner cloner) : base(original, cloner) { }
     public OrderCrossover2() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/PartiallyMatchedCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/PartiallyMatchedCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/PartiallyMatchedCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -35,8 +35,8 @@
   /// </remarks>
   [Item("PartiallyMatchedCrossover", "An operator which performs the partially matched crossover on two permutations. It is implemented as described in Fogel, D.B. 1988. An Evolutionary Approach to the Traveling Salesman Problem. Biological Cybernetics, 60, pp. 139-144, Springer-Verlag.")]
-  [StorableClass]
+  [StorableType("BE92E88C-0A05-4E56-884A-BAFFE6A86F4F")]
   public class PartiallyMatchedCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected PartiallyMatchedCrossover(bool deserializing) : base(deserializing) { }
+    protected PartiallyMatchedCrossover(StorableConstructorFlag _) : base(_) { }
     protected PartiallyMatchedCrossover(PartiallyMatchedCrossover original, Cloner cloner) : base(original, cloner) { }
     public PartiallyMatchedCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/PositionBasedCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/PositionBasedCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/PositionBasedCrossover.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,8 +33,8 @@
   /// </remarks>
   [Item("PositionBasedCrossover", "An operator which performs the position based crossover on two permutations. It is implemented as described in Syswerda, G. (1991). Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp 332-349.")]
-  [StorableClass]
+  [StorableType("9C707A94-E432-4A1C-94F4-FA69ED639289")]
   public class PositionBasedCrossover : PermutationCrossover {
     [StorableConstructor]
-    protected PositionBasedCrossover(bool deserializing) : base(deserializing) { }
+    protected PositionBasedCrossover(StorableConstructorFlag _) : base(_) { }
     protected PositionBasedCrossover(PositionBasedCrossover original, Cloner cloner) : base(original, cloner) { }
     public PositionBasedCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/UniformLikeCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/UniformLikeCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/UniformLikeCrossover.cs	(revision 16462)
@@ -24,12 +24,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("UniformLikeCrossover", "The ULX crossover tries to maintain the position in the permutation. It randomly chooses from left to right one of its parents' alleles at each position. Missing entries are then filled randomly later. It is described in Tate, D. M. and Smith, A. E. 1995. A genetic approach to the quadratic assignment problem. Computers & Operations Research, vol. 22, pp. 73-83.")]
-  [StorableClass]
+  [StorableType("5FCF5C48-80A1-4A08-9561-F01FDCB8D20D")]
   public sealed class UniformLikeCrossover : PermutationCrossover {
     [StorableConstructor]
-    private UniformLikeCrossover(bool deserializing) : base(deserializing) { }
+    private UniformLikeCrossover(StorableConstructorFlag _) : base(_) { }
     private UniformLikeCrossover(UniformLikeCrossover original, Cloner cloner) : base(original, cloner) { }
     public UniformLikeCrossover() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj	(revision 16462)
@@ -109,5 +109,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.Encodings.PermutationEncoding/3.3/Manipulators/InsertionManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InsertionManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InsertionManipulator.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -32,8 +32,8 @@
   /// </remarks>
   [Item("InsertionManipulator", "An operator which moves randomly one element to another position in the permutation (Insertion is a special case of Translocation). It is implemented as described in Fogel, D.B. (1988). An Evolutionary Approach to the Traveling Salesman Problem, Biological Cybernetics, 60, pp. 139-144.")]
-  [StorableClass]
+  [StorableType("E8C09728-ACB7-491B-B87C-BE8E2B5A5B0B")]
   public class InsertionManipulator : PermutationManipulator {
     [StorableConstructor]
-    protected InsertionManipulator(bool deserializing) : base(deserializing) { }
+    protected InsertionManipulator(StorableConstructorFlag _) : base(_) { }
     protected InsertionManipulator(InsertionManipulator original, Cloner cloner) : base(original, cloner) { }
     public InsertionManipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InversionManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InversionManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InversionManipulator.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -32,8 +32,8 @@
   /// </remarks>
   [Item("InversionManipulator", "An operator which inverts a randomly chosen part of a permutation. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass]
+  [StorableType("F43DF081-19FB-4082-B136-EC1A77E0468A")]
   public class InversionManipulator : PermutationManipulator {
     [StorableConstructor]
-    protected InversionManipulator(bool deserializing) : base(deserializing) { }
+    protected InversionManipulator(StorableConstructorFlag _) : base(_) { }
     protected InversionManipulator(InversionManipulator original, Cloner cloner) : base(original, cloner) { }
     public InversionManipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/MultiPermutationManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/MultiPermutationManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/MultiPermutationManipulator.cs	(revision 16462)
@@ -28,10 +28,10 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("MultiPermutationManipulator", "Randomly selects and applies one of its manipulators every time it is called.")]
-  [StorableClass]
+  [StorableType("21EA3717-C907-490B-82E7-34A0B1A94EB0")]
   public class MultiPermutationManipulator : StochasticMultiBranch<IPermutationManipulator>, IPermutationManipulator, IStochasticOperator {
     public override bool CanChangeName {
@@ -47,5 +47,5 @@
 
     [StorableConstructor]
-    protected MultiPermutationManipulator(bool deserializing) : base(deserializing) { }
+    protected MultiPermutationManipulator(StorableConstructorFlag _) : base(_) { }
     protected MultiPermutationManipulator(MultiPermutationManipulator original, Cloner cloner) : base(original, cloner) { }
     public MultiPermutationManipulator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/ScrambleManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/ScrambleManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/ScrambleManipulator.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,8 +33,8 @@
   /// </remarks>
   [Item("ScrambleManipulator", "An operator which manipulates a permutation array by randomly scrambling the elements in a randomly chosen interval. It is implemented as described in Syswerda, G. (1991). Schedule Optimization Using Genetic Algorithms. In Davis, L. (Ed.) Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York, pp 332-349.")]
-  [StorableClass]
+  [StorableType("C324E297-C54E-4A18-BF41-3F0EF9595762")]
   public class ScrambleManipulator : PermutationManipulator {
     [StorableConstructor]
-    protected ScrambleManipulator(bool deserializing) : base(deserializing) { }
+    protected ScrambleManipulator(StorableConstructorFlag _) : base(_) { }
     protected ScrambleManipulator(ScrambleManipulator original, Cloner cloner) : base(original, cloner) { }
     public ScrambleManipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/Swap2Manipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/Swap2Manipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/Swap2Manipulator.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -32,8 +32,8 @@
   /// </remarks>
   [Item("Swap2Manipulator", "An operator which manipulates a permutation array by swapping to randomly chosen elements. It is implemented as described in Eiben, A.E. and Smith, J.E. 2003. Introduction to Evolutionary Computation. Natural Computing Series, Springer-Verlag Berlin Heidelberg.")]
-  [StorableClass]
+  [StorableType("0909F09A-B27B-4962-8A7D-B4561A37D324")]
   public class Swap2Manipulator : PermutationManipulator {
     [StorableConstructor]
-    protected Swap2Manipulator(bool deserializing) : base(deserializing) { }
+    protected Swap2Manipulator(StorableConstructorFlag _) : base(_) { }
     protected Swap2Manipulator(Swap2Manipulator original, Cloner cloner) : base(original, cloner) { }
     public Swap2Manipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/Swap3Manipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/Swap3Manipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/Swap3Manipulator.cs	(revision 16462)
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -34,8 +34,8 @@
   /// </remarks>
   [Item("Swap3Manipulator", "An operator which manipulates a permutation array by swaping three randomly chosen elements. It is implemented such that first 3 positions are randomly chosen in the interval [0;N) with N = length of the permutation with all positions being distinct from each other. Then position 1 is put in place of position 3, position 2 is put in place of position 1 and position 3 is put in place of position 2.")]
-  [StorableClass]
+  [StorableType("3907489F-54DF-4774-85E6-E89CE055B56C")]
   public class Swap3Manipulator : PermutationManipulator {
     [StorableConstructor]
-    protected Swap3Manipulator(bool deserializing) : base(deserializing) { }
+    protected Swap3Manipulator(StorableConstructorFlag _) : base(_) { }
     protected Swap3Manipulator(Swap3Manipulator original, Cloner cloner) : base(original, cloner) { }
     public Swap3Manipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/TranslocationInversionManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/TranslocationInversionManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/TranslocationInversionManipulator.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,8 +33,8 @@
   /// </remarks>
   [Item("TranslocationInversionManipulator", "An operator which inverts a randomly chosen part of a permutation and inserts it at a random position. It is implemented as described in Fogel, D.B. 1993. Applying Evolutionary Programming to Selected TSP Problems, Cybernetics and Systems, 22, pp. 27-36.")]
-  [StorableClass]
+  [StorableType("00E282D0-60ED-4A6B-B409-9CAB380DA670")]
   public class TranslocationInversionManipulator : PermutationManipulator {
     [StorableConstructor]
-    protected TranslocationInversionManipulator(bool deserializing) : base(deserializing) { }
+    protected TranslocationInversionManipulator(StorableConstructorFlag _) : base(_) { }
     protected TranslocationInversionManipulator(TranslocationInversionManipulator original, Cloner cloner) : base(original, cloner) { }
     public TranslocationInversionManipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/TranslocationManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/TranslocationManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/TranslocationManipulator.cs	(revision 16462)
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,8 +33,8 @@
   /// </remarks>
   [Item("TranslocationManipulator", "An operator which Manipulates a permutation array by moving a randomly chosen interval of elements to another (randomly chosen) position in the array. It is implemented as described in Michalewicz, Z. 1992. Genetic Algorithms + Data Structures = Evolution Programs, Springer Verlag, Berlin Heidelberg.")]
-  [StorableClass]
+  [StorableType("AB07D415-33F1-46C0-83FA-F7C1151B8AC8")]
   public class TranslocationManipulator : PermutationManipulator {
     [StorableConstructor]
-    protected TranslocationManipulator(bool deserializing) : base(deserializing) { }
+    protected TranslocationManipulator(StorableConstructorFlag _) : base(_) { }
     protected TranslocationManipulator(TranslocationManipulator original, Cloner cloner) : base(original, cloner) { }
     public TranslocationManipulator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Edge.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Edge.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Edge.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Edge", "An edge between two integer nodes and a flag for the direction.")]
-  [StorableClass]
+  [StorableType("68E0DF31-81CC-4561-B118-000AC925464D")]
   public class Edge : Item {
     [Storable]
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected Edge(bool deserializing) : base(deserializing) { }
+    protected Edge(StorableConstructorFlag _) : base(_) { }
     protected Edge(Edge original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/PermutationMoveAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/PermutationMoveAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/PermutationMoveAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("PermutationMoveAttribute", "Base class for specifying a move attribute")]
-  [StorableClass]
+  [StorableType("46AD6CFC-3D7B-4C36-9925-09526723E990")]
   public class PermutationMoveAttribute : Item {
     [Storable]
@@ -32,5 +32,5 @@
 
     [StorableConstructor]
-    protected PermutationMoveAttribute(bool deserializing) : base(deserializing) { }
+    protected PermutationMoveAttribute(StorableConstructorFlag _) : base(_) { }
     protected PermutationMoveAttribute(PermutationMoveAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMove.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMove.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMove.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ScrambleMove", "Item that describes a scramble move.")]
-  [StorableClass]
+  [StorableType("DBE9C007-10AA-4B8A-8092-23C9ACBA411A")]
   public sealed class ScrambleMove : Item {
     [Storable]
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    private ScrambleMove(bool deserializing) : base(deserializing) { }
+    private ScrambleMove(StorableConstructorFlag _) : base(_) { }
     private ScrambleMove(ScrambleMove original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ScrambleMoveGenerator", "Base class for all scramble move generators.")]
-  [StorableClass]
+  [StorableType("053A3BFC-F5F1-4893-B5E8-BCB452D18FC1")]
   public abstract class ScrambleMoveGenerator : SingleSuccessorOperator, IPermutationScrambleMoveOperator, IMoveGenerator {
     public override bool CanChangeName {
@@ -42,5 +42,5 @@
 
     [StorableConstructor]
-    protected ScrambleMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected ScrambleMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected ScrambleMoveGenerator(ScrambleMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public ScrambleMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveMaker.cs	(revision 16462)
@@ -26,9 +26,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ScrambleMoveMaker", "Peforms a scramble move on a given permutation and updates the quality.")]
-  [StorableClass]
+  [StorableType("5DC6735A-F109-4D86-98CF-B8CCB648D3D3")]
   public class ScrambleMoveMaker : SingleSuccessorOperator, IPermutationScrambleMoveOperator, IMoveMaker, ISingleObjectiveOperator {
     public override bool CanChangeName {
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected ScrambleMoveMaker(bool deserializing) : base(deserializing) { }
+    protected ScrambleMoveMaker(StorableConstructorFlag _) : base(_) { }
     protected ScrambleMoveMaker(ScrambleMoveMaker original, Cloner cloner) : base(original, cloner) { }
     public ScrambleMoveMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/StochasticScrambleMultiMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/StochasticScrambleMultiMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/StochasticScrambleMultiMoveGenerator.cs	(revision 16462)
@@ -27,9 +27,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticScrambleMultiMoveGenerator", "Randomly samples n from all possible scramble moves from a given permutation.")]
-  [StorableClass]
+  [StorableType("ECC7549D-404B-459A-A01E-6E00A53E58F5")]
   public class StochasticScrambleMultiMoveGenerator : ScrambleMoveGenerator, IMultiMoveGenerator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -46,5 +46,5 @@
 
     [StorableConstructor]
-    protected StochasticScrambleMultiMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticScrambleMultiMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticScrambleMultiMoveGenerator(StochasticScrambleMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticScrambleMultiMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/ExhaustiveSwap2MoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/ExhaustiveSwap2MoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/ExhaustiveSwap2MoveGenerator.cs	(revision 16462)
@@ -25,12 +25,12 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ExhaustiveSwap2MoveGenerator", "Generates all possible swap-2 moves from a given permutation.")]
-  [StorableClass]
+  [StorableType("D88EEC45-27D1-4E4F-9D3B-FD7ED3C4892C")]
   public class ExhaustiveSwap2MoveGenerator : Swap2MoveGenerator, IExhaustiveMoveGenerator {
     [StorableConstructor]
-    protected ExhaustiveSwap2MoveGenerator(bool deserializing) : base(deserializing) { }
+    protected ExhaustiveSwap2MoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected ExhaustiveSwap2MoveGenerator(ExhaustiveSwap2MoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public ExhaustiveSwap2MoveGenerator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2MultiMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2MultiMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2MultiMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticSwap2MultiMoveGenerator", "Randomly samples n from all possible swap-2 moves from a given permutation.")]
-  [StorableClass]
+  [StorableType("07B2AFDA-01BB-4317-9BFB-7D596CE43D1A")]
   public class StochasticSwap2MultiMoveGenerator : Swap2MoveGenerator, IMultiMoveGenerator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    protected StochasticSwap2MultiMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticSwap2MultiMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticSwap2MultiMoveGenerator(StochasticSwap2MultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticSwap2MultiMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2SingleMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2SingleMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/StochasticSwap2SingleMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticSwap2SingleMoveGenerator", "Randomly samples a single from all possible swap-2 moves from a given permutation.")]
-  [StorableClass]
+  [StorableType("A3F2B5E5-CB79-46FA-8336-69C54F354C1B")]
   public class StochasticSwap2SingleMoveGenerator : Swap2MoveGenerator, IStochasticOperator, ISingleMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected StochasticSwap2SingleMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticSwap2SingleMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticSwap2SingleMoveGenerator(StochasticSwap2SingleMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticSwap2SingleMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2Move.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2Move.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2Move.cs	(revision 16462)
@@ -22,12 +22,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Swap2Move", "Item that describes a swap-2 move.")]
-  [StorableClass]
+  [StorableType("50250010-F7BF-4F72-9093-D9F5FE01B8BF")]
   public class Swap2Move : TwoIndexMove {
     [StorableConstructor]
-    protected Swap2Move(bool deserializing) : base(deserializing) { }
+    protected Swap2Move(StorableConstructorFlag _) : base(_) { }
     protected Swap2Move(Swap2Move original, Cloner cloner) : base(original, cloner) { }
     public Swap2Move() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveAbsoluteAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveAbsoluteAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveAbsoluteAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Swap2MoveAbsoluteAttribute", "Specifies the tabu attributes for a swap-2 move on an absolute position permutation.")]
-  [StorableClass]
+  [StorableType("BE525C05-D1EB-4A87-9282-CF6B88E0D667")]
   public class Swap2MoveAbsoluteAttribute : PermutationMoveAttribute {
     [Storable]
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveAbsoluteAttribute(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveAbsoluteAttribute(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveAbsoluteAttribute(Swap2MoveAbsoluteAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Swap2MoveGenerator", "Base class for all swap-2 move generators.")]
-  [StorableClass]
+  [StorableType("A509FD36-5472-4664-BCB7-D1E4C4449614")]
   public abstract class Swap2MoveGenerator : SingleSuccessorOperator, IPermutationSwap2MoveOperator, IMoveGenerator {
     public override bool CanChangeName {
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveGenerator(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveGenerator(Swap2MoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveHardTabuCriterion.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveHardTabuCriterion.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveHardTabuCriterion.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -34,5 +34,5 @@
 
 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")]
-  [StorableClass]
+  [StorableType("5A8C0CDE-2545-46B2-A764-1F20597D4FF7")]
   public class Swap2MoveHardTabuCriterion : SingleSuccessorOperator, IPermutationSwap2MoveOperator, ITabuChecker {
     public override bool CanChangeName {
@@ -67,5 +67,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveHardTabuCriterion(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveHardTabuCriterion(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveHardTabuCriterion(Swap2MoveHardTabuCriterion original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveHardTabuCriterion()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveMaker.cs	(revision 16462)
@@ -26,9 +26,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Swap2MoveMaker", "Peforms a swap-2 move on a given permutation and updates the quality.")]
-  [StorableClass]
+  [StorableType("A5781DC7-E9F0-4926-A3BF-A43EE893E4F9")]
   public class Swap2MoveMaker : SingleSuccessorOperator, IPermutationSwap2MoveOperator, IMoveMaker, ISingleObjectiveOperator {
     public override bool CanChangeName {
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveMaker(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveMaker(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveMaker(Swap2MoveMaker original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveRelativeAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveRelativeAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveRelativeAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Swap2MoveRelativeAttribute", "Specifies the tabu attributes for a swap-2 move on a relative position permutation.")]
-  [StorableClass]
+  [StorableType("826E9F84-344E-48F3-ADC8-E1AFF52AADBF")]
   public class Swap2MoveRelativeAttribute : PermutationMoveAttribute {
     [Storable]
@@ -34,5 +34,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveRelativeAttribute(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveRelativeAttribute(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveRelativeAttribute(Swap2MoveRelativeAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveSoftTabuCriterion.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveSoftTabuCriterion.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveSoftTabuCriterion.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -34,5 +34,5 @@
 
 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")]
-  [StorableClass]
+  [StorableType("71881921-009B-4F82-BF3D-90AB1447D79A")]
   public class Swap2MoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationSwap2MoveOperator, ITabuChecker {
     public override bool CanChangeName {
@@ -67,5 +67,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveSoftTabuCriterion(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveSoftTabuCriterion(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveSoftTabuCriterion(Swap2MoveSoftTabuCriterion original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveSoftTabuCriterion()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveTabuMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveTabuMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveTabuMaker.cs	(revision 16462)
@@ -24,9 +24,9 @@
 using HeuristicLab.Optimization.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Swap2MoveTabuMaker", "Declares a given swap-2 move as tabu, by adding its attributes to the tabu list and also store the solution quality or the move quality (whichever is better).")]
-  [StorableClass]
+  [StorableType("A6548572-AF42-46FF-9B8C-E00EB9B92DE4")]
   public class Swap2MoveTabuMaker : TabuMaker, IPermutationSwap2MoveOperator {
     public ILookupParameter<Permutation> PermutationParameter {
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected Swap2MoveTabuMaker(bool deserializing) : base(deserializing) { }
+    protected Swap2MoveTabuMaker(StorableConstructorFlag _) : base(_) { }
     protected Swap2MoveTabuMaker(Swap2MoveTabuMaker original, Cloner cloner) : base(original, cloner) { }
     public Swap2MoveTabuMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeIndexMove.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeIndexMove.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeIndexMove.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ThreeIndexMove", "A move on a permutation that is specified by 3 indices.")]
-  [StorableClass]
+  [StorableType("0F9A8E7D-0198-4FBF-B6BA-D1B537F4B4D9")]
   public class ThreeIndexMove : Item {
     [Storable]
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected ThreeIndexMove(bool deserializing) : base(deserializing) { }
+    protected ThreeIndexMove(StorableConstructorFlag _) : base(_) { }
     protected ThreeIndexMove(ThreeIndexMove original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/ExhaustiveInsertionMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/ExhaustiveInsertionMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/ExhaustiveInsertionMoveGenerator.cs	(revision 16462)
@@ -26,12 +26,12 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ExhaustiveInsertionMoveGenerator", "Generates all possible insertion moves (3-opt) from a given permutation.")]
-  [StorableClass]
+  [StorableType("D3E672A7-97F5-4E21-B151-F7CE465A4DBB")]
   public class ExhaustiveInsertionMoveGenerator : TranslocationMoveGenerator, IExhaustiveMoveGenerator {
     [StorableConstructor]
-    protected ExhaustiveInsertionMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected ExhaustiveInsertionMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected ExhaustiveInsertionMoveGenerator(ExhaustiveInsertionMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public ExhaustiveInsertionMoveGenerator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticSingleInsertionMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticSingleInsertionMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticSingleInsertionMoveGenerator.cs	(revision 16462)
@@ -27,9 +27,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticInsertionMultiMoveGenerator", "Generates all possible insertion moves (3-opt) from a few numbers in a given permutation.")]
-  [StorableClass]
+  [StorableType("27AFEE18-D94C-467C-AB45-F81ABB879B16")]
   public class StochasticInsertionMultiMoveGenerator : TranslocationMoveGenerator, IMultiMoveGenerator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -46,5 +46,5 @@
 
     [StorableConstructor]
-    protected StochasticInsertionMultiMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticInsertionMultiMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticInsertionMultiMoveGenerator(StochasticInsertionMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticInsertionMultiMoveGenerator() : base() {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticTranslocationMultiMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticTranslocationMultiMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticTranslocationMultiMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticTranslocationMultiMoveGenerator", "Randomly samples n from all possible translocation and insertion moves (3-opt) from a given permutation.")]
-  [StorableClass]
+  [StorableType("CEC3FF43-3DE6-4977-BCE7-4CEB20BA97EE")]
   public class StochasticTranslocationMultiMoveGenerator : TranslocationMoveGenerator, IStochasticOperator, IMultiMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    protected StochasticTranslocationMultiMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticTranslocationMultiMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticTranslocationMultiMoveGenerator(StochasticTranslocationMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticTranslocationMultiMoveGenerator() : base() {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticTranslocationSingleMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticTranslocationSingleMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/StochasticTranslocationSingleMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticTranslocationSingleMoveGenerator", "Randomly samples one from all possible translocation and insertion moves (3-opt) from a given permutation.")]
-  [StorableClass]
+  [StorableType("E084E519-132B-4D01-ABDF-1B5B2976219E")]
   public class StochasticTranslocationSingleMoveGenerator : TranslocationMoveGenerator, IStochasticOperator, ISingleMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected StochasticTranslocationSingleMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticTranslocationSingleMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticTranslocationSingleMoveGenerator(StochasticTranslocationSingleMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticTranslocationSingleMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMove.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMove.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMove.cs	(revision 16462)
@@ -22,12 +22,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TranslocationMove", "A move that changes three edges by performing a translocation.")]
-  [StorableClass]
+  [StorableType("D8C65083-9375-4665-8A90-1A9EAD3EDA97")]
   public class TranslocationMove : ThreeIndexMove {
     [StorableConstructor]
-    protected TranslocationMove(bool deserializing) : base(deserializing) { }
+    protected TranslocationMove(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMove(TranslocationMove original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMove() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveAbsoluteAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveAbsoluteAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveAbsoluteAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TranslocationMoveAbsoluteAttribute", "Specifies the tabu attributes for a translocation and insertion move (3-opt) on absolute permutation encodings.")]
-  [StorableClass]
+  [StorableType("6E434731-DD9F-4CCD-A929-C6522EA4A301")]
   public class TranslocationMoveAbsoluteAttribute : PermutationMoveAttribute {
     [Storable]
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveAbsoluteAttribute(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveAbsoluteAttribute(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveAbsoluteAttribute(TranslocationMoveAbsoluteAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TranslocationMoveGenerator", "Base class for move generators that produce translocation moves (3-opt).")]
-  [StorableClass]
+  [StorableType("1569B595-0381-44D9-932B-72769C55ABC5")]
   public abstract class TranslocationMoveGenerator : SingleSuccessorOperator, IPermutationTranslocationMoveOperator, IMoveGenerator {
     public override bool CanChangeName {
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveGenerator(TranslocationMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveHardTabuCriterion.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveHardTabuCriterion.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveHardTabuCriterion.cs	(revision 16462)
@@ -26,5 +26,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,5 +33,5 @@
 
 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")]
-  [StorableClass]
+  [StorableType("FD8C3ED7-734F-4B90-9539-2367C62FA7EB")]
   public class TranslocationMoveHardTabuCriterion : SingleSuccessorOperator, IPermutationTranslocationMoveOperator, ITabuChecker {
     public override bool CanChangeName {
@@ -66,5 +66,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveHardTabuCriterion(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveHardTabuCriterion(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveHardTabuCriterion(TranslocationMoveHardTabuCriterion original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveHardTabuCriterion()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveMaker.cs	(revision 16462)
@@ -26,9 +26,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TranslocationMoveMaker", "Peforms a translocation or insertion move (3-opt) on a given permutation and updates the quality.")]
-  [StorableClass]
+  [StorableType("B27DC2DD-4E4E-448A-B4BD-86EEABACBBC5")]
   public class TranslocationMoveMaker : SingleSuccessorOperator, IPermutationTranslocationMoveOperator, IMoveMaker, ISingleObjectiveOperator {
     public override bool CanChangeName {
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveMaker(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveMaker(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveMaker(TranslocationMoveMaker original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveRelativeAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveRelativeAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveRelativeAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TranslocationMoveRelativeAttribute", "Specifies the tabu attributes for a translocation and insertion move (3-opt) on relative permutation encodings.")]
-  [StorableClass]
+  [StorableType("95F01C10-D383-4E5C-AC30-CB88E3263A00")]
   public class TranslocationMoveRelativeAttribute : PermutationMoveAttribute {
     [Storable]
@@ -42,5 +42,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveRelativeAttribute(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveRelativeAttribute(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveRelativeAttribute(TranslocationMoveRelativeAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveSoftTabuCriterion.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveSoftTabuCriterion.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveSoftTabuCriterion.cs	(revision 16462)
@@ -26,5 +26,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -33,5 +33,5 @@
 
 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")]
-  [StorableClass]
+  [StorableType("391C33EC-E235-4331-8121-97298E0FAE49")]
   public class TranslocationMoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationTranslocationMoveOperator, ITabuChecker {
     public override bool CanChangeName {
@@ -66,5 +66,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveSoftTabuCriterion(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveSoftTabuCriterion(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveSoftTabuCriterion(TranslocationMoveSoftTabuCriterion original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveSoftTabuCriterion()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveTabuMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveTabuMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveTabuMaker.cs	(revision 16462)
@@ -24,9 +24,9 @@
 using HeuristicLab.Optimization.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TranslocationMoveTabuMaker", "Declares a given translocation or insertion move (3-opt) as tabu, by adding its attributes to the tabu list.")]
-  [StorableClass]
+  [StorableType("A5B9AC7B-3A83-4BF4-914A-A0FD17AE8A94")]
   public class TranslocationMoveTabuMaker : TabuMaker, IPermutationTranslocationMoveOperator {
     public ILookupParameter<Permutation> PermutationParameter {
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected TranslocationMoveTabuMaker(bool deserializing) : base(deserializing) { }
+    protected TranslocationMoveTabuMaker(StorableConstructorFlag _) : base(_) { }
     protected TranslocationMoveTabuMaker(TranslocationMoveTabuMaker original, Cloner cloner) : base(original, cloner) { }
     public TranslocationMoveTabuMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoIndexMove.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoIndexMove.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoIndexMove.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("TwoIndexMove", "A move on a permutation that is specified by 2 indices.")]
-  [StorableClass]
+  [StorableType("B2415ECB-30EE-4FD6-96F6-1170B5BD85DE")]
   public class TwoIndexMove : Item {
     [Storable]
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected TwoIndexMove(bool deserializing) : base(deserializing) { }
+    protected TwoIndexMove(StorableConstructorFlag _) : base(_) { }
     protected TwoIndexMove(TwoIndexMove original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/ExhaustiveInversionMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/ExhaustiveInversionMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/ExhaustiveInversionMoveGenerator.cs	(revision 16462)
@@ -26,12 +26,12 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("ExhaustiveInversionMoveGenerator", "Generates all possible inversion moves (2-opt) from a given permutation.")]
-  [StorableClass]
+  [StorableType("7356F98C-404C-47B5-B290-EF4EE995D51C")]
   public class ExhaustiveInversionMoveGenerator : InversionMoveGenerator, IExhaustiveMoveGenerator {
     [StorableConstructor]
-    protected ExhaustiveInversionMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected ExhaustiveInversionMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected ExhaustiveInversionMoveGenerator(ExhaustiveInversionMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public ExhaustiveInversionMoveGenerator() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMove.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMove.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMove.cs	(revision 16462)
@@ -22,12 +22,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("InversionMove", "Item that describes an inversion move (2-opt).")]
-  [StorableClass]
+  [StorableType("864C1259-8419-410F-8DD1-2C2751B1AF6B")]
   public class InversionMove : TwoIndexMove {
     [StorableConstructor]
-    protected InversionMove(bool deserializing) : base(deserializing) { }
+    protected InversionMove(StorableConstructorFlag _) : base(_) { }
     protected InversionMove(InversionMove original, Cloner cloner) : base(original, cloner) { }
     public InversionMove() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveAbsoluteAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveAbsoluteAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveAbsoluteAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("InversionMoveAbsoluteAttribute", "Specifies the tabu attributes for an inversion move (2-opt) on an absolute position permutation.")]
-  [StorableClass]
+  [StorableType("3C1B448F-5D8F-462F-9F2A-42CCDF4D596D")]
   public class InversionMoveAbsoluteAttribute : PermutationMoveAttribute {
     [Storable]
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected InversionMoveAbsoluteAttribute(bool deserializing) : base(deserializing) { }
+    protected InversionMoveAbsoluteAttribute(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveAbsoluteAttribute(InversionMoveAbsoluteAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("InversionMoveGenerator", "Base class for all inversion (2-opt) move generators.")]
-  [StorableClass]
+  [StorableType("FB20D0B5-4A65-4718-9A92-90C421034BCF")]
   public abstract class InversionMoveGenerator : SingleSuccessorOperator, IPermutationInversionMoveOperator, IMoveGenerator {
     public override bool CanChangeName {
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    protected InversionMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected InversionMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveGenerator(InversionMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public InversionMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveHardTabuCriterion.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveHardTabuCriterion.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveHardTabuCriterion.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -34,5 +34,5 @@
 
 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")]
-  [StorableClass]
+  [StorableType("E5212C75-4A9E-4F9F-920E-D76D11E72874")]
   public class InversionMoveHardTabuCriterion : SingleSuccessorOperator, IPermutationInversionMoveOperator, ITabuChecker {
     public override bool CanChangeName {
@@ -67,5 +67,5 @@
 
     [StorableConstructor]
-    protected InversionMoveHardTabuCriterion(bool deserializing) : base(deserializing) { }
+    protected InversionMoveHardTabuCriterion(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveHardTabuCriterion(InversionMoveHardTabuCriterion original, Cloner cloner) : base(original, cloner) { }
     public InversionMoveHardTabuCriterion()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveMaker.cs	(revision 16462)
@@ -26,9 +26,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("InversionMoveMaker", "Peforms an inversion move (2-opt) on a given permutation and updates the quality.")]
-  [StorableClass]
+  [StorableType("9A0BCC19-9153-457B-A7E4-A16A51615739")]
   public class InversionMoveMaker : SingleSuccessorOperator, IPermutationInversionMoveOperator, IMoveMaker, ISingleObjectiveOperator {
     public override bool CanChangeName {
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected InversionMoveMaker(bool deserializing) : base(deserializing) { }
+    protected InversionMoveMaker(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveMaker(InversionMoveMaker original, Cloner cloner) : base(original, cloner) { }
     public InversionMoveMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveRelativeAttribute.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveRelativeAttribute.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveRelativeAttribute.cs	(revision 16462)
@@ -22,9 +22,9 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("InversionMoveRelativeAttribute", "Specifies the tabu attributes for an inversion move (2-opt) on a relative position permutation.")]
-  [StorableClass]
+  [StorableType("92CFBF00-0D01-4EBA-9CED-EA1483C842F7")]
   public class InversionMoveRelativeAttribute : PermutationMoveAttribute {
     [Storable]
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected InversionMoveRelativeAttribute(bool deserializing) : base(deserializing) { }
+    protected InversionMoveRelativeAttribute(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveRelativeAttribute(InversionMoveRelativeAttribute original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveSoftTabuCriterion.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveSoftTabuCriterion.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveSoftTabuCriterion.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -34,5 +34,5 @@
 
 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")]
-  [StorableClass]
+  [StorableType("5A5C8DDD-C22A-44CA-9261-BAFA79BB50BB")]
   public class InversionMoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationInversionMoveOperator, ITabuChecker {
     public override bool CanChangeName {
@@ -67,5 +67,5 @@
 
     [StorableConstructor]
-    protected InversionMoveSoftTabuCriterion(bool deserializing) : base(deserializing) { }
+    protected InversionMoveSoftTabuCriterion(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveSoftTabuCriterion(InversionMoveSoftTabuCriterion original, Cloner cloner) : base(original, cloner) { }
     public InversionMoveSoftTabuCriterion()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveTabuMaker.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveTabuMaker.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveTabuMaker.cs	(revision 16462)
@@ -24,9 +24,9 @@
 using HeuristicLab.Optimization.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("InversionMoveTabuMaker", "Declares a given inversion move (2-opt) as tabu, by adding its attributes to the tabu list and also store the solution quality or the move quality (whichever is better).")]
-  [StorableClass]
+  [StorableType("81928009-A474-418B-8FD6-834FE79B43C9")]
   public class InversionMoveTabuMaker : TabuMaker, IPermutationInversionMoveOperator {
     public ILookupParameter<Permutation> PermutationParameter {
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected InversionMoveTabuMaker(bool deserializing) : base(deserializing) { }
+    protected InversionMoveTabuMaker(StorableConstructorFlag _) : base(_) { }
     protected InversionMoveTabuMaker(InversionMoveTabuMaker original, Cloner cloner) : base(original, cloner) { }
     public InversionMoveTabuMaker()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionMultiMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionMultiMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionMultiMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticInversionMultiMoveGenerator", "Randomly samples n from all possible inversion moves (2-opt) from a given permutation.")]
-  [StorableClass]
+  [StorableType("7CFC07A2-6610-4716-96BE-ABC84A6DA4C6")]
   public class StochasticInversionMultiMoveGenerator : InversionMoveGenerator, IMultiMoveGenerator, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    protected StochasticInversionMultiMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticInversionMultiMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticInversionMultiMoveGenerator(StochasticInversionMultiMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticInversionMultiMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionSingleMoveGenerator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionSingleMoveGenerator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/StochasticInversionSingleMoveGenerator.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("StochasticInversionSingleMoveGenerator", "Randomly samples a single from all possible inversion moves (2-opt) from a given permutation.")]
-  [StorableClass]
+  [StorableType("F7190264-4BE1-45A2-A908-E2C7869B4F1F")]
   public class StochasticInversionSingleMoveGenerator : InversionMoveGenerator, IStochasticOperator, ISingleMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected StochasticInversionSingleMoveGenerator(bool deserializing) : base(deserializing) { }
+    protected StochasticInversionSingleMoveGenerator(StorableConstructorFlag _) : base(_) { }
     protected StochasticInversionSingleMoveGenerator(StochasticInversionSingleMoveGenerator original, Cloner cloner) : base(original, cloner) { }
     public StochasticInversionSingleMoveGenerator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Permutation.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Permutation.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/Permutation.cs	(revision 16462)
@@ -24,9 +24,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Permutation", "Represents a permutation of integer values.")]
-  [StorableClass]
+  [StorableType("FBBCFA53-C1AE-4069-907B-99C720F5AC51")]
   public class Permutation : IntArray {
     [Storable]
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    protected Permutation(bool deserializing) : base(deserializing) { }
+    protected Permutation(StorableConstructorFlag _) : base(_) { }
     protected Permutation(Permutation original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("PermutationCrossover", "A base class for permutation crossover operators.")]
-  [StorableClass]
+  [StorableType("99A5AE01-4208-4002-8FCB-DC2231DE0F53")]
   public abstract class PermutationCrossover : InstrumentedOperator, IPermutationCrossover, IStochasticOperator {
     public override bool CanChangeName {
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected PermutationCrossover(bool deserializing) : base(deserializing) { }
+    protected PermutationCrossover(StorableConstructorFlag _) : base(_) { }
     protected PermutationCrossover(PermutationCrossover original, Cloner cloner) : base(original, cloner) { }
     protected PermutationCrossover()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationEncoding.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationEncoding.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationEncoding.cs	(revision 16462)
@@ -28,10 +28,10 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("PermutationEncoding", "Describes a permutation encoding.")]
-  [StorableClass]
+  [StorableType("E30E7507-44BA-4021-8F56-C3FC5569A6FE")]
   public sealed class PermutationEncoding : Encoding<IPermutationCreator> {
     #region encoding parameters
@@ -80,5 +80,5 @@
 
     [StorableConstructor]
-    private PermutationEncoding(bool deserializing) : base(deserializing) { }
+    private PermutationEncoding(StorableConstructorFlag _) : base(_) { }
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationManipulator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationManipulator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationManipulator.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("PermutationManipulator", "A base class for permutation manipulation operators.")]
-  [StorableClass]
+  [StorableType("436622C7-1F84-4A07-B77A-019DA2A2DFC9")]
   public abstract class PermutationManipulator : InstrumentedOperator, IPermutationManipulator, IStochasticOperator {
     public override bool CanChangeName {
@@ -46,5 +46,5 @@
 
     [StorableConstructor]
-    protected PermutationManipulator(bool deserializing) : base(deserializing) { }
+    protected PermutationManipulator(StorableConstructorFlag _) : base(_) { }
     protected PermutationManipulator(PermutationManipulator original, Cloner cloner) : base(original, cloner) { }
     protected PermutationManipulator()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationType.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationType.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationType.cs	(revision 16462)
@@ -24,9 +24,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("PermutationType", "Represents a certain type of permutation.")]
-  [StorableClass]
+  [StorableType("B37C1815-5F82-4E46-BAE3-D71F801EFF46")]
   public class PermutationType : ValueTypeValue<PermutationTypes> {
     public static new Image StaticItemImage {
@@ -35,5 +35,5 @@
 
     [StorableConstructor]
-    protected PermutationType(bool deserializing) : base(deserializing) { }
+    protected PermutationType(StorableConstructorFlag _) : base(_) { }
     protected PermutationType(PermutationType original, Cloner cloner) : base(original, cloner) { }
     public PermutationType() : base() { }
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/ShakingOperators/PermutationShakingOperator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/ShakingOperators/PermutationShakingOperator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/ShakingOperators/PermutationShakingOperator.cs	(revision 16462)
@@ -28,5 +28,5 @@
 using HeuristicLab.Optimization.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 using HeuristicLab.PluginInfrastructure;
 
@@ -36,5 +36,5 @@
   /// </summary>
   [Item("PermutationShakingOperator", "A shaking operator for VNS which uses available manipulation operators to perform the shaking.")]
-  [StorableClass]
+  [StorableType("632B3164-EEE1-4DAC-BB91-651A1CE2EED1")]
   public class PermutationShakingOperator : ShakingOperator<IPermutationManipulator>, IPermutationMultiNeighborhoodShakingOperator, IStochasticOperator {
 
@@ -48,5 +48,5 @@
 
     [StorableConstructor]
-    protected PermutationShakingOperator(bool deserializing) : base(deserializing) { }
+    protected PermutationShakingOperator(StorableConstructorFlag _) : base(_) { }
     protected PermutationShakingOperator(PermutationShakingOperator original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/SimilarityCalculators/HammingSimilarityCalculator.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/SimilarityCalculators/HammingSimilarityCalculator.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Encodings.PermutationEncoding/3.3/SimilarityCalculators/HammingSimilarityCalculator.cs	(revision 16462)
@@ -24,14 +24,14 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Encodings.PermutationEncoding {
   [Item("Hamming Similarity Calculator for Permutation", "An operator that performs similarity calculation between two permutation-encoded solutions.")]
-  [StorableClass]
+  [StorableType("CD7CC097-C46E-42A5-82BF-E47CEB945B9B")]
   public sealed class HammingSimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator {
     protected override bool IsCommutative { get { return true; } }
 
     [StorableConstructor]
-    private HammingSimilarityCalculator(bool deserializing) : base(deserializing) { }
+    private HammingSimilarityCalculator(StorableConstructorFlag _) : base(_) { }
     private HammingSimilarityCalculator(HammingSimilarityCalculator original, Cloner cloner) : base(original, cloner) { }
     public HammingSimilarityCalculator() : base() { }
