Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Creators/AlbaPushForwardInsertionCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Creators/AlbaPushForwardInsertionCreator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Creators/AlbaPushForwardInsertionCreator.cs	(revision 4154)
@@ -28,4 +28,5 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaCrossover.cs	(revision 4154)
@@ -28,24 +28,13 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
   [StorableClass]
-  public abstract class AlbaCrossover : VRPCrossover {
-    public ILookupParameter<IntValue> VehiclesParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
-    }
-
-    public AlbaCrossover()
-      : base() {
-        Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
-    }
-    
+  public abstract class AlbaCrossover : VRPCrossover {    
     protected virtual void Crossover() {
     }
 
     public override IOperation Apply() {
-      int cities = 0;
-
       ItemArray<IVRPEncoding> parents = new ItemArray<IVRPEncoding>(ParentsParameter.ActualValue.Length);
       for (int i = 0; i < ParentsParameter.ActualValue.Length; i++) {
         IVRPEncoding solution = ParentsParameter.ActualValue[i];
-        cities = solution.Cities;
+
         if (!(solution is AlbaEncoding)) {
           parents[i] = AlbaEncoding.ConvertFrom(solution, VehiclesParameter.ActualValue.Value);
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs	(revision 4154)
@@ -39,6 +39,4 @@
 
     protected override void Crossover() {
-      int cities = ParentsParameter.ActualValue[0].Cities;
-
       PermutationCrossoverParameter.ActualValue.ParentsParameter.ActualName = ParentsParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
@@ -51,5 +49,5 @@
         ExecutionContext.Scope.Variables.Remove(childName);
 
-        ChildParameter.ActualValue = new AlbaEncoding(permutation, cities);
+        ChildParameter.ActualValue = new AlbaEncoding(permutation, Cities);
       } else
         ChildParameter.ActualValue = null;
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaManipulator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Manipulators/AlbaManipulator.cs	(revision 4154)
@@ -28,14 +28,5 @@
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
   [StorableClass]
-  public abstract class AlbaManipulator : VRPManipulator {
-    public ILookupParameter<IntValue> VehiclesParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
-    }
-
-    public AlbaManipulator()
-      : base() {
-        Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
-    }
-    
+  public abstract class AlbaManipulator : VRPManipulator {    
     protected virtual void Manipulate() {
     }
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/AlbaMoveOperator.cs	(revision 4154)
@@ -29,14 +29,5 @@
   [Item("AlbaMoveOperator", "A move operator for an alba VRP representation.")]
   [StorableClass]
-  public abstract class AlbaMoveOperator : VRPMoveOperator {
-    public ILookupParameter<IntValue> VehiclesParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
-    }
-
-    public AlbaMoveOperator()
-      : base() {
-      Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
-    }
-    
+  public abstract class AlbaMoveOperator : VRPMoveOperator {    
     [Storable]
     protected abstract IPermutationMoveOperator PermutationMoveOperatorParameter { get; set; }
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs	(revision 4154)
@@ -82,5 +82,4 @@
       Permutation permutation = VRPSolutionParameter.ActualValue as Permutation;
       string moveName = TranslocationMoveGeneratorParameter.ActualValue.TranslocationMoveParameter.Name;
-      int cities = VRPSolutionParameter.ActualValue.Cities;
 
       List<Scope> toBeDeleted = new List<Scope>();
@@ -93,7 +92,7 @@
             if (move.Index1 - 1 >= 0 &&
               move.Index3 - 1 >= 0)
-              criteria1 = (permutation[move.Index1] >= cities &&
-                permutation[move.Index1 - 1] >= cities &&
-                permutation[move.Index3 - 1] >= cities);
+              criteria1 = (permutation[move.Index1] >= Cities &&
+                permutation[move.Index1 - 1] >= Cities &&
+                permutation[move.Index3 - 1] >= Cities);
 
             int index3 = move.Index3 + (move.Index2 - move.Index1) + 1;
@@ -101,7 +100,7 @@
             if (move.Index2 + 1 < permutation.Length &&
               index3 < permutation.Length)
-              criteria2 = (permutation[move.Index2] >= cities &&
-                permutation[move.Index2 + 1] >= cities &&
-                permutation[index3] >= cities);
+              criteria2 = (permutation[move.Index2] >= Cities &&
+                permutation[move.Index2 + 1] >= Cities &&
+                permutation[index3] >= Cities);
 
             if (criteria1 && criteria2)
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/IntListRepresentationCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/IntListRepresentationCreator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/IntListRepresentationCreator.cs	(revision 4154)
@@ -26,6 +26,7 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Collections.Generic;
+using HeuristicLab.Problems.VehicleRouting.Encodings;
 
-namespace HeuristicLab.Problems.VehicleRouting {
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
   [StorableClass]
   public abstract class IntListRepresentationCreator : VRPCreator {
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/PushForwardInsertionCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/PushForwardInsertionCreator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/General/PushForwardInsertionCreator.cs	(revision 4154)
@@ -29,5 +29,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.VehicleRouting {
+namespace HeuristicLab.Problems.VehicleRouting.Encodings.General {
   [StorableClass]
   public abstract class PushForwardCreator : IntListRepresentationCreator, IStochasticOperator {
@@ -199,5 +199,5 @@
        *-----------------------------------------------------------------------------
        */
-      for (int i = 1; i <= CitiesParameter.ActualValue.Value; i++) {
+      for (int i = 1; i <= Cities; i++) {
         distance = Distance(i, 0);
         if (CoordinatesParameter.ActualValue[i, 0] < x0) distance = -distance;
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Creators/PotvinPushForwardInsertionCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Creators/PotvinPushForwardInsertionCreator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Creators/PotvinPushForwardInsertionCreator.cs	(revision 4154)
@@ -28,4 +28,5 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPCreator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPCreator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPCreator.cs	(revision 4154)
@@ -26,7 +26,7 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
-namespace HeuristicLab.Problems.VehicleRouting {
+namespace HeuristicLab.Problems.VehicleRouting.Encodings {
   [StorableClass]
-  public abstract class VRPCreator : SingleSuccessorOperator, IVRPCreator {
+  public abstract class VRPCreator : VRPOperator, IVRPCreator {
     public override bool CanChangeName {
       get { return false; }
@@ -34,51 +34,14 @@
 
     #region IVRPCreator Members
-    public IValueLookupParameter<IntValue> CitiesParameter {
-      get { return (IValueLookupParameter<IntValue>)Parameters["Cities"]; }
-    }
     public ILookupParameter<IVRPEncoding> VRPSolutionParameter {
       get { return (ILookupParameter<IVRPEncoding>)Parameters["VRPSolution"]; }
     }
-    public ILookupParameter<DoubleMatrix> CoordinatesParameter {
-      get { return (ILookupParameter<DoubleMatrix>)Parameters["Coordinates"]; }
-    }
-    public ILookupParameter<DoubleMatrix> DistanceMatrixParameter {
-      get { return (ILookupParameter<DoubleMatrix>)Parameters["DistanceMatrix"]; }
-    }
-    public ILookupParameter<BoolValue> UseDistanceMatrixParameter {
-      get { return (ILookupParameter<BoolValue>)Parameters["UseDistanceMatrix"]; }
-    }
-    public ILookupParameter<IntValue> VehiclesParameter {
-      get { return (ILookupParameter<IntValue>)Parameters["Vehicles"]; }
-    }
-    public ILookupParameter<DoubleValue> CapacityParameter {
-      get { return (ILookupParameter<DoubleValue>)Parameters["Capacity"]; }
-    }
-    public ILookupParameter<DoubleArray> DemandParameter {
-      get { return (ILookupParameter<DoubleArray>)Parameters["Demand"]; }
-    }
-    public ILookupParameter<DoubleArray> ReadyTimeParameter {
-      get { return (ILookupParameter<DoubleArray>)Parameters["ReadyTime"]; }
-    }
-    public ILookupParameter<DoubleArray> DueTimeParameter {
-      get { return (ILookupParameter<DoubleArray>)Parameters["DueTime"]; }
-    }
-    public ILookupParameter<DoubleArray> ServiceTimeParameter {
-      get { return (ILookupParameter<DoubleArray>)Parameters["ServiceTime"]; }
-    }
+    
+      public IValueLookupParameter<IntValue> CitiesParameter {
+	      get { return (IValueLookupParameter<IntValue>)Parameters["Cities"]; }
+	    }
 
     public VRPCreator()
       : base() {
-      Parameters.Add(new ValueLookupParameter<IntValue>("Cities", "The city count."));
-      Parameters.Add(new LookupParameter<IntValue>("Vehicles", "The vehicles count."));
-      Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The coordinates of the cities."));
-      Parameters.Add(new LookupParameter<DoubleMatrix>("DistanceMatrix", "The matrix which contains the distances between the cities."));
-      Parameters.Add(new LookupParameter<BoolValue>("UseDistanceMatrix", "True if a distance matrix should be calculated and used for evaluation, otherwise false."));
-      Parameters.Add(new LookupParameter<DoubleValue>("Capacity", "The capacity of each vehicle."));
-      Parameters.Add(new LookupParameter<DoubleArray>("Demand", "The demand of each customer."));
-      Parameters.Add(new LookupParameter<DoubleArray>("ReadyTime", "The ready time of each customer."));
-      Parameters.Add(new LookupParameter<DoubleArray>("DueTime", "The due time of each customer."));
-      Parameters.Add(new LookupParameter<DoubleArray>("ServiceTime", "The service time of each customer."));
-
       Parameters.Add(new LookupParameter<IVRPEncoding>("VRPSolution", "The new VRP solution."));
     }
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPCrossover.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPCrossover.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPCrossover.cs	(revision 4154)
@@ -26,5 +26,5 @@
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings {
-  public abstract class VRPCrossover : SingleSuccessorOperator, IVRPCrossover {
+  public abstract class VRPCrossover : VRPOperator, IVRPCrossover {
     #region IVRPCrossover Members
 
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPManipulator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPManipulator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPManipulator.cs	(revision 4154)
@@ -26,5 +26,5 @@
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings {
-  public abstract class VRPManipulator : SingleSuccessorOperator, IVRPManipulator {
+  public abstract class VRPManipulator : VRPOperator, IVRPManipulator {
     #region IVRPManipulator Members
 
Index: trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPMoveOperator.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPMoveOperator.cs	(revision 4150)
+++ trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/VRPMoveOperator.cs	(revision 4154)
@@ -26,5 +26,5 @@
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings {
-  public abstract class VRPMoveOperator : SingleSuccessorOperator, IVRPMoveOperator {
+  public abstract class VRPMoveOperator : VRPOperator, IVRPMoveOperator {
     #region IVRPManipulator Members
 
