Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/BestBioBoostSolutionAnalyzer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/BestBioBoostSolutionAnalyzer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/BestBioBoostSolutionAnalyzer.cs	(revision 16575)
@@ -31,9 +31,10 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Analysis {
 
   [Item("BestBioBoostSolutionAnalyzer", "An operator for analyzing the best bioboost solution.")]
-  [StorableClass]
+  [StorableType("B6E57285-A990-4675-9BD2-C3D61DF46E96")]
   public class BestBioBoostSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer {
 
@@ -89,5 +90,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected BestBioBoostSolutionAnalyzer(bool isDeserializing) : base(isDeserializing) {}
+    protected BestBioBoostSolutionAnalyzer(StorableConstructorFlag _) : base(_) { }
     protected BestBioBoostSolutionAnalyzer(BestBioBoostSolutionAnalyzer orig, Cloner cloner) : base(orig, cloner) {}
     public BestBioBoostSolutionAnalyzer() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/MultiObjejctiveBioBoostSolutionAnalyzer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/MultiObjejctiveBioBoostSolutionAnalyzer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/MultiObjejctiveBioBoostSolutionAnalyzer.cs	(revision 16575)
@@ -33,9 +33,10 @@
 using System.Linq;
 using HeuristicLab.BioBoost.Utils;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Analysis {
 
   [Item("MultiObjectiveBioBoostSolutionAnalyzer", "An operator for analyzing the set of best bioboost solutions (multi objective).")]
-  [StorableClass]
+  [StorableType("FC868394-A817-4835-845C-DD32562AE60C")]
   public class MultiObjectiveBioBoostSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer {
 
@@ -88,5 +89,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MultiObjectiveBioBoostSolutionAnalyzer(bool isDeserializing) : base(isDeserializing) {}
+    protected MultiObjectiveBioBoostSolutionAnalyzer(StorableConstructorFlag _) : base(_) { }
     protected MultiObjectiveBioBoostSolutionAnalyzer(MultiObjectiveBioBoostSolutionAnalyzer orig, Cloner cloner) : base(orig, cloner) {}
     public MultiObjectiveBioBoostSolutionAnalyzer() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/MultiOperatorUsageAnalyzer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/MultiOperatorUsageAnalyzer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Analysis/MultiOperatorUsageAnalyzer.cs	(revision 16575)
@@ -29,9 +29,10 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Analysis {
 
   [Item("MultiOperatorUsageAnalyzer", "An operator for analyzing utilization of different choices of a multi manipulation operatoutilization of different choices of a multi manipulation operator.")]
-  [StorableClass]
+  [StorableType("4F293561-2390-4B6A-A6E0-8B55807D781C")]
   public class MultiOperatorUsageAnalyzer : SingleSuccessorOperator, IAnalyzer {
 
@@ -49,5 +50,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MultiOperatorUsageAnalyzer(bool isDeserializing) : base(isDeserializing) {}
+    protected MultiOperatorUsageAnalyzer(StorableConstructorFlag _) : base(_) { }
     protected MultiOperatorUsageAnalyzer(MultiOperatorUsageAnalyzer orig, Cloner cloner) : base(orig, cloner) {}
     public MultiOperatorUsageAnalyzer() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/BioBoostProblem.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/BioBoostProblem.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/BioBoostProblem.cs	(revision 16575)
@@ -34,4 +34,5 @@
 using System;
 using HeuristicLab.BioBoost.Operators.Moves;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost {
@@ -41,5 +42,5 @@
   [Item("BioBoost Problem", "EU-wide aggregate biomass logistics simulation.")]
   [Creatable("Problems")]
-  [StorableClass]
+  [StorableType("248ABB24-9C03-41FB-816F-C5C47018CB6B")]
   public class BioBoostProblem : SingleObjectiveHeuristicOptimizationProblem<AggregateEvaluator, BioBoostSolutionCreator>, IStorableContent {
 
@@ -82,5 +83,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected BioBoostProblem(bool isDeserializing) : base(isDeserializing) {}
+    protected BioBoostProblem(StorableConstructorFlag _) : base(_) { }
     protected BioBoostProblem(BioBoostProblem orig, Cloner cloner) : base(orig, cloner) {
       RegisterEvents();
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Conversion.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Conversion.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Conversion.cs	(revision 16575)
@@ -28,7 +28,8 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using YamlDotNet.RepresentationModel;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Data {
-  [StorableClass]
+  [StorableType("AFFEC6E6-4373-41FD-B43E-139449409C98")]
   [Item("Conversion", "Describes a conversion process including storage.")]
   public class Conversion : DataItem {
@@ -141,5 +142,5 @@
 
     [StorableConstructor]
-    protected Conversion(bool isDeserializing) : base(isDeserializing) { }
+    protected Conversion(StorableConstructorFlag _) : base(_) { }
 
     [StorableHook(HookType.AfterDeserialization)]
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/CostFactors.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/CostFactors.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/CostFactors.cs	(revision 16575)
@@ -24,8 +24,9 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Data {
 
-  [StorableClass]
+  [StorableType("137AF95F-D154-4EF3-B522-C50BF477A926")]
   [Item("CostFactors", "Splits the cost into several differen areas which can are different for different regions.")]
   public class CostFactors : DataItem {
@@ -49,5 +50,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected CostFactors(bool isDeserializing) : base(isDeserializing) { }
+    protected CostFactors(StorableConstructorFlag _) : base(_) { }
 
     protected CostFactors(CostFactors orig, Cloner cloner) : base(orig, cloner) { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/DataItem.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/DataItem.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/DataItem.cs	(revision 16575)
@@ -33,8 +33,9 @@
 using System.Text.RegularExpressions;
 using YamlDotNet.RepresentationModel;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Data {
 
-  [StorableClass]
+  [StorableType("ADCB9CD6-ECBD-4202-B945-0602E538D771")]
   [Item("DataItem", "Generic Item for holding various pieces of information")]
   public abstract class DataItem : ParameterizedNamedItem {
@@ -42,5 +43,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected DataItem(bool isDeserializing) : base(isDeserializing) {}
+    protected DataItem(StorableConstructorFlag _) : base(_) { }
     protected DataItem(DataItem orig, Cloner cloner) : base(orig, cloner) {}
     protected DataItem() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Logistic.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Logistic.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Logistic.cs	(revision 16575)
@@ -27,7 +27,8 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Data {
-  [StorableClass]
+  [StorableType("5604E9F0-F4C5-4C07-BE46-7895ED33A63E")]
   [Item("Logistic", "Describes a logistic modality for a certain product.")]
   public class Logistic : DataItem {
@@ -73,5 +74,5 @@
 
     [StorableConstructor]
-    protected Logistic(bool isDeserializing) : base(isDeserializing) { }
+    protected Logistic(StorableConstructorFlag _) : base(_) { }
 
     [StorableHook(HookType.AfterDeserialization)]
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/LogisticAction.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/LogisticAction.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/LogisticAction.cs	(revision 16575)
@@ -25,7 +25,8 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Data {
-  [StorableClass]
+  [StorableType("413F5F16-3342-46CF-93AF-38FDD4F40E92")]
   [Item("LogisticAction", "Summarizes cost factors and emissions for a logistic action.")]
   public class LogisticAction : DataItem {
@@ -64,5 +65,5 @@
 
     [StorableConstructor]
-    protected LogisticAction(bool isDeserializing) : base(isDeserializing) { }
+    protected LogisticAction(StorableConstructorFlag _) : base(_) { }
 
     protected LogisticAction(LogisticAction orig, Cloner cloner) : base(orig, cloner) { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Product.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Product.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Data/Product.cs	(revision 16575)
@@ -26,7 +26,8 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Data {
-  [StorableClass]
+  [StorableType("EF528EDA-45D6-4DAB-862A-C05BCD4147CC")]
   [Item("Product", "Summarizes product information.")]
   public class Product : DataItem {
@@ -71,5 +72,5 @@
 
     [StorableConstructor]
-    protected Product(bool isDeserializing) : base(isDeserializing) { }
+    protected Product(StorableConstructorFlag _) : base(_) { }
 
     [StorableHook(HookType.AfterDeserialization)]
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/AggregateEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/AggregateEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/AggregateEvaluator.cs	(revision 16575)
@@ -30,7 +30,8 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Collections.Generic;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("5882C8A6-F31E-4EF7-88A7-45D467038686")]
   public class AggregateEvaluator : AlgorithmOperator, IBioBoostSimulationEvaluator {
 
@@ -80,5 +81,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected AggregateEvaluator(bool isDeserializing) : base(isDeserializing) { }
+    protected AggregateEvaluator(StorableConstructorFlag _) : base(_) { }
     protected AggregateEvaluator(AggregateEvaluator orig, Cloner cloner) : base(orig, cloner) { }
     public AggregateEvaluator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/BioBoostEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/BioBoostEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/BioBoostEvaluator.cs	(revision 16575)
@@ -28,8 +28,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
 
-  [StorableClass]
+  [StorableType("836CF83B-0123-428F-B953-5B9411D6BB97")]
   public abstract class BioBoostEvaluator : BioBoostOperator  {
 
@@ -54,5 +55,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected BioBoostEvaluator(bool isDeserializing) : base(isDeserializing) {}
+    protected BioBoostEvaluator(StorableConstructorFlag _) : base(_) { }
     protected BioBoostEvaluator(BioBoostEvaluator original, Cloner cloner) : base(original, cloner) {}
     protected BioBoostEvaluator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/ConcludingEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/ConcludingEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/ConcludingEvaluator.cs	(revision 16575)
@@ -31,7 +31,8 @@
 using HeuristicLab.BioBoost.Representation;
 using HeuristicLab.BioBoost.Utils;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("C678549A-70FA-4A2F-AEC5-E53D9AC20BFB")]
   public class ConcludingEvaluator : BioBoostEvaluator {
 
@@ -65,5 +66,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected ConcludingEvaluator(bool isDeserializing) : base(isDeserializing) {}
+    protected ConcludingEvaluator(StorableConstructorFlag _) : base(_) { }
     public ConcludingEvaluator() {
       Parameters.Add(new LookupParameter<BoolValue>("RemoveIntermediateResults", "Whether to remove intermediate results created during evaluation."));
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/ConversionCostEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/ConversionCostEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/ConversionCostEvaluator.cs	(revision 16575)
@@ -30,7 +30,8 @@
 using System.Linq;
 using HeuristicLab.BioBoost.Representation;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("3DA35F67-F021-475D-B614-FAEAAD66ACF8")]
   [Item("ConversionCostEvaluator", "Simulates the conversion of all applicable conversion processes.")]
   public class ConversionCostEvaluator : BioBoostEvaluator {
@@ -42,5 +43,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected ConversionCostEvaluator(bool isDeserializing) : base(isDeserializing) {}
+    protected ConversionCostEvaluator(StorableConstructorFlag _) : base(_) { }
     protected ConversionCostEvaluator(ConversionCostEvaluator original, Cloner cloner) : base(original, cloner) { }
     public ConversionCostEvaluator() { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/FeedstockCostEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/FeedstockCostEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/FeedstockCostEvaluator.cs	(revision 16575)
@@ -28,8 +28,9 @@
 using HeuristicLab.BioBoost.Representation;
 using HeuristicLab.BioBoost.Utils;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
 
-  [StorableClass]
+  [StorableType("A2DAA8F7-71AB-48F8-B019-CF14FB34A979")]
   [Item("FeedstockCostEvaluator", @"Calculates all feedstock costs for known products,
 for which both <Product.Label>Potentials and <Product.Label>Utilizations are available.
@@ -40,5 +41,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected FeedstockCostEvaluator(bool isDeserializing) : base(isDeserializing) { }
+    protected FeedstockCostEvaluator(StorableConstructorFlag _) : base(_) { }
     protected FeedstockCostEvaluator(FeedstockCostEvaluator original, Cloner cloner) : base(original, cloner) { }
     public FeedstockCostEvaluator() { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/InitializationEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/InitializationEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/InitializationEvaluator.cs	(revision 16575)
@@ -25,7 +25,8 @@
 using HeuristicLab.Core;
 using HeuristicLab.Common;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("12B3CF5A-6084-4002-99E4-9B730819431C")]
   [Item("InitializationEvaluator", "Cleans up scope.")]
   public class InitializationEvaluator : BioBoostEvaluator {
@@ -33,5 +34,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected InitializationEvaluator(bool isDeserializing) : base(isDeserializing) {}
+    protected InitializationEvaluator(StorableConstructorFlag _) : base(_) { }
     protected InitializationEvaluator(InitializationEvaluator original, Cloner cloner) : base(original, cloner) { }
     public InitializationEvaluator() { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/LogisticCostEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/LogisticCostEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/LogisticCostEvaluator.cs	(revision 16575)
@@ -31,7 +31,8 @@
 using HeuristicLab.BioBoost.Representation;
 using HeuristicLab.BioBoost.Utils;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("C633F527-7C12-478D-AECA-00D3E54ED2D2")]
   public class LogisticCostEvaluator : BioBoostEvaluator {
 
@@ -54,5 +55,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected LogisticCostEvaluator(bool isDeserializing) : base(isDeserializing) {}
+    protected LogisticCostEvaluator(StorableConstructorFlag _) : base(_) { }
 
     protected LogisticCostEvaluator(LogisticCostEvaluator original, Cloner cloner) : base(original, cloner) {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/MonolithicEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/MonolithicEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/MonolithicEvaluator.cs	(revision 16575)
@@ -36,7 +36,8 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.PluginInfrastructure;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("0C6D1BC1-3A29-4AA5-A7EB-724BFCA9FD55")]
   public class MonolithicEvaluator : AggregateEvaluator {
 
@@ -67,5 +68,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MonolithicEvaluator(bool isDeserializing) : base(isDeserializing) { }
+    protected MonolithicEvaluator(StorableConstructorFlag _) : base(_) { }
     protected MonolithicEvaluator(MonolithicEvaluator orig, Cloner cloner) : base(orig, cloner) { }
     public MonolithicEvaluator() {
@@ -259,9 +260,9 @@
   }
 
-  [StorableClass(StorableClassType.AllFieldsAndAllProperties)]
+  [StorableType(StorableMemberSelection.AllFieldsAndAllProperties, "7BA4C277-AB0F-4A5F-A5B6-61E661104DCD")]
   public sealed class SimpleProblemData : Item {
 
     [StorableConstructor]
-    private SimpleProblemData(bool isDeserializing) : base(isDeserializing) { }
+    private SimpleProblemData(StorableConstructorFlag _) : base(_) { }
 
     private SimpleProblemData(SimpleProblemData orig, Cloner cloner) : base(orig, cloner) {
@@ -328,5 +329,5 @@
     }
 
-    [StorableClass(StorableClassType.AllFieldsAndAllProperties)]
+    [StorableType(StorableMemberSelection.AllFieldsAndAllProperties, "3AE651E8-E056-47A5-9ADA-AE8FD3F8063F")]
     public sealed class Echelon : Item {
 
@@ -338,5 +339,5 @@
 
       [StorableConstructor]
-      private Echelon(bool isDeserializing) : base(isDeserializing) { }
+      private Echelon(StorableConstructorFlag _) : base(_) { }
 
       public Echelon() { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/SinkEvaluator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/SinkEvaluator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Evaluators/SinkEvaluator.cs	(revision 16575)
@@ -28,12 +28,13 @@
 using System.Linq;
 using HeuristicLab.BioBoost.Representation;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Evaluators {
-  [StorableClass]
+  [StorableType("EB23EA04-FF16-43C0-902D-9DC974F5A246")]
   public class SinkEvaluator : BioBoostEvaluator {
 
     #region Construction & Cloning
     [StorableConstructor]
-    protected SinkEvaluator(bool isDeserializing) : base(isDeserializing) {}
+    protected SinkEvaluator(StorableConstructorFlag _) : base(_) { }
     protected SinkEvaluator(SinkEvaluator original, Cloner cloner) : base(original, cloner) { }
     public SinkEvaluator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/HeuristicLab.Problems.BioBoost-3.3.csproj
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/HeuristicLab.Problems.BioBoost-3.3.csproj	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/HeuristicLab.Problems.BioBoost-3.3.csproj	(revision 16575)
@@ -1,4 +1,4 @@
 ﻿<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -11,5 +11,5 @@
     <RootNamespace>HeuristicLab.Problems.BioBoost</RootNamespace>
     <AssemblyName>HeuristicLab.Problems.BioBoost-3.3</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <TargetFrameworkProfile />
@@ -122,4 +122,10 @@
       <HintPath>..\..\packages\GeoAPI.1.7.2\lib\net403-client\GeoAPI.dll</HintPath>
     </Reference>
+    <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="HeuristicLab.Analysis-3.3">
       <HintPath>..\..\..\..\trunk\bin\HeuristicLab.Analysis-3.3.dll</HintPath>
@@ -208,4 +214,7 @@
     </Reference>
     <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.Runtime.Serialization" />
     <Reference Include="System.Xml.Linq" />
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/MultiobjectiveBioBoostProblem.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/MultiobjectiveBioBoostProblem.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/MultiobjectiveBioBoostProblem.cs	(revision 16575)
@@ -33,4 +33,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost {
@@ -38,5 +39,5 @@
   [Item("Multiobjective BioBoost Problem", "EU-wide aggregate biomass logistics simulation (multiobjective).")]
   [Creatable("Problems")]
-  [StorableClass]
+  [StorableType("1DEF0202-CD83-4310-80FB-751D06A68B7D")]
   public class MultiobjectiveBioBoostProblem : MultiObjectiveHeuristicOptimizationProblem<AggregateEvaluator, BioBoostSolutionCreator>, IStorableContent {
 
@@ -79,5 +80,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MultiobjectiveBioBoostProblem(bool isDeserializing) : base(isDeserializing) {}
+    protected MultiobjectiveBioBoostProblem(StorableConstructorFlag _) : base(_) { }
     protected MultiobjectiveBioBoostProblem(MultiobjectiveBioBoostProblem orig, Cloner cloner) : base(orig, cloner) {
       RegisterEvents();
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/BioBoostOperator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/BioBoostOperator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/BioBoostOperator.cs	(revision 16575)
@@ -26,17 +26,20 @@
 using HeuristicLab.Operators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators {
+  [StorableType("9413703D-B45E-42AF-B2AE-82E6414E3924")]
   public abstract class BioBoostOperator : SingleSuccessorOperator {
 
     #region Parameters
-    public ILookupParameter<BioBoostProblemData> ProblemDataParameter {
-      get { return (ILookupParameter<BioBoostProblemData>) Parameters["ProblemData"]; }
+    public ILookupParameter<BioBoostProblemData> ProblemDataParameter
+    {
+      get { return (ILookupParameter<BioBoostProblemData>)Parameters["ProblemData"]; }
     }
     #endregion
 
     #region Parameter Values
-    public BioBoostProblemData ProblemData {
+    public BioBoostProblemData ProblemData
+    {
       get { return ProblemDataParameter.ActualValue; }
     }
@@ -45,5 +48,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected BioBoostOperator(bool isDeserializing) : base(isDeserializing) {}
+    protected BioBoostOperator(StorableConstructorFlag _) : base(_) { }
 
     protected BioBoostOperator(BioBoostOperator original, Cloner cloner) : base(original, cloner) { }
@@ -56,5 +59,5 @@
     protected T GetFromProblemData<T>(string label) where T : class, IItem {
       IParameter param;
-      if(LayerDescriptor.PotentialsFromProblemData.IsSuffixOf(label)) {
+      if (LayerDescriptor.PotentialsFromProblemData.IsSuffixOf(label)) {
         ProblemData.FeedstockPotentials.TryGetValue(label, out param);
       } else {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/CompoundCrossover.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/CompoundCrossover.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/CompoundCrossover.cs	(revision 16575)
@@ -37,7 +37,8 @@
 using SinglePointRealVectorCrossover = HeuristicLab.Encodings.RealVectorEncoding.SinglePointCrossover;
 using SinglePointInteverVectorCrossover = HeuristicLab.Encodings.IntegerVectorEncoding.SinglePointCrossover;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Crossover {
-  [StorableClass]
+  [StorableType("DA8F3E29-D4F2-47A9-87DC-051922A528F5")]
   public class CompoundCrossover : SingleSuccessorOperator, ICrossover {
 
@@ -65,5 +66,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected CompoundCrossover(bool isDeserializing) : base(isDeserializing) {}
+    protected CompoundCrossover(StorableConstructorFlag _) : base(_) { }
     protected CompoundCrossover(CompoundCrossover orig, Cloner cloner) : base(orig, cloner) { }
     public CompoundCrossover() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/MultiCrossover.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/MultiCrossover.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/MultiCrossover.cs	(revision 16575)
@@ -28,7 +28,8 @@
 using HeuristicLab.PluginInfrastructure;
 using System;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("EB607FBE-6802-4915-A3D1-48848E329B5C")]
   public class MultiCrossover : StochasticMultiBranch<ICrossover>, ICrossover, IStochasticOperator {
 
@@ -43,5 +44,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MultiCrossover(bool isDeserializing) : base(isDeserializing) {}
+    protected MultiCrossover(StorableConstructorFlag _) : base(_) { }
     protected MultiCrossover(MultiCrossover orig, Cloner cloner) : base(orig, cloner) {}
     public MultiCrossover() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/PlantBasedCrossover.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/PlantBasedCrossover.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Crossover/PlantBasedCrossover.cs	(revision 16575)
@@ -42,7 +42,8 @@
 using DiscreteIntegerVectorCrossover = HeuristicLab.Encodings.IntegerVectorEncoding.DiscreteCrossover;
 using DiscreteRealVectorCrossover = HeuristicLab.Encodings.RealVectorEncoding.DiscreteCrossover;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Crossover {
-  [StorableClass]
+  [StorableType("D9455201-49C6-4042-8021-CCFD5199B731")]
   public class PlantBasedCrossover : SingleSuccessorOperator, ICrossover, IStochasticOperator {
 
@@ -70,5 +71,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected PlantBasedCrossover(bool isDeserializing) : base(isDeserializing) { }
+    protected PlantBasedCrossover(StorableConstructorFlag _) : base(_) { }
     protected PlantBasedCrossover(PlantBasedCrossover orig, Cloner cloner) : base(orig, cloner) { }
 
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/LimitedDistanceTransportTargetCreator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/LimitedDistanceTransportTargetCreator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/LimitedDistanceTransportTargetCreator.cs	(revision 16575)
@@ -30,8 +30,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Random;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators {
 
-  [StorableClass]
+  [StorableType("252FBBAC-C378-4378-B85D-6EB65863F4DF")]
   public class LimitedDistanceTransportTargetCreator : BioBoostOperator, IIntegerVectorCreator {
 
@@ -59,5 +60,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected LimitedDistanceTransportTargetCreator(bool isDeserializing) : base(isDeserializing) { }
+    protected LimitedDistanceTransportTargetCreator(StorableConstructorFlag _) : base(_) { }
 
     protected LimitedDistanceTransportTargetCreator(LimitedDistanceTransportTargetCreator orig, Cloner cloner) : base(orig, cloner) {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveEvaluatorAdapter.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveEvaluatorAdapter.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveEvaluatorAdapter.cs	(revision 16575)
@@ -29,8 +29,9 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Moves {
 
-  [StorableClass]
+  [StorableType("01143196-726F-43C7-8F22-BB42D047E113")]
   public class MoveEvaluatorAdapter : SingleSuccessorOperator, ISingleObjectiveMoveEvaluator {
 
@@ -44,5 +45,5 @@
 
     [StorableConstructor]
-    public MoveEvaluatorAdapter(bool isDeserializing) : base(isDeserializing) {}
+    public MoveEvaluatorAdapter(StorableConstructorFlag _) : base(_) { }
 
     public MoveEvaluatorAdapter(MoveEvaluatorAdapter orig, Cloner cloner) : base(orig, cloner) { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveGeneratorAdapter.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveGeneratorAdapter.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveGeneratorAdapter.cs	(revision 16575)
@@ -30,8 +30,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Moves {
 
-  [StorableClass]
+  [StorableType("01CF5EC3-F344-4A73-9BCD-7CE329392552")]
   public class MoveGeneratorAdapter : SingleSuccessorOperator, IMoveGenerator {
 
@@ -44,5 +45,5 @@
     #region construction & cloning
     [StorableConstructor]
-    public MoveGeneratorAdapter(bool isDeserializing) : base(isDeserializing) { }
+    public MoveGeneratorAdapter(StorableConstructorFlag _) : base(_) { }
 
     public MoveGeneratorAdapter(MoveGeneratorAdapter orig, Cloner cloner) : base(orig, cloner) { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveMakerAdapter.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveMakerAdapter.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Moves/MoveMakerAdapter.cs	(revision 16575)
@@ -30,8 +30,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Moves {
 
-  [StorableClass]
+  [StorableType("DDE891FB-AA05-4C76-A3AC-AEF8C6A5A2E3")]
   public class MoveMakerAdapter : SingleSuccessorOperator, IMoveMaker {
 
@@ -41,5 +42,5 @@
     #region construction & cloning
     [StorableConstructor]
-    public MoveMakerAdapter(bool isDeserializing) : base(isDeserializing) { }
+    public MoveMakerAdapter(StorableConstructorFlag _) : base(_) { }
 
     public MoveMakerAdapter(MoveMakerAdapter orig, Cloner cloner) : base(orig, cloner) { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/BoundaryToggleRealVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/BoundaryToggleRealVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/BoundaryToggleRealVectorMutator.cs	(revision 16575)
@@ -25,12 +25,13 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("CC8C60CC-E58C-4FD6-95CA-F310064221AD")]
   public class BoundaryToggleRealVectorMutator : RealVectorManipulator {
 
     #region Construction & Cloning
     [StorableConstructor]
-    protected BoundaryToggleRealVectorMutator(bool isDeserializing) : base(isDeserializing) { }
+    protected BoundaryToggleRealVectorMutator(StorableConstructorFlag _) : base(_) { }
     protected BoundaryToggleRealVectorMutator(BoundaryToggleRealVectorMutator orig, Cloner cloner) : base(orig, cloner) { }
     public BoundaryToggleRealVectorMutator() { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CommonTargetIntegerVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CommonTargetIntegerVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CommonTargetIntegerVectorMutator.cs	(revision 16575)
@@ -30,7 +30,8 @@
 using System;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("10FB317B-D3BE-47EC-9BED-C7B211927C27")]
   public class CommonTargetIntegerVectorMutator : BoundedIntegerVectorManipulator {
 
@@ -54,5 +55,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected CommonTargetIntegerVectorMutator(bool isDeserializing) : base(isDeserializing) {}
+    protected CommonTargetIntegerVectorMutator(StorableConstructorFlag _) : base(_) { }
     protected CommonTargetIntegerVectorMutator(CommonTargetIntegerVectorMutator orig, Cloner cloner) : base(orig, cloner) {}
     public CommonTargetIntegerVectorMutator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CommonTargetSwappingIntegerVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CommonTargetSwappingIntegerVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CommonTargetSwappingIntegerVectorMutator.cs	(revision 16575)
@@ -30,7 +30,8 @@
 using System;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("1C259A07-A1BA-46F3-9EE8-DF5EC7EF2C51")]
   public class CommonTargetSwappingIntegerVectorMutator : BoundedIntegerVectorManipulator {
 
@@ -54,5 +55,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected CommonTargetSwappingIntegerVectorMutator(bool isDeserializing) : base(isDeserializing) {}
+    protected CommonTargetSwappingIntegerVectorMutator(StorableConstructorFlag _) : base(_) { }
     protected CommonTargetSwappingIntegerVectorMutator(CommonTargetSwappingIntegerVectorMutator orig, Cloner cloner) : base(orig, cloner) {}
     public CommonTargetSwappingIntegerVectorMutator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CompoundMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CompoundMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/CompoundMutator.cs	(revision 16575)
@@ -38,7 +38,8 @@
 using UniformOnePositionManipulator = HeuristicLab.Encodings.IntegerVectorEncoding.UniformOnePositionManipulator;
 using UniformOnePositionRealVectorManipulator = HeuristicLab.Encodings.RealVectorEncoding.UniformOnePositionManipulator;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("7B7699B9-4D4E-4D27-9DB5-F6F1FC5CBF52")]
   public class CompoundMutator : SingleSuccessorOperator, IManipulator, IStochasticOperator {
 
@@ -69,5 +70,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected CompoundMutator(bool isDeserializing) : base(isDeserializing) {}
+    protected CompoundMutator(StorableConstructorFlag _) : base(_) { }
     protected CompoundMutator(CompoundMutator orig, Cloner cloner) : base(orig, cloner) { }
     public CompoundMutator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/DistanceBasedIntegerVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/DistanceBasedIntegerVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/DistanceBasedIntegerVectorMutator.cs	(revision 16575)
@@ -29,7 +29,8 @@
 using System;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("37633B84-8BEF-410F-891B-953AD45342AE")]
   public class DistanceBasedIntegerVectorMutator : IntegerVectorManipulator {
 
@@ -64,5 +65,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected DistanceBasedIntegerVectorMutator(bool isDeserializing) : base(isDeserializing) {}
+    protected DistanceBasedIntegerVectorMutator(StorableConstructorFlag _) : base(_) { }
     protected DistanceBasedIntegerVectorMutator(DistanceBasedIntegerVectorMutator orig, Cloner cloner) : base(orig, cloner) {}
     public DistanceBasedIntegerVectorMutator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/EmptyMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/EmptyMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/EmptyMutator.cs	(revision 16575)
@@ -24,13 +24,14 @@
 using HeuristicLab.Optimization;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
 
-  [StorableClass]
+  [StorableType("B9929153-331D-4457-9B6D-F0F9AD15BEEC")]
   public class EmptyMutator : SingleSuccessorOperator, IManipulator {
 
     #region Construction & Cloning
     [StorableConstructor]
-    protected EmptyMutator(bool isDeserializing) : base(isDeserializing) {}
+    protected EmptyMutator(StorableConstructorFlag _) : base(_) { }
     protected EmptyMutator(EmptyMutator orig, Cloner cloner) : base(orig, cloner) {}
     public EmptyMutator() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/MultiIntegerVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/MultiIntegerVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/MultiIntegerVectorMutator.cs	(revision 16575)
@@ -32,7 +32,8 @@
 using System;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("3655B281-9061-470B-95B5-378D9490E814")]
   public class MultiIntegerVectorManipulator : StochasticMultiBranch<IIntegerVectorManipulator>, IIntegerVectorManipulator, IStochasticOperator {
 
@@ -54,5 +55,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MultiIntegerVectorManipulator(bool isDeserializing) : base(isDeserializing) {}
+    protected MultiIntegerVectorManipulator(StorableConstructorFlag _) : base(_) { }
     protected MultiIntegerVectorManipulator(MultiIntegerVectorManipulator orig, Cloner cloner) : base(orig, cloner) {}
     public MultiIntegerVectorManipulator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/MultiMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/MultiMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/MultiMutator.cs	(revision 16575)
@@ -34,7 +34,8 @@
 using System.Collections.Generic;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("4051852F-E6DA-45A6-A63B-E62FA18D9D3E")]
   public class MultiMutator : StochasticMultiBranch<IManipulator>, IManipulator, IStochasticOperator {
 
@@ -56,5 +57,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected MultiMutator(bool isDeserializing) : base(isDeserializing) { }
+    protected MultiMutator(StorableConstructorFlag _) : base(_) { }
     protected MultiMutator(MultiMutator orig, Cloner cloner) : base(orig, cloner) { }
     public MultiMutator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/NeighborBasedIntegerVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/NeighborBasedIntegerVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/NeighborBasedIntegerVectorMutator.cs	(revision 16575)
@@ -27,7 +27,8 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("CD4B0E31-C2A7-430D-B397-65ADCB75691A")]
   public class NeighborBasedIntegerVectorMutator : BoundedIntegerVectorManipulator {
 
@@ -42,5 +43,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected NeighborBasedIntegerVectorMutator(bool isDeserializing) : base(isDeserializing) {}
+    protected NeighborBasedIntegerVectorMutator(StorableConstructorFlag _) : base(_) { }
     protected NeighborBasedIntegerVectorMutator(NeighborBasedIntegerVectorMutator orig, Cloner cloner) : base(orig, cloner) {}
     public NeighborBasedIntegerVectorMutator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantBasedUtilizationModifier.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantBasedUtilizationModifier.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantBasedUtilizationModifier.cs	(revision 16575)
@@ -34,7 +34,8 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("67144EAD-755F-4727-A7C9-8BB312E13DBA")]
   public abstract class PlantBasedUtilizationModifier : SingleSuccessorOperator, IManipulator, IStochasticOperator {
 
@@ -66,5 +67,5 @@
 
     [StorableConstructor]
-    public PlantBasedUtilizationModifier(bool isDeserializing) {}
+    public PlantBasedUtilizationModifier(StorableConstructorFlag _) { }
     public PlantBasedUtilizationModifier(PlantBasedUtilizationModifier orig, Cloner cloner) : base(orig, cloner) {}
     public PlantBasedUtilizationModifier() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantKiller.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantKiller.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantKiller.cs	(revision 16575)
@@ -24,14 +24,15 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-
+  [StorableType("C6022D30-973A-44A9-ABDF-EE3D7B20B6E3")]
   public class PlantKiller : PlantBasedUtilizationModifier {
 
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantKiller(bool isDeserializing) {}
-    public PlantKiller(PlantKiller orig, Cloner cloner) : base(orig, cloner) {}
-    public PlantKiller() {}
+    public PlantKiller(StorableConstructorFlag _) : base(_) { }
+    public PlantKiller(PlantKiller orig, Cloner cloner) : base(orig, cloner) { }
+    public PlantKiller() { }
     public override IDeepCloneable Clone(Cloner cloner) {
       return new PlantKiller(this, cloner);
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantMerger.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantMerger.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantMerger.cs	(revision 16575)
@@ -33,15 +33,16 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-
+  [StorableType("F3ADEDCA-B790-4892-896D-90AB5E833223")]
   public class PlantMerger : SingleSuccessorOperator, IManipulator, IStochasticOperator {
 
     #region Parameters
-    public LookupParameter<BioBoostProblemData> ProblemDataParameter { get { return (LookupParameter<BioBoostProblemData>) Parameters["ProblemData"]; } }
-    public LookupParameter<DistanceMatrix> DistanceMatrixParameter { get { return (LookupParameter<DistanceMatrix>) Parameters["DistanceMatrix"]; } }
-    public ValueParameter<BoolValue> DistanceMatrixInProblemDataParameter { get { return (ValueParameter<BoolValue>) Parameters["DistanceMatrixInProblemData"]; } }
-    public ValueLookupParameter<IntMatrix> RegionBoundsParameter { get { return (ValueLookupParameter<IntMatrix>) Parameters["RegionBounds"]; } } 
-    public ILookupParameter<IRandom> RandomParameter { get { return (ILookupParameter<IRandom>) Parameters["Random"]; } }
+    public LookupParameter<BioBoostProblemData> ProblemDataParameter { get { return (LookupParameter<BioBoostProblemData>)Parameters["ProblemData"]; } }
+    public LookupParameter<DistanceMatrix> DistanceMatrixParameter { get { return (LookupParameter<DistanceMatrix>)Parameters["DistanceMatrix"]; } }
+    public ValueParameter<BoolValue> DistanceMatrixInProblemDataParameter { get { return (ValueParameter<BoolValue>)Parameters["DistanceMatrixInProblemData"]; } }
+    public ValueLookupParameter<IntMatrix> RegionBoundsParameter { get { return (ValueLookupParameter<IntMatrix>)Parameters["RegionBounds"]; } }
+    public ILookupParameter<IRandom> RandomParameter { get { return (ILookupParameter<IRandom>)Parameters["Random"]; } }
     #endregion
 
@@ -51,8 +52,9 @@
     public IRandom Random { get { return RandomParameter.ActualValue; } }
     public bool DistanceMatrixInProblemData { get { return DistanceMatrixInProblemDataParameter.Value.Value; } }
-    public DistanceMatrix DistanceMatrix {
+    public DistanceMatrix DistanceMatrix
+    {
       get {
         if (DistanceMatrixInProblemData) {
-          return ((IValueParameter<DistanceMatrix>) ProblemData.Parameters[DistanceMatrixParameter.ActualName]).Value;
+          return ((IValueParameter<DistanceMatrix>)ProblemData.Parameters[DistanceMatrixParameter.ActualName]).Value;
         } else {
           return DistanceMatrixParameter.ActualValue;
@@ -64,6 +66,6 @@
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantMerger(bool isDeserializing) {}
-    public PlantMerger(PlantMerger orig, Cloner cloner) : base(orig, cloner) {}
+    public PlantMerger(StorableConstructorFlag _) : base(_) { }
+    public PlantMerger(PlantMerger orig, Cloner cloner) : base(orig, cloner) { }
 
     public PlantMerger() {
@@ -97,5 +99,5 @@
         : scope.Variables[productTransportName].Value as IntegerVector;
       if (supplyTransports != null) {
-        var plants = supplyTransports.Select((target, source) => new {target, source}).GroupBy(p => p.target).ToList();
+        var plants = supplyTransports.Select((target, source) => new { target, source }).GroupBy(p => p.target).ToList();
         var plant = plants.ElementAt(Random.Next(plants.Count));
         var allowedRegions = new HashSet<int>(plants.Select(p => p.Key));
@@ -114,15 +116,15 @@
 
     private int FindNewTarget(int oldTarget, IRandom random, DistanceMatrix distances, IEnumerable<int> allowedRegions) {
-      var neighborDistances = new double[0].Select((d, idx) => new {index = idx, distance = d}).ToList();
+      var neighborDistances = new double[0].Select((d, idx) => new { index = idx, distance = d }).ToList();
       var maxDistance = 0d;
       foreach (int j in allowedRegions) {
         var dist = distances[oldTarget, j];
-        neighborDistances.Add(new {index = j, distance = dist});
+        neighborDistances.Add(new { index = j, distance = dist });
         maxDistance = Math.Max(dist, maxDistance);
       }
-      neighborDistances = neighborDistances.Select(p => new {p.index, distance = maxDistance - p.distance}).ToList();
+      neighborDistances = neighborDistances.Select(p => new { p.index, distance = maxDistance - p.distance }).ToList();
       neighborDistances.Sort((a, b) => b.distance.CompareTo(a.distance));
       var totalDistance = neighborDistances.Sum(p => p.distance);
-      var threshold = random.NextDouble()*totalDistance;
+      var threshold = random.NextDouble() * totalDistance;
       var sum = 0d;
       var index = 0;
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantMover.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantMover.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantMover.cs	(revision 16575)
@@ -33,18 +33,19 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-
+  [StorableType("E7D81182-EFE9-4581-B26D-15FF2354B4C6")]
   public class PlantMover : SingleSuccessorOperator, IManipulator, IStochasticOperator {
 
     #region Parameters
-    public LookupParameter<BioBoostProblemData> ProblemDataParameter { get { return (LookupParameter<BioBoostProblemData>) Parameters["ProblemData"]; } }
-    public LookupParameter<DistanceMatrix> DistanceMatrixParameter { get { return (LookupParameter<DistanceMatrix>) Parameters["DistanceMatrix"]; } }
-    public ValueParameter<BoolValue> DistanceMatrixInProblemDataParameter { get { return (ValueParameter<BoolValue>) Parameters["DistanceMatrixInProblemData"]; } }
-    public ValueLookupParameter<IntMatrix> RegionBoundsParameter { get { return (ValueLookupParameter<IntMatrix>) Parameters["RegionBounds"]; } } 
-    public ILookupParameter<IRandom> RandomParameter { get { return (ILookupParameter<IRandom>) Parameters["Random"]; } }
-    public IValueLookupParameter<PercentValue> MergeAvoidanceProbabilityParameter { get { return (IValueLookupParameter<PercentValue>) Parameters["MergeAvoidanceProbability"]; } }
-    public IValueLookupParameter<PercentValue> SplitProbabilityParameter { get { return (IValueLookupParameter<PercentValue>) Parameters["SplitProbability"]; } }
-    public IValueLookupParameter<PercentValue> MovePercentageParameter { get { return (IValueLookupParameter<PercentValue>) Parameters["MovePercentage"]; } }
+    public LookupParameter<BioBoostProblemData> ProblemDataParameter { get { return (LookupParameter<BioBoostProblemData>)Parameters["ProblemData"]; } }
+    public LookupParameter<DistanceMatrix> DistanceMatrixParameter { get { return (LookupParameter<DistanceMatrix>)Parameters["DistanceMatrix"]; } }
+    public ValueParameter<BoolValue> DistanceMatrixInProblemDataParameter { get { return (ValueParameter<BoolValue>)Parameters["DistanceMatrixInProblemData"]; } }
+    public ValueLookupParameter<IntMatrix> RegionBoundsParameter { get { return (ValueLookupParameter<IntMatrix>)Parameters["RegionBounds"]; } }
+    public ILookupParameter<IRandom> RandomParameter { get { return (ILookupParameter<IRandom>)Parameters["Random"]; } }
+    public IValueLookupParameter<PercentValue> MergeAvoidanceProbabilityParameter { get { return (IValueLookupParameter<PercentValue>)Parameters["MergeAvoidanceProbability"]; } }
+    public IValueLookupParameter<PercentValue> SplitProbabilityParameter { get { return (IValueLookupParameter<PercentValue>)Parameters["SplitProbability"]; } }
+    public IValueLookupParameter<PercentValue> MovePercentageParameter { get { return (IValueLookupParameter<PercentValue>)Parameters["MovePercentage"]; } }
     #endregion
 
@@ -56,8 +57,9 @@
     public IRandom Random { get { return RandomParameter.ActualValue; } }
     public bool DistanceMatrixInProblemData { get { return DistanceMatrixInProblemDataParameter.Value.Value; } }
-    public DistanceMatrix DistanceMatrix {
+    public DistanceMatrix DistanceMatrix
+    {
       get {
         if (DistanceMatrixInProblemData) {
-          return ((IValueParameter<DistanceMatrix>) ProblemData.Parameters[DistanceMatrixParameter.ActualName]).Value;
+          return ((IValueParameter<DistanceMatrix>)ProblemData.Parameters[DistanceMatrixParameter.ActualName]).Value;
         } else {
           return DistanceMatrixParameter.ActualValue;
@@ -72,6 +74,6 @@
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantMover(bool isDeserializing) {}
-    public PlantMover(PlantMover orig, Cloner cloner) : base(orig, cloner) {}
+    public PlantMover(StorableConstructorFlag _) : base(_) { }
+    public PlantMover(PlantMover orig, Cloner cloner) : base(orig, cloner) { }
 
     public PlantMover() {
@@ -108,5 +110,5 @@
         : scope.Variables[productTransportName].Value as IntegerVector;
       if (supplyTransports != null) {
-        var plants = supplyTransports.Select((target, source) => new {target, source}).GroupBy(p => p.target).ToList();
+        var plants = supplyTransports.Select((target, source) => new { target, source }).GroupBy(p => p.target).ToList();
         var plant = plants.ElementAt(Random.Next(plants.Count));
         var forbiddenRegions = new HashSet<int>();
@@ -131,16 +133,16 @@
 
     private int FindNewTarget(int oldTarget, IRandom random, DistanceMatrix distances, HashSet<int> forbiddenRegions) {
-      var neighborDistances = new double[0].Select((d, idx) => new {index = idx, distance = d}).ToList();
+      var neighborDistances = new double[0].Select((d, idx) => new { index = idx, distance = d }).ToList();
       var maxDistance = 0d;
       for (int j = 0; j < distances.Columns; j++) {
         if (forbiddenRegions.Contains(j)) continue;
         var dist = distances[oldTarget, j];
-        neighborDistances.Add(new {index = j, distance = dist});
+        neighborDistances.Add(new { index = j, distance = dist });
         maxDistance = Math.Max(dist, maxDistance);
       }
-      neighborDistances = neighborDistances.Select(p => new {p.index, distance = maxDistance - p.distance}).ToList();
+      neighborDistances = neighborDistances.Select(p => new { p.index, distance = maxDistance - p.distance }).ToList();
       neighborDistances.Sort((a, b) => b.distance.CompareTo(a.distance));
       var totalDistance = neighborDistances.Sum(p => p.distance);
-      var threshold = random.NextDouble()*totalDistance;
+      var threshold = random.NextDouble() * totalDistance;
       var sum = 0d;
       var index = 0;
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantScalingMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantScalingMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantScalingMutator.cs	(revision 16575)
@@ -25,13 +25,14 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
 
-  [StorableClass]
+  [StorableType("01EBA7E4-DBAE-47F9-8DE6-C3D3E697CD11")]
   public class PlantScalingMutator : PlantBasedUtilizationModifier {
 
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantScalingMutator(bool isDeserializing) {}
+    public PlantScalingMutator(StorableConstructorFlag _) { }
     public PlantScalingMutator(PlantScalingMutator orig, Cloner cloner) : base(orig, cloner) {}
     public PlantScalingMutator() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSplitter.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSplitter.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSplitter.cs	(revision 16575)
@@ -33,18 +33,19 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-
+  [StorableType("FCC0115E-1465-4C76-A422-E9242B3AB8CA")]
   public class PlantSplitter : SingleSuccessorOperator, IManipulator, IStochasticOperator {
 
     #region Parameters
-    public LookupParameter<BioBoostProblemData> ProblemDataParameter { get { return (LookupParameter<BioBoostProblemData>) Parameters["ProblemData"]; } }
-    public LookupParameter<DistanceMatrix> DistanceMatrixParameter { get { return (LookupParameter<DistanceMatrix>) Parameters["DistanceMatrix"]; } }
-    public ValueParameter<BoolValue> DistanceMatrixInProblemDataParameter { get { return (ValueParameter<BoolValue>) Parameters["DistanceMatrixInProblemData"]; } }
-    public ValueLookupParameter<IntMatrix> RegionBoundsParameter { get { return (ValueLookupParameter<IntMatrix>) Parameters["RegionBounds"]; } } 
-    public ILookupParameter<IRandom> RandomParameter { get { return (ILookupParameter<IRandom>) Parameters["Random"]; } }
-    public IValueLookupParameter<PercentValue> MergeAvoidanceProbabilityParameter { get { return (IValueLookupParameter<PercentValue>) Parameters["MergeAvoidanceProbability"]; } }
-    public IValueLookupParameter<PercentValue> SplitProbabilityParameter { get { return (IValueLookupParameter<PercentValue>) Parameters["SplitProbability"]; } }
-    public IValueLookupParameter<PercentValue> MovePercentageParameter { get { return (IValueLookupParameter<PercentValue>) Parameters["MovePercentage"]; } }
+    public LookupParameter<BioBoostProblemData> ProblemDataParameter { get { return (LookupParameter<BioBoostProblemData>)Parameters["ProblemData"]; } }
+    public LookupParameter<DistanceMatrix> DistanceMatrixParameter { get { return (LookupParameter<DistanceMatrix>)Parameters["DistanceMatrix"]; } }
+    public ValueParameter<BoolValue> DistanceMatrixInProblemDataParameter { get { return (ValueParameter<BoolValue>)Parameters["DistanceMatrixInProblemData"]; } }
+    public ValueLookupParameter<IntMatrix> RegionBoundsParameter { get { return (ValueLookupParameter<IntMatrix>)Parameters["RegionBounds"]; } }
+    public ILookupParameter<IRandom> RandomParameter { get { return (ILookupParameter<IRandom>)Parameters["Random"]; } }
+    public IValueLookupParameter<PercentValue> MergeAvoidanceProbabilityParameter { get { return (IValueLookupParameter<PercentValue>)Parameters["MergeAvoidanceProbability"]; } }
+    public IValueLookupParameter<PercentValue> SplitProbabilityParameter { get { return (IValueLookupParameter<PercentValue>)Parameters["SplitProbability"]; } }
+    public IValueLookupParameter<PercentValue> MovePercentageParameter { get { return (IValueLookupParameter<PercentValue>)Parameters["MovePercentage"]; } }
     #endregion
 
@@ -54,8 +55,9 @@
     public IRandom Random { get { return RandomParameter.ActualValue; } }
     public bool DistanceMatrixInProblemData { get { return DistanceMatrixInProblemDataParameter.Value.Value; } }
-    public DistanceMatrix DistanceMatrix {
+    public DistanceMatrix DistanceMatrix
+    {
       get {
         if (DistanceMatrixInProblemData) {
-          return ((IValueParameter<DistanceMatrix>) ProblemData.Parameters[DistanceMatrixParameter.ActualName]).Value;
+          return ((IValueParameter<DistanceMatrix>)ProblemData.Parameters[DistanceMatrixParameter.ActualName]).Value;
         } else {
           return DistanceMatrixParameter.ActualValue;
@@ -70,6 +72,6 @@
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantSplitter(bool isDeserializing) {}
-    public PlantSplitter(PlantSplitter orig, Cloner cloner) : base(orig, cloner) {}
+    public PlantSplitter(StorableConstructorFlag _) : base(_) { }
+    public PlantSplitter(PlantSplitter orig, Cloner cloner) : base(orig, cloner) { }
 
     public PlantSplitter() {
@@ -106,5 +108,5 @@
         : scope.Variables[productTransportName].Value as IntegerVector;
       if (supplyTransports != null) {
-        var plants = supplyTransports.Select((target, source) => new {target, source}).GroupBy(p => p.target).ToList();
+        var plants = supplyTransports.Select((target, source) => new { target, source }).GroupBy(p => p.target).ToList();
         var plant = plants.ElementAt(Random.Next(plants.Count));
         var forbiddenRegions = new HashSet<int>();
@@ -129,16 +131,16 @@
 
     private int FindNewTarget(int oldTarget, IRandom random, DistanceMatrix distances, HashSet<int> forbiddenRegions) {
-      var neighborDistances = new double[0].Select((d, idx) => new {index = idx, distance = d}).ToList();
+      var neighborDistances = new double[0].Select((d, idx) => new { index = idx, distance = d }).ToList();
       var maxDistance = 0d;
       for (int j = 0; j < distances.Columns; j++) {
         if (forbiddenRegions.Contains(j)) continue;
         var dist = distances[oldTarget, j];
-        neighborDistances.Add(new {index = j, distance = dist});
+        neighborDistances.Add(new { index = j, distance = dist });
         maxDistance = Math.Max(dist, maxDistance);
       }
-      neighborDistances = neighborDistances.Select(p => new {p.index, distance = maxDistance - p.distance}).ToList();
+      neighborDistances = neighborDistances.Select(p => new { p.index, distance = maxDistance - p.distance }).ToList();
       neighborDistances.Sort((a, b) => b.distance.CompareTo(a.distance));
       var totalDistance = neighborDistances.Sum(p => p.distance);
-      var threshold = random.NextDouble()*totalDistance;
+      var threshold = random.NextDouble() * totalDistance;
       var sum = 0d;
       var index = 0;
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierEqualizer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierEqualizer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierEqualizer.cs	(revision 16575)
@@ -25,13 +25,14 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
 
-  [StorableClass]
+  [StorableType("47E3AE56-1831-4FD4-8F6A-AAEED5AF0F5A")]
   public class PlantSupplierEqualizer : PlantBasedUtilizationModifier {
 
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantSupplierEqualizer(bool isDeserializing) {}
+    public PlantSupplierEqualizer(StorableConstructorFlag _) { }
     public PlantSupplierEqualizer(PlantSupplierEqualizer orig, Cloner cloner) : base(orig, cloner) {}
     public PlantSupplierEqualizer() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierRandomizer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierRandomizer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierRandomizer.cs	(revision 16575)
@@ -25,13 +25,14 @@
 using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
 
-  [StorableClass]
+  [StorableType("234006BF-3E6B-4493-A318-95325A72CB5F")]
   public class PlantSupplierRandomizer : PlantBasedUtilizationModifier {
 
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantSupplierRandomizer(bool isDeserializing) {}
+    public PlantSupplierRandomizer(StorableConstructorFlag _) { }
     public PlantSupplierRandomizer(PlantSupplierRandomizer orig, Cloner cloner) : base(orig, cloner) {}
     public PlantSupplierRandomizer() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierToggler.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierToggler.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierToggler.cs	(revision 16575)
@@ -26,13 +26,14 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Random;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
 
-  [StorableClass]
+  [StorableType("ED5F9402-0524-429E-BDD5-F6B1753B7B47")]
   public class PlantSupplierToggler : PlantBasedUtilizationModifier {
 
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantSupplierToggler(bool isDeserializing) {}
+    public PlantSupplierToggler(StorableConstructorFlag _) { }
     public PlantSupplierToggler(PlantSupplierToggler orig, Cloner cloner) : base(orig, cloner) {}
     public PlantSupplierToggler() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierUtilizationExchanger.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierUtilizationExchanger.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/PlantSupplierUtilizationExchanger.cs	(revision 16575)
@@ -26,13 +26,14 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Random;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
 
-  [StorableClass]
+  [StorableType("F68106A0-10E6-457B-9318-4A6AF242BC8E")]
   public class PlantSupplierUtilizationExchanger : PlantBasedUtilizationModifier {
 
     #region Construction & Cloning
     [StorableConstructor]
-    public PlantSupplierUtilizationExchanger(bool isDeserializing) {}
+    public PlantSupplierUtilizationExchanger(StorableConstructorFlag _) { }
     public PlantSupplierUtilizationExchanger(PlantSupplierUtilizationExchanger orig, Cloner cloner) : base(orig, cloner) {}
     public PlantSupplierUtilizationExchanger() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/TargetMergingIntegerVectorMutator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/TargetMergingIntegerVectorMutator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Mutation/TargetMergingIntegerVectorMutator.cs	(revision 16575)
@@ -30,7 +30,8 @@
 using System;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Mutation {
-  [StorableClass]
+  [StorableType("EE0CB71C-2631-445E-BFBF-55967F4D371E")]
   public class TargetMergingIntegerVectorManipulator : BoundedIntegerVectorManipulator {
 
@@ -67,5 +68,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected TargetMergingIntegerVectorManipulator(bool isDeserializing) : base(isDeserializing) {}
+    protected TargetMergingIntegerVectorManipulator(StorableConstructorFlag _) : base(_) { }
     protected TargetMergingIntegerVectorManipulator(TargetMergingIntegerVectorManipulator orig, Cloner cloner) : base(orig, cloner) {}
     public TargetMergingIntegerVectorManipulator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockDeflater.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockDeflater.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockDeflater.cs	(revision 16575)
@@ -31,8 +31,9 @@
 using System.Collections.Generic;
 using HeuristicLab.BioBoost.Representation;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Transformation {
 
-  [StorableClass]
+  [StorableType("9F8B4BC5-5814-45C2-8AEC-AC29CBA40A05")]
   public class FeedstockDeflater : FeedstockTransformer {
 
@@ -45,5 +46,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected FeedstockDeflater(bool isDeserializing) : base(isDeserializing) {}
+    protected FeedstockDeflater(StorableConstructorFlag _) : base(_) { }
     protected FeedstockDeflater(FeedstockDeflater orig, Cloner cloner) : base(orig, cloner) {}
     public FeedstockDeflater() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockInflater.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockInflater.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockInflater.cs	(revision 16575)
@@ -27,13 +27,14 @@
 using System.Collections.Generic;
 using HeuristicLab.BioBoost.Representation;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Transformation {
 
-  [StorableClass]
+  [StorableType("6BC1D076-7DFC-4AC9-B5CF-35BE9DB903F6")]
   public class FeedstockInflater : FeedstockTransformer {
 
     #region Construction & Cloning
     [StorableConstructor]
-    protected FeedstockInflater(bool isDeserializing) : base(isDeserializing) {}
+    protected FeedstockInflater(StorableConstructorFlag _) : base(_) { }
     protected FeedstockInflater(FeedstockInflater orig, Cloner cloner) : base(orig, cloner) {}
     public FeedstockInflater() {}
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockTransformer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockTransformer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Operators/Transformation/FeedstockTransformer.cs	(revision 16575)
@@ -25,8 +25,9 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Operators.Transformation {
 
-  [StorableClass]
+  [StorableType("4899F5B6-FD69-4CAA-896C-20A51A4B0BCC")]
   public class FeedstockTransformer : BioBoostOperator {
 
@@ -41,5 +42,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected FeedstockTransformer(bool isDeserializing) : base(isDeserializing) {}
+    protected FeedstockTransformer(StorableConstructorFlag _) : base(_) { }
     protected FeedstockTransformer(FeedstockTransformer orig, Cloner cloner) : base(orig, cloner) {}
     public FeedstockTransformer() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Persistence/GeometryFeatureProviderSerializer.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Persistence/GeometryFeatureProviderSerializer.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Persistence/GeometryFeatureProviderSerializer.cs	(revision 16575)
@@ -21,4 +21,5 @@
 
 using GeoAPI.Geometries;
+using HEAL.Attic;
 using HeuristicLab.Persistence.Core;
 using HeuristicLab.Persistence.Interfaces;
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/BioBoostProblemData.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/BioBoostProblemData.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/BioBoostProblemData.cs	(revision 16575)
@@ -41,8 +41,9 @@
 using GeoAPI.Geometries;
 using HeuristicLab.BioBoost.Representation;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.ProblemDescription {
 
-  [StorableClass]
+  [StorableType("1A6A5B9A-0E82-4873-9F8F-87ABA1D8F125")]
   public class BioBoostProblemData : ParameterizedNamedItem {
 
@@ -185,5 +186,5 @@
 
     [StorableConstructor]
-    protected BioBoostProblemData(bool isDeserializing) : base(isDeserializing) { }
+    protected BioBoostProblemData(StorableConstructorFlag _) : base(_) { }
     protected BioBoostProblemData(BioBoostProblemData orig, Cloner cloner)
       : base(orig, cloner) {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/DistanceMatrix.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/DistanceMatrix.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/DistanceMatrix.cs	(revision 16575)
@@ -29,9 +29,10 @@
 using System.Globalization;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.ProblemDescription {
 
   [Item("DistanceMatrix", "Represents a space-efficient, symmetric distance matrix of double values.")]
-  [StorableClass]
+  [StorableType("108ABFA4-9CA2-43B5-850A-3B3F13BC271A")]
   public class DistanceMatrix : NamedItem, IStringConvertibleMatrix {
 
@@ -59,5 +60,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected DistanceMatrix(bool isDeserializing) : base(isDeserializing) { }
+    protected DistanceMatrix(StorableConstructorFlag _) : base(_) { }
     protected DistanceMatrix(DistanceMatrix original, Cloner cloner)
       : base(original, cloner) {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/NeighborhoodTable.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/NeighborhoodTable.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/ProblemDescription/NeighborhoodTable.cs	(revision 16575)
@@ -28,8 +28,9 @@
 using System.Globalization;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.ProblemDescription {
   
-  [StorableClass]
+  [StorableType("F7026CD3-DA57-4AEE-8AB7-F93BDFCE3CDE")]
   public class NeighborhoodTable : Item, IStringConvertibleMatrix {
 
@@ -62,5 +63,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected NeighborhoodTable(bool isDeserializing) : base(isDeserializing) {}
+    protected NeighborhoodTable(StorableConstructorFlag _) : base(_) { }
     protected NeighborhoodTable(NeighborhoodTable orig, Cloner cloner) : base(orig, cloner) {
       table = orig.table.ToDictionary(p => p.Key, p => p.Value);
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Representation/BioBoostCompoundSolution.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Representation/BioBoostCompoundSolution.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Representation/BioBoostCompoundSolution.cs	(revision 16575)
@@ -41,8 +41,9 @@
 using SharpMap.Layers;
 using SharpMap.Utilities.Wfs;
+using HEAL.Attic;
 // using YamlDotNet.RepresentationModel.Serialization.NodeTypeResolvers;
 
 namespace HeuristicLab.BioBoost.Representation {
-  [StorableClass]
+  [StorableType("644945D8-CC1B-4DE9-AF2E-4C6DE95A37FD")]
   public sealed class BioBoostCompoundSolution : ParameterizedNamedItem, IStorableContent {
     public class TransportInfo {
@@ -135,5 +136,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    private BioBoostCompoundSolution(bool isDeserializing) : base(isDeserializing) { }
+    private BioBoostCompoundSolution(StorableConstructorFlag _) : base(_) { }
     private BioBoostCompoundSolution(BioBoostCompoundSolution orig, Cloner cloner, bool full = true)
       : base(orig, cloner) {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Representation/LayerDescriptor.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Representation/LayerDescriptor.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Representation/LayerDescriptor.cs	(revision 16575)
@@ -28,7 +28,8 @@
 using HeuristicLab.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Representation {
-
+  [StorableType("9464112A-FE8E-43C0-A6F9-5626D63D2D30")]
   public interface ILayerDescriptor : IItem {
     string Name { get; }
@@ -39,4 +40,5 @@
   }
 
+  [StorableType("D6229284-9C48-4FE9-B37F-34FA96B9FC55")]
   public interface IValueLayer {
     LayerDescriptor LayerDescriptor { get; }
@@ -44,10 +46,15 @@
   }
 
+  [StorableType("507933FD-C6B8-44DB-BE23-0343CED49204")]
   public interface IAggregator {
     IEnumerable<IValueLayer> Aggregate(IEnumerable<IValueLayer> layers, ItemArray<ItemList<IntValue>> sources);
   }
 
+  [StorableType("6CD7E1DD-7862-49C7-8B2A-6F756D7A775F")]
   public class SumAggregator : IAggregator {
     public ILayerDescriptor TargetLayerDescriptor { get; private set; }
+    [StorableConstructor]
+    protected SumAggregator(StorableConstructorFlag _) { }
+
     public SumAggregator(ILayerDescriptor descriptor) { TargetLayerDescriptor = descriptor; }
     public IEnumerable<IValueLayer> Aggregate(IEnumerable<IValueLayer> layers, ItemArray<ItemList<IntValue>> sources) {
@@ -61,8 +68,8 @@
   }
 
-  [StorableClass(StorableClassType.AllFieldsAndAllProperties)]
+  [StorableType(StorableMemberSelection.AllFieldsAndAllProperties, "4C00E073-D186-49CD-A794-8A44B55779E8")]
   public class LayerDescriptor : Item, ILayerDescriptor {
 
-    public string Name  { get; private set; }
+    public string Name { get; private set; }
     public string Unit { get; private set; }
     public string Description { get; private set; }
@@ -70,5 +77,7 @@
     public string FullName { get; private set; }
 
-    protected LayerDescriptor(bool isDeserializing) : base(isDeserializing) { }
+    [StorableConstructor]
+    protected LayerDescriptor(StorableConstructorFlag _) : base(_) { }
+
     protected LayerDescriptor(LayerDescriptor orig, Cloner cloner) : base(orig, cloner) { }
 
@@ -175,23 +184,24 @@
 
     private static void DiscoverLayers() {
-        if (LAYERS.Count == 0) {
-          LAYERS.AddRange(
-            typeof (LayerDescriptor)
-              .GetFields(BindingFlags.Static | BindingFlags.Public)
-              .Select(f => f.GetValue(null))
-              .Where(v => v is LayerDescriptor)
-              .Cast<LayerDescriptor>()
-              .OrderByDescending(l => l.Name.Length));
-          foreach (var l1 in LAYERS) {
-            foreach (var l2 in LAYERS) {
-              if (l1 != l2 && l1.IsSuffixOf(l2.FullName))
-                throw new InvalidOperationException(string.Format("Layer overlap detected \"{0}\" is suffix of \"{1}\"", l1.FullName, l2.FullName));
-            }
+      if (LAYERS.Count == 0) {
+        LAYERS.AddRange(
+          typeof(LayerDescriptor)
+            .GetFields(BindingFlags.Static | BindingFlags.Public)
+            .Select(f => f.GetValue(null))
+            .Where(v => v is LayerDescriptor)
+            .Cast<LayerDescriptor>()
+            .OrderByDescending(l => l.Name.Length));
+        foreach (var l1 in LAYERS) {
+          foreach (var l2 in LAYERS) {
+            if (l1 != l2 && l1.IsSuffixOf(l2.FullName))
+              throw new InvalidOperationException(string.Format("Layer overlap detected \"{0}\" is suffix of \"{1}\"", l1.FullName, l2.FullName));
           }
         }
-    }
-
-    public static IEnumerable<LayerDescriptor> Layers {
-      get {  DiscoverLayers(); return LAYERS; }
+      }
+    }
+
+    public static IEnumerable<LayerDescriptor> Layers
+    {
+      get { DiscoverLayers(); return LAYERS; }
     }
 
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/BioBoostSolutionCreator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/BioBoostSolutionCreator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/BioBoostSolutionCreator.cs	(revision 16575)
@@ -33,8 +33,9 @@
 using System.Linq;
 using HeuristicLab.BioBoost.Representation;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.SolutionCreation {
 
-  [StorableClass]
+  [StorableType("531890AB-4D1C-4CC2-B2C8-66809BD010D7")]
   public class BioBoostSolutionCreator : SingleSuccessorOperator, ISolutionCreator {
 
@@ -77,5 +78,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected BioBoostSolutionCreator(bool isDeserializing) : base(isDeserializing) {}
+    protected BioBoostSolutionCreator(StorableConstructorFlag _) : base(_) { }
     protected BioBoostSolutionCreator(BioBoostSolutionCreator orig, Cloner cloner) : base(orig, cloner) {}
     public BioBoostSolutionCreator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/ConstantValueRealVectorCreator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/ConstantValueRealVectorCreator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/ConstantValueRealVectorCreator.cs	(revision 16575)
@@ -27,8 +27,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.SolutionCreation {
 
-  [StorableClass]
+  [StorableType("50661F1E-4A8A-40D4-983B-3D55E93E1465")]
   public class ConstantValueRealVectorCreator : RealVectorCreator {
 
@@ -44,5 +45,5 @@
       #region Construction & Cloning
     [StorableConstructor]
-    protected ConstantValueRealVectorCreator(bool isDeserializing) : base(isDeserializing) {}
+    protected ConstantValueRealVectorCreator(StorableConstructorFlag _) : base(_) { }
     protected ConstantValueRealVectorCreator(ConstantValueRealVectorCreator orig, Cloner cloner) : base(orig, cloner) {}
     public ConstantValueRealVectorCreator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/IdentityIntegerVectorCreator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/IdentityIntegerVectorCreator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/IdentityIntegerVectorCreator.cs	(revision 16575)
@@ -26,13 +26,14 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.SolutionCreation {
 
-  [StorableClass]
+  [StorableType("EAFB8250-A9EB-43BA-B1B3-EF026493DCE7")]
   public class IdentityIntegerVectorCreator : IntegerVectorCreator {
 
     #region Construction & Cloning
     [StorableConstructor]
-    protected IdentityIntegerVectorCreator(bool isDeserializing) : base(isDeserializing) {}
+    protected IdentityIntegerVectorCreator(StorableConstructorFlag _) : base(_) { }
     protected IdentityIntegerVectorCreator(IdentityIntegerVectorCreator orig, Cloner cloner) : base(orig, cloner) {}
     public IdentityIntegerVectorCreator() { }
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/LimitedValuesIntegerVectorCreator.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/LimitedValuesIntegerVectorCreator.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/SolutionCreation/LimitedValuesIntegerVectorCreator.cs	(revision 16575)
@@ -27,8 +27,9 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Linq;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.SolutionCreation {
 
-  [StorableClass]
+  [StorableType("83148271-792B-471B-99C0-740E8671940A")]
   public class LimitedValuesIntegerVectorCreator : IntegerVectorCreator {
 
@@ -48,5 +49,5 @@
     #region Construction & Cloning
     [StorableConstructor]
-    protected LimitedValuesIntegerVectorCreator(bool isDeserializing) : base(isDeserializing) {}
+    protected LimitedValuesIntegerVectorCreator(StorableConstructorFlag _) : base(_) { }
     protected LimitedValuesIntegerVectorCreator(LimitedValuesIntegerVectorCreator orig, Cloner cloner) : base(orig, cloner) {}
     public LimitedValuesIntegerVectorCreator() {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Utils/Closure.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Utils/Closure.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Utils/Closure.cs	(revision 16575)
@@ -23,4 +23,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Utils {
@@ -32,5 +33,5 @@
   /// </summary>
   /// <typeparam name="T">The Type of the value to be wrapped.</typeparam>
-  [StorableClass]
+  [StorableType("75502002-CE4F-4B62-B37B-FEB93F899BA3")]
   public class Closure<T> : IDeepCloneable {
 
@@ -47,5 +48,5 @@
 
     [StorableConstructor]
-    protected Closure(bool isDeserializing) {
+    protected Closure(StorableConstructorFlag _) {
       T value = default(T);
       Getter = () => value;
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Utils/StepFunction.cs
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Utils/StepFunction.cs	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/Utils/StepFunction.cs	(revision 16575)
@@ -30,8 +30,9 @@
 using System.Linq;
 using System.Text.RegularExpressions;
+using HEAL.Attic;
 
 namespace HeuristicLab.BioBoost.Utils {
 
-  [StorableClass]
+  [StorableType("38ABD326-0F33-4B2F-A41C-547BADF7CA3A")]
   [Item("StepFunction", "A simple step function specifying upper bounds and corresponding values.")]
   public class StepFunction : ParameterizedNamedItem {
@@ -52,5 +53,5 @@
     }
     [StorableConstructor]
-    protected StepFunction(bool isDeserializing) : base(isDeserializing) {}
+    protected StepFunction(StorableConstructorFlag _) : base(_) { }
     protected StepFunction(StepFunction orig, Cloner cloner) : base(orig, cloner) {}
     public override IDeepCloneable Clone(Cloner cloner) {
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/app.config
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/app.config	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/app.config	(revision 16575)
@@ -1,15 +1,15 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <runtime>
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
-        <assemblyIdentity name="GeoAPI" publicKeyToken="a1a0da7def465678" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.7.3.0" newVersion="1.7.3.0" />
+        <assemblyIdentity name="GeoAPI" publicKeyToken="a1a0da7def465678" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-1.7.3.0" newVersion="1.7.3.0"/>
       </dependentAssembly>
       <dependentAssembly>
-        <assemblyIdentity name="NetTopologySuite" publicKeyToken="f580a05016ebada1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-1.13.3.0" newVersion="1.13.3.0" />
+        <assemblyIdentity name="NetTopologySuite" publicKeyToken="f580a05016ebada1" culture="neutral"/>
+        <bindingRedirect oldVersion="0.0.0.0-1.13.3.0" newVersion="1.13.3.0"/>
       </dependentAssembly>
     </assemblyBinding>
   </runtime>
-</configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/></startup></configuration>
Index: addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/packages.config
===================================================================
--- addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/packages.config	(revision 15711)
+++ addons/HeuristicLab.Problems.BioBoost/HeuristicLab.Problems.BioBoost/3.3/packages.config	(revision 16575)
@@ -4,4 +4,6 @@
   <package id="Common.Logging" version="2.0.0" targetFramework="net45" />
   <package id="GeoAPI" version="1.7.2" targetFramework="net45" />
+  <package id="Google.Protobuf" version="3.6.1" targetFramework="net461" />
+  <package id="HEAL.Attic" version="1.0.0-pre02" targetFramework="net461" />
   <package id="NetTopologySuite" version="1.13.2" targetFramework="net45" />
   <package id="NetTopologySuite.IO" version="1.13.2" targetFramework="net45" />
@@ -10,4 +12,5 @@
   <package id="SharpMap" version="1.1.0" targetFramework="net45" />
   <package id="System.Data.SQLite.MSIL" version="1.0.86.0" targetFramework="net45" />
+  <package id="System.Drawing.Common" version="4.5.1" targetFramework="net461" />
   <package id="YamlDotNet" version="3.8.0" targetFramework="net45" />
 </packages>
