Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/AlbaEncoding.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/AlbaEncoding.cs	(revision 4218)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/AlbaEncoding.cs	(revision 4230)
@@ -26,4 +26,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Collections.Generic;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
@@ -35,27 +36,25 @@
     
     #region IVRPEncoding Members
-    public ItemList<Tour> Tours {
-      get {
-        ItemList<Tour> result = new ItemList<Tour>();
-        
-        Tour tour = new Tour();
-        for (int i = 0; i < this.array.Length; i++) {
-          if (this.array[i] >= cities) {
-            if (tour.Cities.Count > 0) {
-              result.Add(tour);
+    public List<Tour> GetTours() {
+      List<Tour> result = new List<Tour>();
 
-              tour = new Tour();
-            }
-          } else {
-            tour.Cities.Add(this.array[i] + 1);
+      Tour tour = new Tour();
+      for (int i = 0; i < this.array.Length; i++) {
+        if (this.array[i] >= cities) {
+          if (tour.Cities.Count > 0) {
+            result.Add(tour);
+
+            tour = new Tour();
           }
+        } else {
+          tour.Cities.Add(this.array[i] + 1);
         }
+      }
 
-        if (tour.Cities.Count > 0) {
-          result.Add(tour);
-        }
+      if (tour.Cities.Count > 0) {
+        result.Add(tour);
+      }
 
-        return result;
-      }
+      return result;
     }
 
@@ -93,5 +92,5 @@
 
     public static AlbaEncoding ConvertFrom(IVRPEncoding encoding, int vehicles) {
-      ItemList<Tour> tours = encoding.Tours;
+      List<Tour> tours = encoding.GetTours();
 
       int cities = 0;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/IntraRouteInversionManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/IntraRouteInversionManipulator.cs	(revision 4218)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/IntraRouteInversionManipulator.cs	(revision 4230)
@@ -56,5 +56,5 @@
 
       List<Tour> validTours = new List<Tour>();
-      foreach (Tour tour in individual.Tours) {
+      foreach (Tour tour in individual.GetTours()) {
         if (tour.Cities.Count >= 4)
           validTours.Add(tour);
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/LambdaInterchangeManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/LambdaInterchangeManipulator.cs	(revision 4218)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/LambdaInterchangeManipulator.cs	(revision 4230)
@@ -26,4 +26,5 @@
 using HeuristicLab.Data;
 using System;
+using System.Collections.Generic;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
@@ -45,5 +46,7 @@
     public static void Apply(AlbaEncoding individual, int tour1Index, int position1, int length1, 
       int tour2Index, int position2, int length2) {
-      Tour tour1 = individual.Tours[tour1Index];
+      List<Tour> tours = individual.GetTours();
+
+      Tour tour1 = tours[tour1Index];
       int tour1Start = -1;
       for (int i = 0; i < individual.Length; i++) {
@@ -54,5 +57,5 @@
       }
 
-      Tour tour2 = individual.Tours[tour2Index];
+      Tour tour2 = tours[tour2Index];
       int tour2Start = -1;
       for (int i = 0; i < individual.Length; i++) {
@@ -96,13 +99,14 @@
 
     protected override void Manipulate(IRandom rand, AlbaEncoding individual) {
+      List<Tour> tours = individual.GetTours();
       int lambda = LambdaParameter.Value.Value;
-      
-      int route1Index = rand.Next(individual.Tours.Count);
-      Tour route1 = individual.Tours[route1Index];
 
-      int route2Index = rand.Next(individual.Tours.Count - 1);
+      int route1Index = rand.Next(tours.Count);
+      Tour route1 = tours[route1Index];
+
+      int route2Index = rand.Next(tours.Count - 1);
       if (route2Index >= route1Index)
         route2Index += 1;
-      Tour route2 = individual.Tours[route2Index];
+      Tour route2 = tours[route2Index];
 
       int length1 = rand.Next(Math.Min(lambda + 1, route1.Cities.Count + 1));
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/StochasticIntraRouteInversionSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/StochasticIntraRouteInversionSingleMoveGenerator.cs	(revision 4218)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/IntraRouteInversion/StochasticIntraRouteInversionSingleMoveGenerator.cs	(revision 4230)
@@ -59,5 +59,5 @@
 
       List<Tour> validTours = new List<Tour>();
-      foreach (Tour tour in individual.Tours) {
+      foreach (Tour tour in individual.GetTours()) {
         if (tour.Cities.Count >= 4)
           validTours.Add(tour);
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/ExhaustiveLambdaInterchangeMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/ExhaustiveLambdaInterchangeMoveGenerator.cs	(revision 4218)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/ExhaustiveLambdaInterchangeMoveGenerator.cs	(revision 4230)
@@ -42,8 +42,10 @@
       List<LambdaInterchangeMove> moves = new List<LambdaInterchangeMove>();
 
-      for (int tour1Index = 0; tour1Index < individual.Tours.Count; tour1Index++) {
-        Tour tour1 = individual.Tours[tour1Index];
-        for (int tour2Index = tour1Index + 1; tour2Index < individual.Tours.Count; tour2Index++) {
-          Tour tour2 = individual.Tours[tour2Index];
+      List<Tour> tours = individual.GetTours();
+
+      for (int tour1Index = 0; tour1Index < tours.Count; tour1Index++) {
+        Tour tour1 = tours[tour1Index];
+        for (int tour2Index = tour1Index + 1; tour2Index < tours.Count; tour2Index++) {
+          Tour tour2 = tours[tour2Index];
 
           for (int length1 = 0; length1 <= Math.Min(lambda, tour1.Cities.Count); length1++) {
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/StochasticLambdaInterchangeSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/StochasticLambdaInterchangeSingleMoveGenerator.cs	(revision 4218)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/LambdaInterchange/StochasticLambdaInterchangeSingleMoveGenerator.cs	(revision 4230)
@@ -55,11 +55,13 @@
 
     public static LambdaInterchangeMove Apply(AlbaEncoding individual, int cities, int lambda, IRandom rand) {
-      int route1Index = rand.Next(individual.Tours.Count);
-      Tour route1 = individual.Tours[route1Index];
+      List<Tour> tours = individual.GetTours();
 
-      int route2Index = rand.Next(individual.Tours.Count - 1);
+      int route1Index = rand.Next(tours.Count);
+      Tour route1 = tours[route1Index];
+
+      int route2Index = rand.Next(tours.Count - 1);
       if (route2Index >= route1Index)
         route2Index += 1;
-      Tour route2 = individual.Tours[route2Index];
+      Tour route2 = tours[route2Index];
 
       int length1 = rand.Next(Math.Min(lambda + 1, route1.Cities.Count + 1));
