Index: /trunk/sources/HeuristicLab.Algorithms.NSGA2/3.3/NSGA2.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.NSGA2/3.3/NSGA2.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Algorithms.NSGA2/3.3/NSGA2.cs	(revision 7351)
@@ -157,5 +157,5 @@
       : base(original, cloner) {
       paretoFrontAnalyzer = (RankBasedParetoFrontAnalyzer)cloner.Clone(original.paretoFrontAnalyzer);
-      AttachEventHandlers();
+      AfterDeserialization();
     }
     public NSGA2() {
@@ -229,5 +229,5 @@
       UpdateAnalyzers();
 
-      AttachEventHandlers();
+      AfterDeserialization();
     }
 
@@ -310,5 +310,5 @@
     #region Helpers
     [StorableHook(HookType.AfterDeserialization)]
-    private void AttachEventHandlers() {
+    private void AfterDeserialization() {
       PopulationSizeParameter.ValueChanged += new EventHandler(PopulationSizeParameter_ValueChanged);
       PopulationSize.ValueChanged += new EventHandler(PopulationSize_ValueChanged);
Index: /trunk/sources/HeuristicLab.Analysis/3.3/ValueAnalysis/MinAverageMaxValueAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/ValueAnalysis/MinAverageMaxValueAnalyzer.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/ValueAnalysis/MinAverageMaxValueAnalyzer.cs	(revision 7351)
@@ -94,5 +94,5 @@
       : base(original, cloner) {
       resultsCollector = cloner.Clone(original.resultsCollector);
-      Initialize();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -147,9 +147,13 @@
       #endregion
 
-      Initialize();
+      RegisterEventHandlers();
     }
 
     [StorableHook(HookType.AfterDeserialization)]
-    private void Initialize() {
+    private void AfterDeserialization() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       ValueParameter.DepthChanged += new EventHandler(ValueParameter_DepthChanged);
       CollectMinValueInResultsParameter.ValueChanged += new EventHandler(CollectMinValueInResultsParameter_ValueChanged);
Index: /trunk/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs
===================================================================
--- /trunk/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Operators/3.3/StochasticMultiBranch.cs	(revision 7351)
@@ -61,17 +61,4 @@
     }
 
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserializationHook() {
-      #region Backwards Compatibility
-      if (!Parameters.ContainsKey("SelectedOperator")) {
-        Parameters.Add(new LookupParameter<StringValue>("SelectedOperator", "If the TraceSelectedOperator flag is set, the name of the operator is traced in this parameter."));
-        SelectedOperatorParameter.Hidden = false;
-      }
-      if (!Parameters.ContainsKey("TraceSelectedOperator")) {
-        Parameters.Add(new ValueParameter<BoolValue>("TraceSelectedOperator", "Indicates, if the selected operator should be traced.", new BoolValue(false)));
-      }
-      #endregion
-    }
-
     [StorableConstructor]
     protected StochasticMultiBranch(bool deserializing) : base(deserializing) { }
@@ -90,4 +77,18 @@
       Parameters.Add(new ValueParameter<BoolValue>("TraceSelectedOperator", "Indicates, if the selected operator should be traced.", new BoolValue(false)));
       SelectedOperatorParameter.Hidden = false;
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      // BackwardsCompatibility3.3
+      #region Backwards compatible code, remove with 3.4
+      if (!Parameters.ContainsKey("SelectedOperator")) {
+        Parameters.Add(new LookupParameter<StringValue>("SelectedOperator", "If the TraceSelectedOperator flag is set, the name of the operator is traced in this parameter."));
+        SelectedOperatorParameter.Hidden = false;
+      }
+      if (!Parameters.ContainsKey("TraceSelectedOperator")) {
+        Parameters.Add(new ValueParameter<BoolValue>("TraceSelectedOperator", "Indicates, if the selected operator should be traced.", new BoolValue(false)));
+      }
+      #endregion
     }
 
Index: /trunk/sources/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdingDistanceAssignment.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdingDistanceAssignment.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Optimization.Operators/3.3/MultiObjective/CrowdingDistanceAssignment.cs	(revision 7351)
@@ -53,9 +53,13 @@
       Parameters.Add(new ScopeTreeLookupParameter<DoubleArray>("Qualities", "The vector of quality values."));
       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("CrowdingDistance", "Sets the crowding distance in each sub-scope."));
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
     [StorableHook(HookType.AfterDeserialization)]
-    private void AttachEventHandlers() {
+    private void AfterDeserialization() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       QualitiesParameter.DepthChanged += new EventHandler(QualitiesParameter_DepthChanged);
     }
