Index: /branches/PersistenceOverhaul/HeuristicLab.Common/3.3/TypeEqualityComparer.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Common/3.3/TypeEqualityComparer.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Common/3.3/TypeEqualityComparer.cs	(revision 14714)
@@ -21,6 +21,8 @@
 
 using System.Collections.Generic;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Common {
+  [StorableType("968BC42A-2453-43B9-92E1-3C52C6CF3AED")]
   public class TypeEqualityComparer<T> : IEqualityComparer<T> {
 
Index: /branches/PersistenceOverhaul/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Grammars/SimpleSymbolicExpressionGrammar.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Grammars/SimpleSymbolicExpressionGrammar.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Grammars/SimpleSymbolicExpressionGrammar.cs	(revision 14714)
@@ -25,4 +25,5 @@
 
 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
+  [StorableType("6A92B935-5D05-42D8-933C-333C9AB71133")]
   public sealed class SimpleSymbolicExpressionGrammar : SymbolicExpressionGrammar {
     [StorableConstructor]
Index: /branches/PersistenceOverhaul/HeuristicLab.Persistence/4.0/Core/StaticCache.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Persistence/4.0/Core/StaticCache.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Persistence/4.0/Core/StaticCache.cs	(revision 14714)
@@ -58,8 +58,8 @@
       //  
       //  
-      //  "B7313EE2-045F-41C9-AEC9-7B1A8CDBF90F"
-      //  "D5265599-7380-4A28-AB0D-9F336EF290C5"
-      //  "6A92B935-5D05-42D8-933C-333C9AB71133"
-      //  "934A44AA-7E04-4E2D-B640-EDD3DE24894F"
+      //  
+      //  
+      //  
+      //  
       //  "0F24C888-AF34-4318-9472-187B9AA85F3C"
 
@@ -114,5 +114,7 @@
       // RegisterType(new Guid("7DF325A6-2553-4915-B7C6-D98191107CB7"), typeof(string[]));
 
-      RegisterType(new Guid("E451A99B-0CFD-48E6-9BEF-0AE9D1E73628"), typeof(IList));                                        
+      RegisterType(new Guid("E451A99B-0CFD-48E6-9BEF-0AE9D1E73628"), typeof(IList));
+      RegisterType(new Guid("B7313EE2-045F-41C9-AEC9-7B1A8CDBF90F"), typeof(IEnumerable));
+      RegisterType(new Guid("D5265599-7380-4A28-AB0D-9F336EF290C5"), typeof(IEnumerable<>));
       RegisterType(new Guid("DB2A785C-5803-42C7-A01F-E1FD845A83A1"), typeof(List<>));
       RegisterType(new Guid("EB98A564-BEDC-458A-9E9B-4BF3CDAFB9BE"), typeof(Stack<>));
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/MultiSymbolicDataAnalysisExpressionCreator.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/MultiSymbolicDataAnalysisExpressionCreator.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/MultiSymbolicDataAnalysisExpressionCreator.cs	(revision 14714)
@@ -35,4 +35,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Creators {
+  [StorableType("4F300624-6101-48BB-9BC0-6CE4D2711963")]
   public class MultiSymbolicDataAnalysisExpressionCreator : StochasticMultiBranch<ISymbolicDataAnalysisSolutionCreator>,
     ISymbolicDataAnalysisSolutionCreator,
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionCrossover.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionCrossover.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionCrossover.cs	(revision 14714)
@@ -32,4 +32,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
+  [StorableType("F1795C23-8338-4EDA-98AF-1690569C7AE3")]
   public abstract class SymbolicDataAnalysisExpressionCrossover<T> : SymbolicExpressionTreeCrossover, ISymbolicDataAnalysisExpressionCrossover<T> where T : class, IDataAnalysisProblemData {
     private const string SymbolicDataAnalysisTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter";
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDepthConstrainedCrossover.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDepthConstrainedCrossover.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDepthConstrainedCrossover.cs	(revision 14714)
@@ -32,4 +32,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
+  [StorableType("86C1312C-1CDA-4B24-92C5-9112E6EAE2EF")]
   [Item("DepthConstrainedCrossover", "An operator which performs subtree swapping within a specific depth range. The range parameter controls the crossover behavior:\n" +
                                      "- HighLevel (upper 25% of the tree)\n" +
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDeterministicBestCrossover.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDeterministicBestCrossover.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDeterministicBestCrossover.cs	(revision 14714)
@@ -30,4 +30,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
+  [StorableType("4A26C31E-8D8D-4142-B7A7-2D6E363635B8")]
   [Item("DeterministicBestCrossover", "An operator which performs subtree swapping by choosing the best subtree to be swapped in a certain position:\n" +
                                       "- Take two parent individuals P0 and P1\n" +
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionProbabilisticFunctionalCrossover.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionProbabilisticFunctionalCrossover.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionProbabilisticFunctionalCrossover.cs	(revision 14714)
@@ -30,4 +30,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
+  [StorableType("BCD67FE9-1F9C-4208-8F7C-AF7FFA7D7170")]
   [Item("ProbabilisticFunctionalCrossover", "An operator which performs subtree swapping based on the behavioral similarity between subtrees:\n" +
                                             "- Take two parent individuals P0 and P1\n" +
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionSemanticSimilarityCrossover.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionSemanticSimilarityCrossover.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionSemanticSimilarityCrossover.cs	(revision 14714)
@@ -31,4 +31,5 @@
 
 namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
+  [StorableType("461F207C-057D-4E95-A803-D66457AE3806")]
   [Item("SemanticSimilarityCrossover", "An operator which performs subtree swapping based on the notion semantic similarity between subtrees\n" +
                                        "(criteria: mean of the absolute differences between the estimated output values of the two subtrees, falling into a user-defined range)\n" +
Index: /branches/PersistenceOverhaul/HeuristicLab.Problems.Orienteering/3.3/Analyzers/BestOrienteeringSolutionAnalyzer.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Problems.Orienteering/3.3/Analyzers/BestOrienteeringSolutionAnalyzer.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Problems.Orienteering/3.3/Analyzers/BestOrienteeringSolutionAnalyzer.cs	(revision 14714)
@@ -31,4 +31,5 @@
 
 namespace HeuristicLab.Problems.Orienteering {
+  [StorableType("934A44AA-7E04-4E2D-B640-EDD3DE24894F")]
   public sealed class BestOrienteeringSolutionAnalyzer : SingleSuccessorOperator, IAnalyzer {
     public bool EnabledByDefault {
Index: /branches/PersistenceOverhaul/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCasesPersistenceNew.cs
===================================================================
--- /branches/PersistenceOverhaul/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCasesPersistenceNew.cs	(revision 14713)
+++ /branches/PersistenceOverhaul/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCasesPersistenceNew.cs	(revision 14714)
@@ -404,5 +404,5 @@
 
     public string Profile(Func<object> GenerateDataFunc) {
-      int nrOfRepetitions = 1;
+      int nrOfRepetitions = 30;
       StringBuilder report = new StringBuilder();
       List<PerformanceData> dataList = new List<PerformanceData>();
@@ -2136,23 +2136,20 @@
         var original = XmlParser.Deserialize(fileName);
         var ok = true;
-        foreach (var t in original.GetObjectGraphObjects().Select(o => o.GetType())) {
-          if (
-            t.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
-              .Any(ctor => StorableConstructorAttribute.IsStorableConstructor(ctor))) {
-            try {
-              if (t.IsGenericType)
-              {
-                var g = Mapper.StaticCache.GetGuid(t.GetGenericTypeDefinition());
-              }
-              else
-              {
-                var g = Mapper.StaticCache.GetGuid(t);
-              }
-            } catch (Exception e) {
-              Console.WriteLine(t.FullName);
-              ok = false;
-            }
-          }
-        }
+        // foreach (var t in original.GetObjectGraphObjects().Select(o => o.GetType())) {
+        //   if (
+        //     t.GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)
+        //       .Any(ctor => StorableConstructorAttribute.IsStorableConstructor(ctor))) {
+        //     try {
+        //       if (t.IsGenericType) {
+        //         var g = Mapper.StaticCache.GetGuid(t.GetGenericTypeDefinition());
+        //       } else {
+        //         var g = Mapper.StaticCache.GetGuid(t);
+        //       }
+        //     } catch (Exception e) {
+        //       Console.WriteLine(t.FullName);
+        //       ok = false;
+        //     }
+        //   }
+        // }
         if (ok) {
           serializer.Serialize(original, fileName + ".proto");
