Index: stable/HeuristicLab.Optimization.Operators/3.3/ChildrenCopyCreator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ChildrenCopyCreator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ChildrenCopyCreator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,5 +25,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -35,5 +35,5 @@
   /// </remarks>
   [Item("ChildrenCopyCreator", "Creates a copy of every sub-scope in the current scope and adds it as a child to the sub-scope.")]
-  [StorableClass]
+  [StorableType("10AEEFF9-A713-41B5-8551-DD2331E069F2")]
   public sealed class ChildrenCopyCreator : SingleSuccessorOperator {
     private ScopeParameter CurrentScopeParameter {
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    private ChildrenCopyCreator(bool deserializing) : base(deserializing) { }
+    private ChildrenCopyCreator(StorableConstructorFlag _) : base(_) { }
     private ChildrenCopyCreator(ChildrenCopyCreator original, Cloner cloner) : base(original, cloner) { }
     public ChildrenCopyCreator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/ChildrenCreator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ChildrenCreator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ChildrenCreator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -38,5 +38,5 @@
   /// </remarks>
   [Item("ChildrenCreator", "An operator which is used to prepare crossover. The sub-scopes of the current scope the operator is applied on represent the parents. The operator creates new and empty scopes for each child, adds the scopes that represent the child's parents as sub-scopes to the child and adds the child as sub-scope to the current scope.")]
-  [StorableClass]
+  [StorableType("C9D3181F-B3ED-4953-B0B4-1A307069F11D")]
   public sealed class ChildrenCreator : SingleSuccessorOperator {
     private ScopeParameter CurrentScopeParameter {
@@ -55,5 +55,5 @@
 
     [StorableConstructor]
-    private ChildrenCreator(bool deserializing) : base(deserializing) { }
+    private ChildrenCreator(StorableConstructorFlag _) : base(_) { }
     private ChildrenCreator(ChildrenCreator original, Cloner cloner) : base(original, cloner) { }
     public ChildrenCreator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/DiscreteDoubleValueModifier.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/DiscreteDoubleValueModifier.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/DiscreteDoubleValueModifier.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,5 +25,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("DiscreteDoubleValueModifier", "Base class for modifying a double value according to a certain function in discrete intervalls.")]
-  [StorableClass]
+  [StorableType("C1FCC849-93B7-49FA-A5B4-D1F24031A795")]
   public abstract class DiscreteDoubleValueModifier : SingleSuccessorOperator, IDiscreteDoubleValueModifier {
     #region parameter properties
@@ -73,5 +73,5 @@
     #endregion
     [StorableConstructor]
-    protected DiscreteDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected DiscreteDoubleValueModifier(StorableConstructorFlag _) : base(_) { }
     protected DiscreteDoubleValueModifier(DiscreteDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
     /// <summary>
Index: stable/HeuristicLab.Optimization.Operators/3.3/ExponentialDiscreteDoubleValueModifier.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ExponentialDiscreteDoubleValueModifier.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ExponentialDiscreteDoubleValueModifier.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -32,8 +32,8 @@
 @"Modifies the value by exponential fall (steep fall initially, slow fall to the end) or rise (slow rise initially, fast rise to the end).
 This uses a standard exponential distribution and yields a base which is implicitly derived by start and end indices and values.")]
-  [StorableClass]
+  [StorableType("9DEDC020-F9A5-4067-AC23-7A29B656E818")]
   public class ExponentialDiscreteDoubleValueModifier : DiscreteDoubleValueModifier {
     [StorableConstructor]
-    protected ExponentialDiscreteDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected ExponentialDiscreteDoubleValueModifier(StorableConstructorFlag _) : base(_) { }
     protected ExponentialDiscreteDoubleValueModifier(ExponentialDiscreteDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
     public ExponentialDiscreteDoubleValueModifier() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/ExpressionCalculator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ExpressionCalculator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ExpressionCalculator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("ExpressionCalculator", "An operator that evaluates an expression.")]
-  [StorableClass]
+  [StorableType("04FAB284-D11A-4EFF-86C2-B13C1D3D22CE")]
   public class ExpressionCalculator : ValuesCollector {
     [Storable]
@@ -57,5 +57,5 @@
 
     [StorableConstructor]
-    protected ExpressionCalculator(bool deserializing) : base(deserializing) { }
+    protected ExpressionCalculator(StorableConstructorFlag _) : base(_) { }
     protected ExpressionCalculator(ExpressionCalculator original, Cloner cloner)
       : base(original, cloner) {
Index: stable/HeuristicLab.Optimization.Operators/3.3/GeneralizedExponentialDiscreteDoubleValueModifier.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/GeneralizedExponentialDiscreteDoubleValueModifier.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/GeneralizedExponentialDiscreteDoubleValueModifier.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,5 +25,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -40,5 +40,5 @@
 Negative slopes are automatically generated if the start value is greater than the end value.
 If you use `base`=1 you will get a linear interpolation.")]
-  [StorableClass]
+  [StorableType("349D17F2-44D8-46EB-813F-E6D6E73B007F")]
   public class GeneralizedExponentialDiscreteDoubleValueModifier : DiscreteDoubleValueModifier {
 
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected GeneralizedExponentialDiscreteDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected GeneralizedExponentialDiscreteDoubleValueModifier(StorableConstructorFlag _) : base(_) { }
     protected GeneralizedExponentialDiscreteDoubleValueModifier(GeneralizedExponentialDiscreteDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
     public GeneralizedExponentialDiscreteDoubleValueModifier() {
Index: stable/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj	(revision 17097)
@@ -18,5 +18,5 @@
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <TargetFrameworkProfile>
     </TargetFrameworkProfile>
@@ -106,4 +106,10 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Google.Protobuf, Version=3.6.1.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\Google.Protobuf.3.6.1\lib\net45\Google.Protobuf.dll</HintPath>
+    </Reference>
+    <Reference Include="HEAL.Attic, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\HEAL.Attic.1.0.0-pre02\lib\net461\HEAL.Attic.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core">
@@ -112,4 +118,7 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Drawing.Common, Version=4.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\..\packages\System.Drawing.Common.4.5.1\lib\net461\System.Drawing.Common.dll</HintPath>
+    </Reference>
     <Reference Include="System.Xml" />
   </ItemGroup>
@@ -154,4 +163,5 @@
   <ItemGroup>
     <None Include="HeuristicLab.snk" />
+    <None Include="packages.config" />
     <None Include="Plugin.cs.frame" />
     <None Include="Properties\AssemblyInfo.cs.frame" />
Index: stable/HeuristicLab.Optimization.Operators/3.3/LinearDiscreteDoubleValueModifier.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/LinearDiscreteDoubleValueModifier.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/LinearDiscreteDoubleValueModifier.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -29,8 +29,8 @@
   /// </summary>
   [Item("LinearDiscreteDoubleValueModifier", "Modifies the value by linear (constant) fall or rise.")]
-  [StorableClass]
+  [StorableType("B0EFCF88-9463-43BA-A0E6-0E0ACB0E4793")]
   public class LinearDiscreteDoubleValueModifier : DiscreteDoubleValueModifier {
     [StorableConstructor]
-    protected LinearDiscreteDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected LinearDiscreteDoubleValueModifier(StorableConstructorFlag _) : base(_) { }
     protected LinearDiscreteDoubleValueModifier(LinearDiscreteDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
     public LinearDiscreteDoubleValueModifier() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdedComparisonSorter.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdedComparisonSorter.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdedComparisonSorter.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -28,5 +28,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -37,5 +37,5 @@
   [Item("CrowdedComparisonSorter", @"CrowdedComparisonSorter as described in: Deb, Pratap, Agrawal and Meyarivan, ""A Fast and Elitist Multiobjective
 Genetic Algorithm: NSGA-II"", IEEE Transactions On Evolutionary Computation, Vol. 6, No. 2, April 2002.")]
-  [StorableClass]
+  [StorableType("48F09742-454D-4BAB-A057-96BDF4ACDCE9")]
   public class CrowdedComparisonSorter : SingleSuccessorOperator {
 
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected CrowdedComparisonSorter(bool deserializing) : base(deserializing) { }
+    protected CrowdedComparisonSorter(StorableConstructorFlag _) : base(_) { }
     protected CrowdedComparisonSorter(CrowdedComparisonSorter original, Cloner cloner) : base(original, cloner) { }
     public CrowdedComparisonSorter() {
@@ -69,4 +69,5 @@
     }
 
+    [StorableType("c16dd393-bd08-4a81-abb5-1b7e918a1038")]
     private class CustomComparer : IComparer<int> {
       ItemArray<IntValue> ranks;
Index: stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdingDistanceAssignment.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdingDistanceAssignment.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdingDistanceAssignment.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -28,9 +28,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("CrowdingDistanceAssignment", "Calculates the crowding distances for each sub-scope as described 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("F7DF8B74-F1E6-45D6-A1A8-5D381F20B382")]
   public class CrowdingDistanceAssignment : SingleSuccessorOperator, IMultiObjectiveOperator {
 
@@ -48,5 +48,5 @@
 
     [StorableConstructor]
-    protected CrowdingDistanceAssignment(bool deserializing) : base(deserializing) { }
+    protected CrowdingDistanceAssignment(StorableConstructorFlag _) : base(_) { }
     protected CrowdingDistanceAssignment(CrowdingDistanceAssignment original, Cloner cloner) : base(original, cloner) { }
     public CrowdingDistanceAssignment() {
@@ -103,4 +103,5 @@
     }
 
+    [StorableType("30fd1927-b268-4ce7-8960-b04bfa83f1e6")]
     private class QualitiesComparer : IComparer<DoubleArray> {
       private int index;
Index: stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/FastNonDominatedSort.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/FastNonDominatedSort.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/FastNonDominatedSort.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -21,5 +21,4 @@
 
 using System;
-using System.Collections.Generic;
 using System.Linq;
 using HeuristicLab.Common;
@@ -28,5 +27,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -37,5 +36,5 @@
   [Item("FastNonDominatedSort", @"FastNonDominatedSort as described in: Deb, Pratap, Agrawal and Meyarivan, ""A Fast and Elitist Multiobjective
 Genetic Algorithm: NSGA-II"", IEEE Transactions On Evolutionary Computation, Vol. 6, No. 2, April 2002")]
-  [StorableClass]
+  [StorableType("0D1919E6-FCDE-4216-831A-E6427C3D986E")]
   public class FastNonDominatedSort : SingleSuccessorOperator, IMultiObjectiveOperator {
 
@@ -56,5 +55,5 @@
 
     [StorableConstructor]
-    protected FastNonDominatedSort(bool deserializing) : base(deserializing) { }
+    protected FastNonDominatedSort(StorableConstructorFlag _) : base(_) { }
     protected FastNonDominatedSort(FastNonDominatedSort original, Cloner cloner) : base(original, cloner) { }
     public FastNonDominatedSort() {
Index: stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/RankAndCrowdingSorter.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/RankAndCrowdingSorter.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/MultiObjective/RankAndCrowdingSorter.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,9 +25,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 using HeuristicLab.Selection;
 
 namespace HeuristicLab.Optimization.Operators {
-  [StorableClass]
+  [StorableType("CC2A5B04-361C-451B-87A4-524895748E79")]
   public class RankAndCrowdingSorter : AlgorithmOperator, IMultiObjectiveOperator {
     #region Parameter properties
@@ -50,5 +50,5 @@
 
     [StorableConstructor]
-    protected RankAndCrowdingSorter(bool deserializing) : base(deserializing) { }
+    protected RankAndCrowdingSorter(StorableConstructorFlag _) : base(_) { }
     protected RankAndCrowdingSorter(RankAndCrowdingSorter original, Cloner cloner) : base(original, cloner) { }
     public RankAndCrowdingSorter()
Index: stable/HeuristicLab.Optimization.Operators/3.3/NoSimilarityCalculator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/NoSimilarityCalculator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/NoSimilarityCalculator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,4 +20,5 @@
 #endregion
 
+using HEAL.Attic;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -31,8 +32,10 @@
   /// </remarks>
   [Item("NoSimilarityCalculator", "An item that performs similarity calculation between two solutions. The item always considers two solutions to be distinct.")]
+  [StorableType("dd0dc63b-f691-4132-963e-eab3e1bc366a")]
   public sealed class NoSimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator {
     protected override bool IsCommutative { get { return true; } }
 
-    private NoSimilarityCalculator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    private NoSimilarityCalculator(StorableConstructorFlag _) : base(_) { }
     private NoSimilarityCalculator(NoSimilarityCalculator original, Cloner cloner) : base(original, cloner) { }
     public NoSimilarityCalculator() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/ParentCopyCrossover.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ParentCopyCrossover.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ParentCopyCrossover.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -24,9 +24,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("ParentCopyCrossover", "This operator creates an offspring by creating a clone of a randomly chosen parent. It can be used in situations where no crossover should occur after selection.")]
-  [StorableClass]
+  [StorableType("B97DCEBA-B631-4D12-997A-665C33B86C70")]
   public class ParentCopyCrossover : InstrumentedOperator, ICrossover, IStochasticOperator {
     public ILookupParameter<IRandom> RandomParameter {
@@ -36,5 +36,5 @@
 
     [StorableConstructor]
-    protected ParentCopyCrossover(bool deserializing) : base(deserializing) { }
+    protected ParentCopyCrossover(StorableConstructorFlag _) : base(_) { }
     protected ParentCopyCrossover(ParentCopyCrossover original, Cloner cloner) : base(original, cloner) { }
     public ParentCopyCrossover()
Index: stable/HeuristicLab.Optimization.Operators/3.3/Plugin.cs.frame
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/Plugin.cs.frame	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/Plugin.cs.frame	(revision 17097)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: stable/HeuristicLab.Optimization.Operators/3.3/ProbabilisticQualityComparator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ProbabilisticQualityComparator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ProbabilisticQualityComparator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,5 +25,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -37,5 +37,5 @@
   /// </remarks>
   [Item("ProbabilisticQualityComparator", "Compares two qualities and creates a boolean flag that indicates if the left side is better than the right side or if the difference in quality is acceptable given a certain probability.")]
-  [StorableClass]
+  [StorableType("E8467C96-D88F-4EFA-B3BF-78DBFA63B36A")]
   public class ProbabilisticQualityComparator : QualityComparator, IStochasticOperator {
     public ILookupParameter<DoubleValue> DampeningParameter {
@@ -47,5 +47,5 @@
 
     [StorableConstructor]
-    protected ProbabilisticQualityComparator(bool deserializing) : base(deserializing) { }
+    protected ProbabilisticQualityComparator(StorableConstructorFlag _) : base(_) { }
     protected ProbabilisticQualityComparator(ProbabilisticQualityComparator original, Cloner cloner) : base(original, cloner) { }
     public ProbabilisticQualityComparator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/ProgrammableAnalyzer.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ProgrammableAnalyzer.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ProgrammableAnalyzer.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,10 +25,10 @@
 using HeuristicLab.Operators.Programmable;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
 
   [Item("ProgrammableAnalyzer", "An analyzer that can be programmed for arbitrary needs.")]
-  [StorableClass]
+  [StorableType("6C821E9E-098E-409B-B281-9B530C1F5835")]
   public class ProgrammableAnalyzer : ProgrammableSingleSuccessorOperator, IAnalyzer {
     public virtual bool EnabledByDefault {
@@ -37,5 +37,5 @@
 
     [StorableConstructor]
-    protected ProgrammableAnalyzer(bool deserializing) : base(deserializing) { }
+    protected ProgrammableAnalyzer(StorableConstructorFlag _) : base(_) { }
     protected ProgrammableAnalyzer(ProgrammableAnalyzer original, Cloner cloner)
       : base(original, cloner) {
Index: stable/HeuristicLab.Optimization.Operators/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/Properties/AssemblyInfo.cs.frame	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/Properties/AssemblyInfo.cs.frame	(revision 17097)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: stable/HeuristicLab.Optimization.Operators/3.3/QuadraticDiscreteDoubleValueModifier.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/QuadraticDiscreteDoubleValueModifier.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/QuadraticDiscreteDoubleValueModifier.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,5 +22,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -29,8 +29,8 @@
   /// </summary>
   [Item("QuadraticDiscreteDoubleValueModifier", "Modifies the value by quadratic fall (slow fall initially, fast fall to the end) or rise (slow rise initally, fast rise to the end).")]
-  [StorableClass]
+  [StorableType("49CADD22-7074-4ADB-AA7B-36D03115FB1A")]
   public class QuadraticDiscreteDoubleValueModifier : DiscreteDoubleValueModifier {
     [StorableConstructor]
-    protected QuadraticDiscreteDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected QuadraticDiscreteDoubleValueModifier(StorableConstructorFlag _) : base(_) { }
     protected QuadraticDiscreteDoubleValueModifier(QuadraticDiscreteDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
     public QuadraticDiscreteDoubleValueModifier() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/QualityComparator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/QualityComparator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/QualityComparator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,9 +25,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("QualityComparator", "Compares two qualities and creates a boolean flag that indicates if the left side is better than the right side.")]
-  [StorableClass]
+  [StorableType("ACCB56BB-699C-493D-8832-2E3B1D6AEE97")]
   public class QualityComparator : SingleSuccessorOperator, IQualityComparator {
     public ILookupParameter<DoubleValue> LeftSideParameter {
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    protected QualityComparator(bool deserializing) : base(deserializing) { }
+    protected QualityComparator(StorableConstructorFlag _) : base(_) { }
     protected QualityComparator(QualityComparator original, Cloner cloner) : base(original, cloner) { }
     public QualityComparator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/QualitySimilarityCalculator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/QualitySimilarityCalculator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/QualitySimilarityCalculator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -21,4 +21,5 @@
 
 using System;
+using HEAL.Attic;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -33,8 +34,10 @@
   /// </remarks>
   [Item("QualitySimilarityCalculator", "An item that performs similarity calculation between two solutions. The item only considers the qualities of the two solutions.")]
+  [StorableType("b5ef2b97-4a4a-43cd-aeae-7f951b49cdc1")]
   public sealed class QualitySimilarityCalculator : SingleObjectiveSolutionSimilarityCalculator {
     protected override bool IsCommutative { get { return true; } }
 
-    private QualitySimilarityCalculator(bool deserializing) : base(deserializing) { }
+    [StorableConstructor]
+    private QualitySimilarityCalculator(StorableConstructorFlag _) : base(_) { }
     private QualitySimilarityCalculator(QualitySimilarityCalculator original, Cloner cloner) : base(original, cloner) { }
     public QualitySimilarityCalculator() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/ResultsCollector.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ResultsCollector.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ResultsCollector.cs	(revision 17097)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("ResultsCollector", "An operator which collects the actual values of parameters and adds them to a collection of results.")]
-  [StorableClass]
+  [StorableType("AAC0CE73-E492-48FB-9645-7AC282ECD860")]
   public class ResultsCollector : ValuesCollector {
     public ValueLookupParameter<ResultCollection> ResultsParameter {
@@ -48,5 +48,5 @@
 
     [StorableConstructor]
-    protected ResultsCollector(bool deserializing) : base(deserializing) { }
+    protected ResultsCollector(StorableConstructorFlag _) : base(_) { }
     protected ResultsCollector(ResultsCollector original, Cloner cloner) : base(original, cloner) { }
     public ResultsCollector()
Index: stable/HeuristicLab.Optimization.Operators/3.3/SASEGASAReunificator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/SASEGASAReunificator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/SASEGASAReunificator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -27,5 +27,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -35,5 +35,5 @@
   /// </summary>
   [Item("SASEGASAReunificator", "This operator merges the villages (sub-scopes) and redistributes the individuals. It is implemented as described in Affenzeller, M. et al. 2009. Genetic Algorithms and Genetic Programming - Modern Concepts and Practical Applications, CRC Press.")]
-  [StorableClass]
+  [StorableType("09433AE4-A51B-40F5-967D-3A2A83EE8814")]
   public class SASEGASAReunificator : SingleSuccessorOperator {
 
@@ -43,5 +43,5 @@
 
     [StorableConstructor]
-    protected SASEGASAReunificator(bool deserializing) : base(deserializing) { }
+    protected SASEGASAReunificator(StorableConstructorFlag _) : base(_) { }
     protected SASEGASAReunificator(SASEGASAReunificator original, Cloner cloner) : base(original, cloner) { }
     public SASEGASAReunificator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/ShakingOperator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/ShakingOperator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/ShakingOperator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("ShakingOperator", "A shaking operator for VNS that can be filled with arbitrary manipulation operators.")]
-  [StorableClass]
+  [StorableType("38CE1371-38BB-40F7-A4FC-0B8049D3BE2E")]
   public class ShakingOperator<T> : CheckedMultiOperator<T>, IMultiNeighborhoodShakingOperator where T : class, IManipulator {
 
@@ -45,5 +45,5 @@
 
     [StorableConstructor]
-    protected ShakingOperator(bool deserializing) : base(deserializing) { }
+    protected ShakingOperator(StorableConstructorFlag _) : base(_) { }
     protected ShakingOperator(ShakingOperator<T> original, Cloner cloner) : base(original, cloner) { }
     public override IDeepCloneable Clone(Cloner cloner) {
Index: stable/HeuristicLab.Optimization.Operators/3.3/SingleObjectivePathRelinker.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/SingleObjectivePathRelinker.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/SingleObjectivePathRelinker.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,5 +25,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("SingleObjectivePathRelinker", "A base class for operators that perform path relinking between single objective solutions.")]
-  [StorableClass]
+  [StorableType("364CE8A7-0258-4EC1-BBDB-E40C944BD196")]
   public abstract class SingleObjectivePathRelinker : SingleSuccessorOperator, ISingleObjectivePathRelinker {
     #region Parameter properties
@@ -59,5 +59,5 @@
 
     [StorableConstructor]
-    protected SingleObjectivePathRelinker(bool deserializing) : base(deserializing) { }
+    protected SingleObjectivePathRelinker(StorableConstructorFlag _) : base(_) { }
     protected SingleObjectivePathRelinker(SingleObjectivePathRelinker original, Cloner cloner) : base(original, cloner) { }
     protected SingleObjectivePathRelinker()
Index: stable/HeuristicLab.Optimization.Operators/3.3/SingleObjectiveSolutionSimilarityCalculator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/SingleObjectiveSolutionSimilarityCalculator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/SingleObjectiveSolutionSimilarityCalculator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -23,5 +23,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -30,10 +30,10 @@
   /// </summary>
   [Item("SimilarityCalculator", "A base class for items that perform similarity calculation between two solutions.")]
-  [StorableClass]
+  [StorableType("16E69099-B75B-467B-ADAC-8CA64796F389")]
 #pragma warning disable 0618
   public abstract class SingleObjectiveSolutionSimilarityCalculator : SolutionSimilarityCalculator, ISingleObjectiveSolutionSimilarityCalculator {
 #pragma warning restore 0618
     [StorableConstructor]
-    protected SingleObjectiveSolutionSimilarityCalculator(bool deserializing) : base(deserializing) { }
+    protected SingleObjectiveSolutionSimilarityCalculator(StorableConstructorFlag _) : base(_) { }
     protected SingleObjectiveSolutionSimilarityCalculator(SingleObjectiveSolutionSimilarityCalculator original, Cloner cloner)
       : base(original, cloner) {
Index: stable/HeuristicLab.Optimization.Operators/3.3/SolutionSimilarityCalculator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/SolutionSimilarityCalculator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/SolutionSimilarityCalculator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("SimilarityCalculator", "A base class for items that perform similarity calculation between two solutions.")]
-  [StorableClass]
+  [StorableType("ACDF2895-0C4E-4C34-A091-F41EF5C78241")]
   public abstract class SolutionSimilarityCalculator : Item, ISolutionSimilarityCalculator {
     protected abstract bool IsCommutative { get; }
@@ -49,5 +49,5 @@
 
     [StorableConstructor]
-    protected SolutionSimilarityCalculator(bool deserializing) : base(deserializing) { }
+    protected SolutionSimilarityCalculator(StorableConstructorFlag _) : base(_) { }
 
     protected SolutionSimilarityCalculator(SolutionSimilarityCalculator original, Cloner cloner)
Index: stable/HeuristicLab.Optimization.Operators/3.3/SolutionsCreator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/SolutionsCreator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/SolutionsCreator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -25,5 +25,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -32,5 +32,5 @@
   /// </summary>
   [Item("SolutionsCreator", "An operator which creates new solutions. Evaluation of the new solutions is executed in parallel, if an engine is used which supports parallelization.")]
-  [StorableClass]
+  [StorableType("3EE12E32-F8AF-4C7E-A9C9-B5DC5561CFE2")]
   public sealed class SolutionsCreator : SingleSuccessorOperator {
     public ValueLookupParameter<IntValue> NumberOfSolutionsParameter {
@@ -58,5 +58,5 @@
 
     [StorableConstructor]
-    private SolutionsCreator(bool deserializing) : base(deserializing) { }
+    private SolutionsCreator(StorableConstructorFlag _) : base(_) { }
     private SolutionsCreator(SolutionsCreator original, Cloner cloner) : base(original, cloner) { }
     public SolutionsCreator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/SquareRootDiscreteDoubleValueModifier.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/SquareRootDiscreteDoubleValueModifier.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/SquareRootDiscreteDoubleValueModifier.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -23,5 +23,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -30,8 +30,8 @@
   /// </summary>
   [Item("SquareRootDiscreteDoubleValueModifier", "Modifies the value by square rooted fall (fast fall initially, slow fall to the end) or rise (fast rise initially, slow rise to the end).")]
-  [StorableClass]
+  [StorableType("0D62E89E-87D9-4F4F-889E-D64CB4CCBF6E")]
   public class SquareRootDiscreteDoubleValueModifier : DiscreteDoubleValueModifier {
     [StorableConstructor]
-    protected SquareRootDiscreteDoubleValueModifier(bool deserializing) : base(deserializing) { }
+    protected SquareRootDiscreteDoubleValueModifier(StorableConstructorFlag _) : base(_) { }
     protected SquareRootDiscreteDoubleValueModifier(SquareRootDiscreteDoubleValueModifier original, Cloner cloner) : base(original, cloner) { }
     public SquareRootDiscreteDoubleValueModifier() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/TabuMaker.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/TabuMaker.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/TabuMaker.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,9 +26,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("TabuMaker", "Base class for all operators that set a move tabu.")]
-  [StorableClass]
+  [StorableType("1124A697-DDF1-442E-8CBB-FA0D51B4C736")]
   public abstract class TabuMaker : SingleSuccessorOperator, ITabuMaker, ISingleObjectiveOperator {
     public override bool CanChangeName {
@@ -52,5 +52,5 @@
 
     [StorableConstructor]
-    protected TabuMaker(bool deserializing) : base(deserializing) { }
+    protected TabuMaker(StorableConstructorFlag _) : base(_) { }
     protected TabuMaker(TabuMaker original, Cloner cloner) : base(original, cloner) { }
     protected TabuMaker()
Index: stable/HeuristicLab.Optimization.Operators/3.3/UnidirectionalRingMigrator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/UnidirectionalRingMigrator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/UnidirectionalRingMigrator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -26,5 +26,5 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
@@ -33,5 +33,5 @@
   /// </summary>
   [Item("UnidirectionalRingMigrator", "Migrates the selected sub scopes in each subscope in an unidirectional ring.")]
-  [StorableClass]
+  [StorableType("A6642E0A-2FA1-49F3-9BA8-94EA370FE2CF")]
   public class UnidirectionalRingMigrator : SingleSuccessorOperator, IMigrator {
     public IValueLookupParameter<BoolValue> ClockwiseMigrationParameter {
@@ -40,5 +40,5 @@
 
     [StorableConstructor]
-    protected UnidirectionalRingMigrator(bool deserializing) : base(deserializing) { }
+    protected UnidirectionalRingMigrator(StorableConstructorFlag _) : base(_) { }
     protected UnidirectionalRingMigrator(UnidirectionalRingMigrator original, Cloner cloner) : base(original, cloner) { }
 
Index: stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedCrossover.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedCrossover.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedCrossover.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,12 +22,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("UserDefinedCrossover", "A crossover that can be customized with operators which it will execute one after another.")]
-  [StorableClass]
+  [StorableType("93EE357C-60D8-492B-AC69-F5D48370CAE1")]
   public class UserDefinedCrossover : UserDefinedOperator, ICrossover {
     [StorableConstructor]
-    protected UserDefinedCrossover(bool deserializing) : base(deserializing) { }
+    protected UserDefinedCrossover(StorableConstructorFlag _) : base(_) { }
     protected UserDefinedCrossover(UserDefinedCrossover original, Cloner cloner) : base(original, cloner) { }
     public UserDefinedCrossover() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedEvaluator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedEvaluator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedEvaluator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -24,9 +24,9 @@
 using HeuristicLab.Data;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("UserDefinedEvaluator", "An evaluator that can be customized with operators which it will execute one after another.")]
-  [StorableClass]
+  [StorableType("BE378550-EAD2-4D4B-A2FD-3CBC563B2C2B")]
   public class UserDefinedEvaluator : UserDefinedOperator, ISingleObjectiveEvaluator {
     public ILookupParameter<DoubleValue> QualityParameter {
@@ -35,5 +35,5 @@
 
     [StorableConstructor]
-    protected UserDefinedEvaluator(bool deserializing) : base(deserializing) { }
+    protected UserDefinedEvaluator(StorableConstructorFlag _) : base(_) { }
     protected UserDefinedEvaluator(UserDefinedEvaluator original, Cloner cloner) : base(original, cloner) { }
     public UserDefinedEvaluator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedManipulator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedManipulator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedManipulator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,12 +22,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("UserDefinedManipulator", "A manipulator that can be customized with operators which it will execute one after another.")]
-  [StorableClass]
+  [StorableType("B64E8AF0-990A-4E4F-BE1A-1194E0A6CA4E")]
   public class UserDefinedManipulator : UserDefinedOperator, IManipulator {
     [StorableConstructor]
-    protected UserDefinedManipulator(bool deserializing) : base(deserializing) { }
+    protected UserDefinedManipulator(StorableConstructorFlag _) : base(_) { }
     protected UserDefinedManipulator(UserDefinedManipulator original, Cloner cloner) : base(original, cloner) { }
     public UserDefinedManipulator() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedOperator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedOperator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedOperator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -24,12 +24,12 @@
 using HeuristicLab.Core;
 using HeuristicLab.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("UserDefinedOperator", "An operator that can be parameterized with multiple operators which will be executed one after another.")]
-  [StorableClass]
+  [StorableType("2B0E574C-AAD7-4A0B-A4F2-A80F9C428A11")]
   public abstract class UserDefinedOperator : CheckedMultiOperator<IOperator> {
     [StorableConstructor]
-    protected UserDefinedOperator(bool deserializing) : base(deserializing) { }
+    protected UserDefinedOperator(StorableConstructorFlag _) : base(_) { }
     protected UserDefinedOperator(UserDefinedOperator original, Cloner cloner) : base(original, cloner) { }
     public UserDefinedOperator() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedSolutionCreator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedSolutionCreator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/UserDefinedSolutionCreator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -22,12 +22,12 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("UserDefinedSolutionCreator", "A solution creator that can be customized with operators which it will execute one after another.")]
-  [StorableClass]
+  [StorableType("E6B305A2-A5E5-4DAC-933D-1DC1AA50ED7B")]
   public class UserDefinedSolutionCreator : UserDefinedOperator, ISolutionCreator {
     [StorableConstructor]
-    protected UserDefinedSolutionCreator(bool deserializing) : base(deserializing) { }
+    protected UserDefinedSolutionCreator(StorableConstructorFlag _) : base(_) { }
     protected UserDefinedSolutionCreator(UserDefinedSolutionCreator original, Cloner cloner) : base(original, cloner) { }
     public UserDefinedSolutionCreator() : base() { }
Index: stable/HeuristicLab.Optimization.Operators/3.3/WeightedParentsQualityComparator.cs
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/WeightedParentsQualityComparator.cs	(revision 15587)
+++ stable/HeuristicLab.Optimization.Operators/3.3/WeightedParentsQualityComparator.cs	(revision 17097)
@@ -1,5 +1,5 @@
 ﻿#region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -28,9 +28,9 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.Optimization.Operators {
   [Item("WeightedParentsQualityComparator", "Compares the quality against that of its parents (assumes the parents are subscopes to the child scope). This operator works with any number of subscopes > 0.")]
-  [StorableClass]
+  [StorableType("82DA6E16-049F-4BF5-B900-FF11B01FA866")]
   public class WeightedParentsQualityComparator : SingleSuccessorOperator, ISubScopesQualityComparator {
     public IValueLookupParameter<BoolValue> MaximizationParameter {
@@ -51,5 +51,5 @@
 
     [StorableConstructor]
-    protected WeightedParentsQualityComparator(bool deserializing) : base(deserializing) { }
+    protected WeightedParentsQualityComparator(StorableConstructorFlag _) : base(_) { }
     protected WeightedParentsQualityComparator(WeightedParentsQualityComparator original, Cloner cloner) : base(original, cloner) { }
     public WeightedParentsQualityComparator()
Index: stable/HeuristicLab.Optimization.Operators/3.3/packages.config
===================================================================
--- stable/HeuristicLab.Optimization.Operators/3.3/packages.config	(revision 17097)
+++ stable/HeuristicLab.Optimization.Operators/3.3/packages.config	(revision 17097)
@@ -0,0 +1,6 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Google.Protobuf" version="3.6.1" targetFramework="net461" />
+  <package id="HEAL.Attic" version="1.0.0-pre02" targetFramework="net461" />
+  <package id="System.Drawing.Common" version="4.5.1" targetFramework="net461" />
+</packages>