Index: /trunk/sources/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs	(revision 7351)
@@ -121,5 +121,5 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public UserDefinedProblem()
@@ -132,10 +132,10 @@
       Parameters.Add(new ValueParameter<ItemList<IOperator>>("Operators", "The operators that are passed to the algorithm.", new ItemList<IOperator>()));
 
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
     private UserDefinedProblem(UserDefinedProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -194,5 +194,5 @@
 
     #region Helpers
-    private void AttachEventHandlers() {
+    private void RegisterEventHandlers() {
       SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged);
       EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged);
Index: /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.4/ArtificialAntProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.4/ArtificialAntProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.4/ArtificialAntProblem.cs	(revision 7351)
@@ -151,10 +151,10 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
     private ArtificialAntProblem(ArtificialAntProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -179,5 +179,5 @@
       Evaluator.QualityParameter.ActualName = "FoodEaten";
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -212,5 +212,5 @@
 
     #region Helpers
-    private void AttachEventHandlers() {
+    private void RegisterEventHandlers() {
       SolutionCreator.SymbolicExpressionTreeParameter.ActualNameChanged += new EventHandler(SolutionCreator_SymbolicExpressionTreeParameter_ActualNameChanged);
       Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/ExternalEvaluationProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/ExternalEvaluationProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/ExternalEvaluationProblem.cs	(revision 7351)
@@ -127,12 +127,7 @@
     [StorableConstructor]
     private ExternalEvaluationProblem(bool deserializing) : base(deserializing) { }
-    [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserializationHook() {
-      AttachEventHandlers();
-    }
-
     private ExternalEvaluationProblem(ExternalEvaluationProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -154,5 +149,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     [StorableHook(HookType.AfterDeserialization)]
@@ -170,4 +165,5 @@
       }
       #endregion
+      RegisterEventHandlers();
     }
 
@@ -220,5 +216,5 @@
 
     #region Helper
-    private void AttachEventHandlers() {
+    private void RegisterEventHandlers() {
       SolutionCreatorParameter.ValueChanged += new EventHandler(SolutionCreatorParameter_ValueChanged);
       EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged);
Index: /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/SolutionMessageBuilder.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/SolutionMessageBuilder.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/SolutionMessageBuilder.cs	(revision 7351)
@@ -52,5 +52,17 @@
     [StorableHook(HookType.AfterDeserialization)]
     private void AfterDeserialization() {
-      AttachEventHandlers();
+      // BackwardsCompatibility3.3
+      #region Backwards compatible code, remove with 3.4
+#pragma warning disable 0612
+      if (converters != null) {
+        if (convertersList == null) convertersList = new CheckedItemList<IItemToSolutionMessageConverter>();
+        foreach (IItemToSolutionMessageConverter c in converters)
+          convertersList.Add(c);
+        converters.Clear();
+        converters = null;
+      }
+#pragma warning restore 0612
+      #endregion
+      RegisterEventHandlers();
     }
 
@@ -58,5 +70,5 @@
       : base(original, cloner) {
       convertersList = cloner.Clone(original.convertersList);
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -75,5 +87,5 @@
       convertersList.Add(new TimeSpanValueConverter());
 
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -93,17 +105,5 @@
     }
 
-    private void AttachEventHandlers() {
-      // BackwardsCompatibility3.3
-      #region Backwards compatible code, remove with 3.4
-#pragma warning disable 0612
-      if (converters != null) {
-        if (convertersList == null) convertersList = new CheckedItemList<IItemToSolutionMessageConverter>();
-        foreach (IItemToSolutionMessageConverter c in converters)
-          convertersList.Add(c);
-        converters.Clear();
-        converters = null;
-      }
-#pragma warning restore 0612
-      #endregion
+    private void RegisterEventHandlers() {
       convertersList.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<IItemToSolutionMessageConverter>>(convertersList_Changed);
       convertersList.ItemsRemoved += new CollectionItemsChangedEventHandler<IndexedItem<IItemToSolutionMessageConverter>>(convertersList_Changed);
Index: /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.Knapsack/3.3/KnapsackProblem.cs	(revision 7351)
@@ -100,5 +100,5 @@
     private KnapsackProblem(KnapsackProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -124,5 +124,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -194,8 +194,8 @@
       if (Operators.Count == 0) InitializeOperators();
       #endregion
-      AttachEventHandlers();
-    }
-
-    private void AttachEventHandlers() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       SolutionCreator.BinaryVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_BinaryVectorParameter_ActualNameChanged);
       KnapsackCapacityParameter.ValueChanged += new EventHandler(KnapsackCapacityParameter_ValueChanged);
Index: /trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.OneMax/3.3/OnemaxProblem.cs	(revision 7351)
@@ -72,5 +72,5 @@
     private OneMaxProblem(OneMaxProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public OneMaxProblem()
@@ -88,5 +88,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -140,8 +140,8 @@
       if (Operators.Count == 0) InitializeOperators();
       #endregion
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
-    private void AttachEventHandlers() {
+    private void RegisterEventHandlers() {
       SolutionCreator.BinaryVectorParameter.ActualNameChanged += new EventHandler(SolutionCreator_BinaryVectorParameter_ActualNameChanged);
       LengthParameter.ValueChanged += new EventHandler(LengthParameter_ValueChanged);
Index: /trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/QuadraticAssignmentProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/QuadraticAssignmentProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.QuadraticAssignment/3.3/QuadraticAssignmentProblem.cs	(revision 7351)
@@ -109,5 +109,5 @@
     private QuadraticAssignmentProblem(QuadraticAssignmentProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public QuadraticAssignmentProblem()
@@ -142,5 +142,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -165,5 +165,5 @@
         Parameters.Add(new ValueParameter<DoubleMatrix>("Distances", "The distance matrix which can either be specified directly without the coordinates, or can be calculated automatically from the coordinates.", d));
       }
-      AttachEventHandlers();
+      RegisterEventHandlers();
       #endregion
     }
@@ -254,5 +254,5 @@
 
     #region Helpers
-    private void AttachEventHandlers() {
+    private void RegisterEventHandlers() {
       SolutionCreator.PermutationParameter.ActualNameChanged += new EventHandler(SolutionCreator_PermutationParameter_ActualNameChanged);
       Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
Index: /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 7351)
@@ -92,5 +92,5 @@
       strategyVectorCrossover = cloner.Clone(original.strategyVectorCrossover);
       strategyVectorManipulator = cloner.Clone(original.strategyVectorManipulator);
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public SingleObjectiveTestFunctionProblem()
@@ -115,5 +115,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
       UpdateStrategyVectorBounds();
     }
@@ -232,8 +232,8 @@
       if (Operators.Count == 0) InitializeOperators();
       #endregion
-      AttachEventHandlers();
-    }
-
-    private void AttachEventHandlers() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       ProblemSizeParameter.ValueChanged += new EventHandler(ProblemSizeParameter_ValueChanged);
       ProblemSize.ValueChanged += new EventHandler(ProblemSize_ValueChanged);
Index: /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs	(revision 7351)
@@ -100,5 +100,5 @@
     private TravelingSalesmanProblem(TravelingSalesmanProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -130,5 +130,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -197,8 +197,8 @@
       if (Operators.Count == 0) InitializeOperators();
       #endregion
-      AttachEventHandlers();
-    }
-
-    private void AttachEventHandlers() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       CoordinatesParameter.ValueChanged += new EventHandler(CoordinatesParameter_ValueChanged);
       Coordinates.ItemChanged += new EventHandler<EventArgs<int, int>>(Coordinates_ItemChanged);
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Analyzers/BestVRPSolutionAnalyzer.cs	(revision 7351)
@@ -125,6 +125,7 @@
 
     [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserializationHook() {
-      #region Backwards Compatibility
+    private void AfterDeserialization() {
+      // BackwardsCompatibility3.3
+      #region Backwards compatible code, remove with 3.4
       if (!Parameters.ContainsKey("BestKnownQuality")) {
         Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this VRP instance."));
Index: /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs	(revision 7350)
+++ /trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/VehicleRoutingProblem.cs	(revision 7351)
@@ -155,5 +155,5 @@
     private VehicleRoutingProblem(VehicleRoutingProblem original, Cloner cloner)
       : base(original, cloner) {
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
     public VehicleRoutingProblem()
@@ -187,5 +187,5 @@
 
       InitializeOperators();
-      AttachEventHandlers();
+      RegisterEventHandlers();
     }
 
@@ -355,6 +355,7 @@
     #region Helpers
     [StorableHook(HookType.AfterDeserialization)]
-    private void AfterDeserializationHook() {
-      #region Backwards Compatibility
+    private void AfterDeserialization() {
+      // BackwardsCompatibility3.3
+      #region Backwards compatible code, remove with 3.4
       if (!Parameters.ContainsKey("BestKnownSolution")) {
         Parameters.Add(new OptionalValueParameter<IVRPEncoding>("BestKnownSolution", "The best known solution of this TSP instance."));
@@ -362,8 +363,8 @@
       #endregion
 
-      AttachEventHandlers();
-    }
-
-    private void AttachEventHandlers() {
+      RegisterEventHandlers();
+    }
+
+    private void RegisterEventHandlers() {
       CoordinatesParameter.ValueChanged += new EventHandler(CoordinatesParameter_ValueChanged);
       Coordinates.ItemChanged += new EventHandler<EventArgs<int, int>>(Coordinates_ItemChanged);
