Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/BestSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/BestSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/BestSelector.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -34,9 +34,9 @@
   /// </summary>
   [Item("BestSelector", "A selection operator which considers a single double quality value and selects the best.")]
-  [StorableClass]
+  [StorableType("D0D03F30-C2A2-488B-81B0-856CA259AA03")]
   public sealed class BestSelector : SingleObjectiveSelector, ISingleObjectiveSelector {
     public BestSelector() : base() { }
     [StorableConstructor]
-    private BestSelector(bool deserializing) : base(deserializing) { }
+    private BestSelector(StorableConstructorFlag _) : base(_) { }
     private BestSelector(BestSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/ConditionalSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/ConditionalSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/ConditionalSelector.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("ConditionalSelector", "Selects sub-scopes where a certain boolean variable is true.")]
-  [StorableClass]
+  [StorableType("ACF05DDC-50DC-41CF-BD5D-CF89AD309A38")]
   public class ConditionalSelector : Selector {
     public ScopeTreeLookupParameter<BoolValue> ConditionParameter {
@@ -44,5 +44,5 @@
 
     [StorableConstructor]
-    protected ConditionalSelector(bool deserializing) : base(deserializing) { }
+    protected ConditionalSelector(StorableConstructorFlag _) : base(_) { }
     protected ConditionalSelector(ConditionalSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/CrowdedTournamentSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/CrowdedTournamentSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/CrowdedTournamentSelector.cs	(revision 16462)
@@ -27,9 +27,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("CrowdedTournamentSelector", "Selects solutions using tournament selection by using the partial order defined in Deb et al. 2002. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6(2), pp. 182-197.")]
-  [StorableClass]
+  [StorableType("343E8160-873B-4F76-BCA0-9F031CB6D1D7")]
   public class CrowdedTournamentSelector : Selector, IMultiObjectiveSelector, IStochasticOperator {
     public ILookupParameter<BoolArray> MaximizationParameter {
@@ -64,5 +64,5 @@
 
     [StorableConstructor]
-    protected CrowdedTournamentSelector(bool deserializing) : base(deserializing) { }
+    protected CrowdedTournamentSelector(StorableConstructorFlag _) : base(_) { }
     protected CrowdedTournamentSelector(CrowdedTournamentSelector original, Cloner cloner) : base(original, cloner) { }
     public CrowdedTournamentSelector()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/EvolutionStrategyOffspringSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/EvolutionStrategyOffspringSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/EvolutionStrategyOffspringSelector.cs	(revision 16462)
@@ -22,5 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.Runtime.InteropServices;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -28,9 +27,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("EvolutionStrategyOffspringSelector", "Selects among the offspring population those that are designated successful and discards the unsuccessful offspring, except for some lucky losers. It expects the parent scopes to be below the first sub-scope, and offspring scopes to be below the second sub-scope separated again in two sub-scopes, the first with the failed offspring and the second with successful offspring.")]
-  [StorableClass]
+  [StorableType("CE585C3C-5139-44F0-9CB2-CC901A290831")]
   public class EvolutionStrategyOffspringSelector : SingleSuccessorOperator {
 
@@ -113,5 +112,5 @@
 
     [StorableConstructor]
-    protected EvolutionStrategyOffspringSelector(bool deserializing) : base(deserializing) { }
+    protected EvolutionStrategyOffspringSelector(StorableConstructorFlag _) : base(_) { }
     protected EvolutionStrategyOffspringSelector(EvolutionStrategyOffspringSelector original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/GenderSpecificSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/GenderSpecificSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/GenderSpecificSelector.cs	(revision 16462)
@@ -27,9 +27,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("GenderSpecificSelection", "Brings two parents together by sampling each with a different selection scheme (Wagner, S. and Affenzeller, M. 2005. SexualGA: Gender-Specific Selection for Genetic Algorithms. Proceedings of the 9th World Multi-Conference on Systemics, Cybernetics and Informatics (WMSCI), pp. 76-81).")]
-  [StorableClass]
+  [StorableType("4707D6F3-A792-456A-87DB-0B1F82D5DBDC")]
   public class GenderSpecificSelector : AlgorithmOperator, ISingleObjectiveSelector, IStochasticOperator {
     #region Parameters
@@ -81,5 +81,5 @@
 
     [StorableConstructor]
-    protected GenderSpecificSelector(bool deserializing) : base(deserializing) { }
+    protected GenderSpecificSelector(StorableConstructorFlag _) : base(_) { }
     protected GenderSpecificSelector(GenderSpecificSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/GeneralizedRankSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/GeneralizedRankSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/GeneralizedRankSelector.cs	(revision 16462)
@@ -28,5 +28,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -35,5 +35,5 @@
   /// </summary>
   [Item("GeneralizedRankSelector", "The generalized rank selection operator selects qualities by rank with a varying focus on better qualities. It is implemented as 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("6423609D-9C11-4CC5-99A1-39257A306DF6")]
   public sealed class GeneralizedRankSelector : StochasticSingleObjectiveSelector, ISelector {
 
@@ -43,5 +43,5 @@
 
     [StorableConstructor]
-    private GeneralizedRankSelector(bool deserializing) : base(deserializing) { }
+    private GeneralizedRankSelector(StorableConstructorFlag _) : base(_) { }
     private GeneralizedRankSelector(GeneralizedRankSelector original, Cloner cloner) : base(original, cloner) { }
     public GeneralizedRankSelector()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/HeuristicLab.Selection-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.Selection/3.3/LeftReducer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LeftReducer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LeftReducer.cs	(revision 16462)
@@ -24,5 +24,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -31,8 +31,8 @@
   /// </summary>
   [Item("LeftReducer", "An operator which reduces to the sub-scopes of the leftmost sub-scope of the current scope.")]
-  [StorableClass]
+  [StorableType("AFD2FF4E-2F84-491D-9ED2-540E94F8B6B3")]
   public sealed class LeftReducer : Reducer, IReducer {
     [StorableConstructor]
-    private LeftReducer(bool deserializing) : base(deserializing) { }
+    private LeftReducer(StorableConstructorFlag _) : base(_) { }
     private LeftReducer(LeftReducer original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LeftSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LeftSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LeftSelector.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("LeftSelector", "An operator which selects sub-scopes from left to right.")]
-  [StorableClass]
+  [StorableType("7D249BF4-0D6A-4AED-9F1A-128F3BEF66B4")]
   public sealed class LeftSelector : Selector {
     private IValueParameter<BoolValue> CopySelectedParameter {
@@ -47,5 +47,5 @@
 
     [StorableConstructor]
-    private LeftSelector(bool deserializing) : base(deserializing) { }
+    private LeftSelector(StorableConstructorFlag _) : base(_) { }
     private LeftSelector(LeftSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LinearRankSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LinearRankSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/LinearRankSelector.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -34,8 +34,8 @@
   /// </summary>
   [Item("LinearRankSelector", "A linear rank selection operator which considers the rank based on a single double quality value for selection.")]
-  [StorableClass]
+  [StorableType("A1DFD3CF-9CA2-452D-BCF4-D2B5316C1765")]
   public sealed class LinearRankSelector : StochasticSingleObjectiveSelector, ISingleObjectiveSelector {
     [StorableConstructor]
-    private LinearRankSelector(bool deserializing) : base(deserializing) { }
+    private LinearRankSelector(StorableConstructorFlag _) : base(_) { }
     private LinearRankSelector(LinearRankSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/MergingReducer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/MergingReducer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/MergingReducer.cs	(revision 16462)
@@ -24,5 +24,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -31,8 +31,8 @@
   /// </summary>
   [Item("MergingReducer", "An operator which reduces to the sub-scopes of all sub-scopes of the current scope.")]
-  [StorableClass]
+  [StorableType("409FC265-3622-43E0-8314-5D23DED4B381")]
   public sealed class MergingReducer : Reducer, IReducer {
     [StorableConstructor]
-    private MergingReducer(bool deserializing) : base(deserializing) { }
+    private MergingReducer(StorableConstructorFlag _) : base(_) { }
     private MergingReducer(MergingReducer original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/NoSameMatesSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/NoSameMatesSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/NoSameMatesSelector.cs	(revision 16462)
@@ -29,5 +29,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -38,5 +38,5 @@
   /// </summary>
   [Item("NoSameMatesSelector", "A selector which tries to select two parents which differ in quality as described in: \"S. Gustafson, E. K. Burke, N. Krasnogor, On improving genetic programming for symbolic regression, The 2005 IEEE Congress on Evolutionary Computation, pp. 912-919, 2005.\"")]
-  [StorableClass]
+  [StorableType("51C70E5F-0CF4-4BE6-9454-AEAF9D13485A")]
   public class NoSameMatesSelector : StochasticSingleObjectiveSelector, ISingleObjectiveSelector {
     private const string SelectorParameterName = "Selector";
@@ -77,5 +77,5 @@
 
     [StorableConstructor]
-    protected NoSameMatesSelector(bool deserializing) : base(deserializing) { }
+    protected NoSameMatesSelector(StorableConstructorFlag _) : base(_) { }
     protected NoSameMatesSelector(NoSameMatesSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/OffspringSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/OffspringSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/OffspringSelector.cs	(revision 16462)
@@ -26,9 +26,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("OffspringSelector", "Selects among the offspring population those that are designated successful and discards the unsuccessful offspring, except for some lucky losers. It expects the parent scopes to be below the first sub-scope, and offspring scopes to be below the second sub-scope separated again in two sub-scopes, the first with the failed offspring and the second with successful offspring.")]
-  [StorableClass]
+  [StorableType("20283BB2-C41B-404B-BDE2-4117D9719C45")]
   public class OffspringSelector : SingleSuccessorOperator {
     public ValueLookupParameter<DoubleValue> MaximumSelectionPressureParameter {
@@ -67,5 +67,5 @@
 
     [StorableConstructor]
-    protected OffspringSelector(bool deserializing) : base(deserializing) { }
+    protected OffspringSelector(StorableConstructorFlag _) : base(_) { }
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/ProportionalSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/ProportionalSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/ProportionalSelector.cs	(revision 16462)
@@ -28,5 +28,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -35,5 +35,5 @@
   /// </summary>
   [Item("ProportionalSelector", "A quality proportional selection operator which considers a single double quality value for selection.")]
-  [StorableClass]
+  [StorableType("82E6E547-4B36-4873-B9B9-E155EE913228")]
   public sealed class ProportionalSelector : StochasticSingleObjectiveSelector, ISingleObjectiveSelector {
     private ValueParameter<BoolValue> WindowingParameter {
@@ -47,5 +47,5 @@
 
     [StorableConstructor]
-    private ProportionalSelector(bool deserializing) : base(deserializing) { }
+    private ProportionalSelector(StorableConstructorFlag _) : base(_) { }
     private ProportionalSelector(ProportionalSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RandomReplacer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RandomReplacer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RandomReplacer.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("RandomReplacer", "Replaces some randomly selected sub-scopes of the remaining scope with all those (or the best if there are more) from the selected scope.")]
-  [StorableClass]
+  [StorableType("526A1887-C636-4702-8041-36EE0C2F1DA0")]
   public sealed class RandomReplacer : Replacer, IStochasticOperator, ISingleObjectiveReplacer {
     public override bool CanChangeName {
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    private RandomReplacer(bool deserializing) : base(deserializing) { }
+    private RandomReplacer(StorableConstructorFlag _) : base(_) { }
     private RandomReplacer(RandomReplacer original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RandomSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RandomSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RandomSelector.cs	(revision 16462)
@@ -26,5 +26,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("RandomSelector", "A random selection operator.")]
-  [StorableClass]
+  [StorableType("4F442F5F-CCE7-4DC3-9C88-5B719A011C88")]
   public sealed class RandomSelector : StochasticSelector, ISelector {
     private IValueParameter<BoolValue> CopySelectedParameter {
@@ -48,5 +48,5 @@
 
     [StorableConstructor]
-    private RandomSelector(bool deserializing) : base(deserializing) { }
+    private RandomSelector(StorableConstructorFlag _) : base(_) { }
     private RandomSelector(RandomSelector original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Reducer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Reducer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Reducer.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("Reducer", "A base class for reduction operators.")]
-  [StorableClass]
+  [StorableType("ADEA7125-A5E1-4A26-AE05-9DE900B9BE5C")]
   public abstract class Reducer : SingleSuccessorOperator {
     protected ScopeParameter CurrentScopeParameter {
@@ -43,5 +43,5 @@
 
     [StorableConstructor]
-    protected Reducer(bool deserializing) : base(deserializing) { }
+    protected Reducer(StorableConstructorFlag _) : base(_) { }
     protected Reducer(Reducer original, Cloner cloner)
       : base(original, cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Replacer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Replacer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Replacer.cs	(revision 16462)
@@ -27,9 +27,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("Replacer", "Generic replacer that replaces sub-scopes of the remaining scope with those from the selected scope.")]
-  [StorableClass]
+  [StorableType("E92517F6-5936-4143-B07A-E76BC7A508F3")]
   public class Replacer : AlgorithmOperator, IReplacer {
     public IValueLookupParameter<ISelector> ReplacedSelectorParameter {
@@ -41,5 +41,5 @@
 
     [StorableConstructor]
-    protected Replacer(bool deserializing) : base(deserializing) { }
+    protected Replacer(StorableConstructorFlag _) : base(_) { }
     protected Replacer(Replacer original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightChildReducer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightChildReducer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightChildReducer.cs	(revision 16462)
@@ -24,5 +24,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -41,8 +41,8 @@
   /// </summary>
   [Item("RightChildReducer", "Merges all sub-scopes generated by successively selecting sub-scopes of the remaining part.")]
-  [StorableClass]
+  [StorableType("D1857728-A661-46BE-AA08-CDF830DD81A8")]
   public class RightChildReducer : Reducer, IReducer {
     [StorableConstructor]
-    protected RightChildReducer(bool deserializing) : base(deserializing) { }
+    protected RightChildReducer(StorableConstructorFlag _) : base(_) { }
     protected RightChildReducer(RightChildReducer original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightReducer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightReducer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightReducer.cs	(revision 16462)
@@ -24,5 +24,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -31,8 +31,8 @@
   /// </summary>
   [Item("RightReducer", "An operator which reduces to the sub-scopes of the rightmost sub-scope of the current scope.")]
-  [StorableClass]
+  [StorableType("D06F6701-B166-4AF1-9EB7-BA6C187DFBB1")]
   public sealed class RightReducer : Reducer, IReducer {
     [StorableConstructor]
-    private RightReducer(bool deserializing) : base(deserializing) { }
+    private RightReducer(StorableConstructorFlag _) : base(_) { }
     private RightReducer(RightReducer original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/RightSelector.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("RightSelector", "An operator which selects sub-scopes from right to left.")]
-  [StorableClass]
+  [StorableType("D34AB8F1-5F8E-4265-9607-D5EE26DA75D0")]
   public sealed class RightSelector : Selector {
     private IValueParameter<BoolValue> CopySelectedParameter {
@@ -46,5 +46,5 @@
     }
     [StorableConstructor]
-    private RightSelector(bool deserializing) : base(deserializing) { }
+    private RightSelector(StorableConstructorFlag _) : base(_) { }
     private RightSelector(RightSelector original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Selector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Selector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/Selector.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("Selector", "A base class for selection operators.")]
-  [StorableClass]
+  [StorableType("88363FF9-09A4-4A31-A099-D3C86E84947D")]
   public abstract class Selector : InstrumentedOperator {
     public override bool CanChangeName {
@@ -46,5 +46,5 @@
 
     [StorableConstructor]
-    protected Selector(bool deserializing) : base(deserializing) { }
+    protected Selector(StorableConstructorFlag _) : base(_) { }
     protected Selector(Selector original, Cloner cloner) : base(original, cloner) { }
 
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/SingleObjectiveSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/SingleObjectiveSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/SingleObjectiveSelector.cs	(revision 16462)
@@ -25,5 +25,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("SingleObjectiveSelector", "A base class for selection operators which consider a single double quality value for selection.")]
-  [StorableClass]
+  [StorableType("50A55690-CD32-4675-B74F-E6B6D860587E")]
   public abstract class SingleObjectiveSelector : Selector, ISingleObjectiveOperator {
     protected IValueParameter<BoolValue> CopySelectedParameter {
@@ -53,5 +53,5 @@
 
     [StorableConstructor]
-    protected SingleObjectiveSelector(bool deserializing) : base(deserializing) { }
+    protected SingleObjectiveSelector(StorableConstructorFlag _) : base(_) { }
     protected SingleObjectiveSelector(SingleObjectiveSelector original, Cloner cloner) : base(original, cloner) { }
 
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/StochasticSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/StochasticSelector.cs	(revision 16462)
@@ -24,5 +24,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("StochasticSelector", "A base class for stochastic selection operators.")]
-  [StorableClass]
+  [StorableType("311180FE-97EE-48FF-A4C0-40982D6B862A")]
   public abstract class StochasticSelector : Selector, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -38,5 +38,5 @@
 
     [StorableConstructor]
-    protected StochasticSelector(bool deserializing) : base(deserializing) { }
+    protected StochasticSelector(StorableConstructorFlag _) : base(_) { }
     protected StochasticSelector(StochasticSelector original, Cloner cloner) : base(original, cloner) { }
     protected StochasticSelector()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/StochasticSingleObjectiveSelector.cs	(revision 16462)
@@ -24,5 +24,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -31,5 +31,5 @@
   /// </summary>
   [Item("StochasticSingleObjectiveSelector", "A base class for stochastic selection operators which consider a single double quality value for selection.")]
-  [StorableClass]
+  [StorableType("566030A6-F1F8-4F45-A768-4D2BD236D39E")]
   public abstract class StochasticSingleObjectiveSelector : SingleObjectiveSelector, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -37,5 +37,5 @@
     }
     [StorableConstructor]
-    protected StochasticSingleObjectiveSelector(bool deserializing) : base(deserializing) { }
+    protected StochasticSingleObjectiveSelector(StorableConstructorFlag _) : base(_) { }
     protected StochasticSingleObjectiveSelector(StochasticSingleObjectiveSelector original, Cloner cloner) : base(original, cloner) { }
     protected StochasticSingleObjectiveSelector()
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/TournamentSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/TournamentSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/TournamentSelector.cs	(revision 16462)
@@ -28,5 +28,5 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -35,5 +35,5 @@
   /// </summary>
   [Item("TournamentSelector", "A tournament selection operator which considers a single double quality value for selection.")]
-  [StorableClass]
+  [StorableType("84B5B6EA-A3A0-4E06-B663-DE451306A1CE")]
   public sealed class TournamentSelector : StochasticSingleObjectiveSelector, ISingleObjectiveSelector {
     public ValueLookupParameter<IntValue> GroupSizeParameter {
@@ -42,5 +42,5 @@
 
     [StorableConstructor]
-    private TournamentSelector(bool deserializing) : base(deserializing) { }
+    private TournamentSelector(StorableConstructorFlag _) : base(_) { }
     private TournamentSelector(TournamentSelector original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/WorstReplacer.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/WorstReplacer.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/WorstReplacer.cs	(revision 16462)
@@ -25,9 +25,9 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
   [Item("WorstReplacer", "Replaces the worst sub-scopes of the remaining scope with all those (or the best if there are more) from the selected scope.")]
-  [StorableClass]
+  [StorableType("9B56E562-0E21-4FED-AB2F-553D49AEC47D")]
   public sealed class WorstReplacer : Replacer, ISingleObjectiveReplacer {
     public override bool CanChangeName {
@@ -46,5 +46,5 @@
 
     [StorableConstructor]
-    private WorstReplacer(bool deserializing) : base(deserializing) { }
+    private WorstReplacer(StorableConstructorFlag _) : base(_) { }
     private WorstReplacer(WorstReplacer original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/WorstSelector.cs
===================================================================
--- branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/WorstSelector.cs	(revision 16454)
+++ branches/2520_PersistenceReintegration/HeuristicLab.Selection/3.3/WorstSelector.cs	(revision 16462)
@@ -27,5 +27,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Fossil;
 
 namespace HeuristicLab.Selection {
@@ -34,8 +34,8 @@
   /// </summary>
   [Item("WorstSelector", "A selection operator which considers a single double quality value and selects the worst.")]
-  [StorableClass]
+  [StorableType("FD37F242-2CB7-4528-9047-4011A61CE24F")]
   public sealed class WorstSelector : SingleObjectiveSelector, ISingleObjectiveSelector {
     [StorableConstructor]
-    private WorstSelector(bool deserializing) : base(deserializing) { }
+    private WorstSelector(StorableConstructorFlag _) : base(_) { }
     private WorstSelector(WorstSelector original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
