Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaEncodedSolution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaEncodedSolution.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaEncodedSolution.cs	(revision 17714)
@@ -31,5 +31,5 @@
   [Item("AlbaEncodedSolution", "Represents an Alba encoded solution for the VRP. It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
   [StorableType("8BB9735D-8371-46C1-B843-A6864B2ACDA5")]
-  public class AlbaEncodedSolution : General.PermutationEncoding {
+  public class AlbaEncodedSolution : General.PermutationEncodedSolution {
     #region IVRPEncoding Members
     public override List<Tour> GetTours() {
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaEncoding.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/AlbaEncoding.cs	(revision 17714)
@@ -31,5 +31,5 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
   [Item("AlbaEncoding", "Represents the encoding for Alba encoded solutions.")]
-  [StorableType("9ff9f959-31d2-44e5-8a5e-b122220535c2")]
+  [StorableType("42763c6b-358f-48a2-b134-075ed987d88c")]
   public sealed class AlbaEncoding : VRPEncoding {
 
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/GVR/GVREncodedSolution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/GVR/GVREncodedSolution.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/GVR/GVREncodedSolution.cs	(revision 17714)
@@ -32,5 +32,5 @@
   [Item("GVREncodedSolution", "Represents a genetic vehicle routing encoded solution of the VRP. It is implemented as described in Pereira, F.B. et al (2002). GVR: a New Genetic Representation for the Vehicle Routing Problem. AICS 2002, LNAI 2464, pp. 95-102.")]
   [StorableType("27A8F267-9865-4AEA-9ECF-88D950D81D74")]
-  public class GVREncodedSolution : TourEncoding {
+  public class GVREncodedSolution : TourEncodedSolutions {
     public override List<Tour> GetTours() {
       List<Tour> tours = new List<Tour>();
@@ -95,5 +95,5 @@
       GVREncodedSolution solution = new GVREncodedSolution(problemInstance);
 
-      TourEncoding.ConvertFrom(encoding, solution, problemInstance);
+      TourEncodedSolutions.ConvertFrom(encoding, solution, problemInstance);
 
       return solution;
@@ -103,5 +103,5 @@
       GVREncodedSolution solution = new GVREncodedSolution(problemInstance);
 
-      TourEncoding.ConvertFrom(route, solution);
+      TourEncodedSolutions.ConvertFrom(route, solution);
 
       return solution;
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/GVR/GVREncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/GVR/GVREncoding.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/GVR/GVREncoding.cs	(revision 17714)
@@ -31,6 +31,6 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.GVR {
   [Item("GVR Encoding", "Represents the genetic vehicle representation encoding for GVR encoded solutions.")]
-  [StorableType("9ff9f959-31d2-44e5-8a5e-b122220535c2")]
-  public class GVREncoding : VRPEncoding {
+  [StorableType("e868041e-0c91-4734-940a-e339ec9dca89")]
+  public sealed class GVREncoding : VRPEncoding {
 
     [StorableConstructor]
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncodedSolution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncodedSolution.cs	(revision 17714)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncodedSolution.cs	(revision 17714)
@@ -0,0 +1,86 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using HEAL.Attic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+  [Item("PermutationEncodedSolution", "Represents a base class for permutation encoded solutions of VRP.")]
+  [StorableType("070CEB2B-0A37-4EE1-87DA-1D80F6D88B4A")]
+  public abstract class PermutationEncodedSolution : Permutation, IVRPEncodedSolution {
+    #region IVRPEncoding Members
+    public abstract List<Tour> GetTours();
+
+    public virtual int GetTourIndex(Tour tour) {
+      int index = -1;
+
+      List<Tour> tours = GetTours();
+      for (int i = 0; i < tours.Count; i++) {
+        if (tours[i].IsEqual(tour)) {
+          index = i;
+          break;
+        }
+      }
+
+      return index;
+    }
+
+    public virtual int GetVehicleAssignment(int tour) {
+      return tour;
+    }
+    #endregion
+
+    [Storable]
+    protected IVRPProblemInstance ProblemInstance { get; set; }
+
+    protected PermutationEncodedSolution(PermutationEncodedSolution original, Cloner cloner)
+      : base(original, cloner) {
+      this.readOnly = original.readOnly;
+
+      if (original.ProblemInstance != null && cloner.ClonedObjectRegistered(original.ProblemInstance))
+        this.ProblemInstance = (IVRPProblemInstance)cloner.Clone(original.ProblemInstance);
+      else
+        this.ProblemInstance = original.ProblemInstance;
+    }
+
+    public PermutationEncodedSolution(Permutation permutation, IVRPProblemInstance problemInstance)
+      : base(PermutationTypes.RelativeUndirected) {
+      this.array = new int[permutation.Length];
+      for (int i = 0; i < array.Length; i++)
+        this.array[i] = permutation[i];
+
+      this.ProblemInstance = problemInstance;
+    }
+
+    [StorableConstructor]
+    protected PermutationEncodedSolution(StorableConstructorFlag _) : base(_) {
+    }
+
+    public int IndexOf(int city) {
+      return Array.IndexOf(this.array, city);
+    }
+  }
+}
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/PermutationEncoding.cs	(revision 17713)
+++ 	(revision )
@@ -1,86 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Collections.Generic;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Encodings.PermutationEncoding;
-using HEAL.Attic;
-using HeuristicLab.Problems.VehicleRouting.Interfaces;
-
-namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
-  [Item("PermutationEncoding", "Represents a base class for permutation encodings of VRP solutions.")]
-  [StorableType("070CEB2B-0A37-4EE1-87DA-1D80F6D88B4A")]
-  public abstract class PermutationEncoding : Permutation, IVRPEncodedSolution {
-    #region IVRPEncoding Members
-    public abstract List<Tour> GetTours();
-
-    public virtual int GetTourIndex(Tour tour) {
-      int index = -1;
-
-      List<Tour> tours = GetTours();
-      for (int i = 0; i < tours.Count; i++) {
-        if (tours[i].IsEqual(tour)) {
-          index = i;
-          break;
-        }
-      }
-
-      return index;
-    }
-
-    public virtual int GetVehicleAssignment(int tour) {
-      return tour;
-    }
-    #endregion
-
-    [Storable]
-    protected IVRPProblemInstance ProblemInstance { get; set; }
-
-    protected PermutationEncoding(PermutationEncoding original, Cloner cloner)
-      : base(original, cloner) {
-      this.readOnly = original.readOnly;
-
-      if (original.ProblemInstance != null && cloner.ClonedObjectRegistered(original.ProblemInstance))
-        this.ProblemInstance = (IVRPProblemInstance)cloner.Clone(original.ProblemInstance);
-      else
-        this.ProblemInstance = original.ProblemInstance;
-    }
-
-    public PermutationEncoding(Permutation permutation, IVRPProblemInstance problemInstance)
-      : base(PermutationTypes.RelativeUndirected) {
-      this.array = new int[permutation.Length];
-      for (int i = 0; i < array.Length; i++)
-        this.array[i] = permutation[i];
-
-      this.ProblemInstance = problemInstance;
-    }
-
-    [StorableConstructor]
-    protected PermutationEncoding(StorableConstructorFlag _) : base(_) {
-    }
-
-    public int IndexOf(int city) {
-      return Array.IndexOf(this.array, city);
-    }
-  }
-}
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncodedSolutions.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncodedSolutions.cs	(revision 17714)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncodedSolutions.cs	(revision 17714)
@@ -0,0 +1,142 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Collections.Generic;
+using System.Drawing;
+using HEAL.Attic;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Problems.VehicleRouting.Interfaces;
+
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
+  [Item("TourEncodedSolutions", "Represents a base class for tour encoded solutions of VRP.")]
+  [StorableType("FC5DBAE6-05D9-4C55-AA85-6E3C2330700F")]
+  public abstract class TourEncodedSolutions : Item, IVRPEncodedSolution {
+    public static new Image StaticItemImage {
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Class; }
+    }
+
+    #region IVRPEncoding Members
+    public virtual void Repair() {
+      List<Tour> toBeRemoved = new List<Tour>();
+      foreach (Tour tour in Tours) {
+        if (tour.Stops.Count == 0)
+          toBeRemoved.Add(tour);
+      }
+
+      foreach (Tour tour in toBeRemoved)
+        Tours.Remove(tour);
+
+      while (Tours.Count > ProblemInstance.Vehicles.Value) {
+        Tour tour = Tours[Tours.Count - 1];
+        Tours[Tours.Count - 2].Stops.AddRange(tour.Stops);
+
+        Tours.Remove(tour);
+      }
+    }
+
+    public virtual List<Tour> GetTours() {
+      List<Tour> result = new List<Tour>();
+      foreach (Tour tour in Tours)
+        result.Add(tour.Clone() as Tour);
+
+      return result;
+    }
+
+    public int GetTourIndex(Tour tour) {
+      int index = -1;
+
+      for (int i = 0; i < Tours.Count; i++) {
+        if (Tours[i].IsEqual(tour)) {
+          index = i;
+          break;
+        }
+      }
+
+      return index;
+    }
+
+    public virtual int GetVehicleAssignment(int tour) {
+      return tour;
+    }
+
+    public int Cities {
+      get {
+        int cities = 0;
+
+        foreach (Tour tour in Tours) {
+          cities += tour.Stops.Count;
+        }
+
+        return cities;
+      }
+    }
+    #endregion
+
+    [Storable]
+    public ItemList<Tour> Tours { get; set; }
+
+    [Storable]
+    protected IVRPProblemInstance ProblemInstance { get; set; }
+
+    public TourEncodedSolutions(IVRPProblemInstance problemInstance) {
+      Tours = new ItemList<Tour>();
+
+      ProblemInstance = problemInstance;
+    }
+
+    [StorableConstructor]
+    protected TourEncodedSolutions(StorableConstructorFlag _) : base(_) {
+    }
+
+    protected TourEncodedSolutions(TourEncodedSolutions original, Cloner cloner)
+      : base(original, cloner) {
+      this.Tours = (ItemList<Tour>)cloner.Clone(original.Tours);
+      if (original.ProblemInstance != null && cloner.ClonedObjectRegistered(original.ProblemInstance))
+        this.ProblemInstance = (IVRPProblemInstance)cloner.Clone(original.ProblemInstance);
+      else
+        this.ProblemInstance = original.ProblemInstance;
+    }
+
+    public static void ConvertFrom(IVRPEncodedSolution encoding, TourEncodedSolutions solution, IVRPProblemInstance problemInstance) {
+      solution.Tours = new ItemList<Tour>(encoding.GetTours());
+      solution.Repair();
+    }
+
+    public static void ConvertFrom(List<int> route, TourEncodedSolutions solution) {
+      solution.Tours = new ItemList<Tour>();
+
+      Tour tour = new Tour();
+      for (int i = 0; i < route.Count; i++) {
+        if (route[i] <= 0) {
+          if (tour.Stops.Count > 0) {
+            solution.Tours.Add(tour);
+            tour = new Tour();
+          }
+        } else {
+          tour.Stops.Add(route[i]);
+        }
+      }
+
+      solution.Repair();
+    }
+  }
+}
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncoding.cs	(revision 17713)
+++ 	(revision )
@@ -1,142 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.Collections.Generic;
-using System.Drawing;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HEAL.Attic;
-using HeuristicLab.Problems.VehicleRouting.Interfaces;
-
-namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
-  [Item("TourEncoding", "Represents a base class for tour encodings of VRP solutions.")]
-  [StorableType("FC5DBAE6-05D9-4C55-AA85-6E3C2330700F")]
-  public abstract class TourEncoding : Item, IVRPEncodedSolution {
-    public static new Image StaticItemImage {
-      get { return HeuristicLab.Common.Resources.VSImageLibrary.Class; }
-    }
-
-    #region IVRPEncoding Members
-    public virtual void Repair() {
-      List<Tour> toBeRemoved = new List<Tour>();
-      foreach (Tour tour in Tours) {
-        if (tour.Stops.Count == 0)
-          toBeRemoved.Add(tour);
-      }
-
-      foreach (Tour tour in toBeRemoved)
-        Tours.Remove(tour);
-
-      while (Tours.Count > ProblemInstance.Vehicles.Value) {
-        Tour tour = Tours[Tours.Count - 1];
-        Tours[Tours.Count - 2].Stops.AddRange(tour.Stops);
-
-        Tours.Remove(tour);
-      }
-    }
-
-    public virtual List<Tour> GetTours() {
-      List<Tour> result = new List<Tour>();
-      foreach (Tour tour in Tours)
-        result.Add(tour.Clone() as Tour);
-
-      return result;
-    }
-
-    public int GetTourIndex(Tour tour) {
-      int index = -1;
-
-      for (int i = 0; i < Tours.Count; i++) {
-        if (Tours[i].IsEqual(tour)) {
-          index = i;
-          break;
-        }
-      }
-
-      return index;
-    }
-
-    public virtual int GetVehicleAssignment(int tour) {
-      return tour;
-    }
-
-    public int Cities {
-      get {
-        int cities = 0;
-
-        foreach (Tour tour in Tours) {
-          cities += tour.Stops.Count;
-        }
-
-        return cities;
-      }
-    }
-    #endregion
-
-    [Storable]
-    public ItemList<Tour> Tours { get; set; }
-
-    [Storable]
-    protected IVRPProblemInstance ProblemInstance { get; set; }
-
-    public TourEncoding(IVRPProblemInstance problemInstance) {
-      Tours = new ItemList<Tour>();
-
-      ProblemInstance = problemInstance;
-    }
-
-    [StorableConstructor]
-    protected TourEncoding(StorableConstructorFlag _) : base(_) {
-    }
-
-    protected TourEncoding(TourEncoding original, Cloner cloner)
-      : base(original, cloner) {
-      this.Tours = (ItemList<Tour>)cloner.Clone(original.Tours);
-      if (original.ProblemInstance != null && cloner.ClonedObjectRegistered(original.ProblemInstance))
-        this.ProblemInstance = (IVRPProblemInstance)cloner.Clone(original.ProblemInstance);
-      else
-        this.ProblemInstance = original.ProblemInstance;
-    }
-
-    public static void ConvertFrom(IVRPEncodedSolution encoding, TourEncoding solution, IVRPProblemInstance problemInstance) {
-      solution.Tours = new ItemList<Tour>(encoding.GetTours());
-      solution.Repair();
-    }
-
-    public static void ConvertFrom(List<int> route, TourEncoding solution) {
-      solution.Tours = new ItemList<Tour>();
-
-      Tour tour = new Tour();
-      for (int i = 0; i < route.Count; i++) {
-        if (route[i] <= 0) {
-          if (tour.Stops.Count > 0) {
-            solution.Tours.Add(tour);
-            tour = new Tour();
-          }
-        } else {
-          tour.Stops.Add(route[i]);
-        }
-      }
-
-      solution.Repair();
-    }
-  }
-}
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/MultiVRPEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/MultiVRPEncoding.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/MultiVRPEncoding.cs	(revision 17714)
@@ -29,8 +29,8 @@
 using HeuristicLab.Problems.VehicleRouting.Interfaces;
 
-namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
+namespace HeuristicLab.Problems.VehicleRouting.Encodings {
   [Item("MultiVRPEncoding", "Represents the combination of all encodings from the VRP.")]
-  [StorableType("9ff9f959-31d2-44e5-8a5e-b122220535c2")]
-  public class MultiVRPEncoding : VRPEncoding {
+  [StorableType("1ca6f16c-ea69-4a69-b03c-168d7285f1b7")]
+  public sealed class MultiVRPEncoding : VRPEncoding {
 
     [StorableConstructor]
@@ -58,5 +58,5 @@
     }
     protected override void DiscoverOperators() {
-      var assembly = typeof(IAlbaOperator).Assembly;
+      var assembly = typeof(IVRPOperator).Assembly;
       var discoveredTypes = ApplicationManager.Manager.GetTypes(encodingSpecificOperatorTypes, assembly, true, false, false);
       var operators = discoveredTypes.Select(t => (IOperator)Activator.CreateInstance(t));
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/PotvinEncodedSolution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/PotvinEncodedSolution.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/PotvinEncodedSolution.cs	(revision 17714)
@@ -32,5 +32,5 @@
   [Item("PotvinEncodedSolution", "Represents a potvin encoded solution of the VRP. It is implemented as described in Potvin, J.-Y. and Bengio, S. (1996). The Vehicle Routing Problem with Time Windows - Part II: Genetic Search. INFORMS Journal of Computing, 8:165–172.")]
   [StorableType("A998C6C9-BCB3-46B7-B035-D7E76BE70184")]
-  public class PotvinEncodedSolution : TourEncoding {
+  public class PotvinEncodedSolution : TourEncodedSolutions {
     [Storable]
     public List<int> Unrouted { get; set; }
@@ -96,5 +96,5 @@
       PotvinEncodedSolution solution = new PotvinEncodedSolution(instance);
 
-      TourEncoding.ConvertFrom(encoding, solution, instance);
+      TourEncodedSolutions.ConvertFrom(encoding, solution, instance);
 
       List<int> vehicles = new List<int>();
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/PotvinEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/PotvinEncoding.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/PotvinEncoding.cs	(revision 17714)
@@ -31,6 +31,6 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
   [Item("Potvin Encoding", "Represents the Potvin encoding for Potvin encoded solutions.")]
-  [StorableType("9ff9f959-31d2-44e5-8a5e-b122220535c2")]
-  public class PotvinEncoding : VRPEncoding {
+  [StorableType("4a586a73-7ca9-4abd-b017-d5c22af8cff5")]
+  public sealed class PotvinEncoding : VRPEncoding {
 
     [StorableConstructor]
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/PrinsEncodedSolution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/PrinsEncodedSolution.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/PrinsEncodedSolution.cs	(revision 17714)
@@ -32,5 +32,5 @@
   [Item("PrinsEncodedSolution", "Represents a Prins encoded solution of the VRP. It is implemented as described in Prins, C. (2004). A simple and effective evolutionary algorithm for the vehicle routing problem. Computers & Operations Research, 12:1985-2002.")]
   [StorableType("A0E1EBC1-C0F5-4CD5-9279-1A669C6633CD")]
-  public class PrinsEncodedSolution : General.PermutationEncoding {
+  public class PrinsEncodedSolution : General.PermutationEncodedSolution {
     #region IVRPEncoding Members
     public override int GetTourIndex(Tour tour) {
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/PrinsEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/PrinsEncoding.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/PrinsEncoding.cs	(revision 17714)
@@ -31,6 +31,6 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Prins {
   [Item("Prins Encoding", "Represents the Prins encoding for Prins encoded solutions.")]
-  [StorableType("9ff9f959-31d2-44e5-8a5e-b122220535c2")]
-  public class PrinsEncoding : VRPEncoding {
+  [StorableType("f2482ee3-e6b3-434e-a921-ed130200470f")]
+  public sealed class PrinsEncoding : VRPEncoding {
 
     [StorableConstructor]
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/ZhuEncodedSolution.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/ZhuEncodedSolution.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/ZhuEncodedSolution.cs	(revision 17714)
@@ -31,5 +31,5 @@
   [Item("ZhuEncodedSolution", "Represents a Zhu encoded solution of the VRP. It is implemented as described in Zhu, K.Q. (2000). A New Genetic Algorithm For VRPTW. Proceedings of the International Conference on Artificial Intelligence.")]
   [StorableType("1A5F5A1D-E4F5-4477-887E-45FC488BC459")]
-  public class ZhuEncodedSolution : General.PermutationEncoding {
+  public class ZhuEncodedSolution : General.PermutationEncodedSolution {
     #region IVRPEncoding Members
     public override int GetTourIndex(Tour tour) {
Index: branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/ZhuEncoding.cs
===================================================================
--- branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/ZhuEncoding.cs	(revision 17713)
+++ branches/2521_ProblemRefactoring/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/ZhuEncoding.cs	(revision 17714)
@@ -31,6 +31,6 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Zhu {
   [Item("Zhu Encoding", "Represents the Zhu encoding for Zhu encoded solutions.")]
-  [StorableType("9ff9f959-31d2-44e5-8a5e-b122220535c2")]
-  public class ZhuEncoding : VRPEncoding {
+  [StorableType("d02d7532-4a99-41e9-9a97-455792404507")]
+  public sealed class ZhuEncoding : VRPEncoding {
 
     [StorableConstructor]
