Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/BinUtilizationEvaluator.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/BinUtilizationEvaluator.cs	(revision 14051)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/BinUtilizationEvaluator.cs	(revision 14051)
@@ -0,0 +1,102 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Data;
+using HeuristicLab.Common;
+using HeuristicLab.Encodings.PackingEncoding;
+
+namespace HeuristicLab.Problems.BinPacking {
+  [Item("Bin-Utilization Evaluator", "<Description missing> Found in Lee:2010")] // TODO
+  [StorableClass]
+  public abstract class BinUtilizationEvaluator<D, B, I> : EvaluatorBase<D, B, I>
+    where D : class, IPackingPosition
+    where B : PackingShape<D>
+    where I : PackingShape<D>, IPackingItem {
+
+    [StorableConstructor]
+    protected BinUtilizationEvaluator(bool deserializing) : base(deserializing) { }
+    protected BinUtilizationEvaluator(BinUtilizationEvaluator<D, B, I> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public BinUtilizationEvaluator() : base() { }
+
+    protected override DoubleValue Evaluate() {
+      DoubleValue quality = new DoubleValue(0);
+
+      IPackingPlan plan = PackingPlanParameter.ActualValue;
+      B binMeasure = PackingBinMeasuresParameter.ActualValue;
+      ItemList<I> itemMeasures = PackingItemMeasuresParameter.ActualValue;
+
+      // TODO: check and remove code
+
+      //Check if data is valid
+      //if (plan.PackingItemPositions.Count != itemMeasures.Count)
+      //  throw new Exception("ERROR: ItemMeasures.count does not match packingPosition.count");
+
+
+      ////Check if any items are overlapping or not contained in their bins
+      //bool itemPositionsAreValid = !HasOverlappingOrNotContainedItems(plan.PackingItemPositions, binMeasure, itemMeasures, nrOfBins);
+
+
+
+      //if (itemPositionsAreValid)
+      return CalculateBinUtilization(plan as PackingPlan<D, B, I>);
+
+      //return quality;
+    }
+
+    public static DoubleValue CalculateBinUtilization(PackingPlan<D, B, I> plan) {
+      int nrOfBins = plan.NrOfBins;
+      double result = 0;
+
+      //for (int i = 0; i < nrOfBins; i++) {
+      //  double usableSpace = plan.GetPackingBinMeasuresForBinNr(i).MultipliedMeasures;
+      //  var indexes = plan.PackingItemPositions.Select((Value, Index) => new { Value, Index }).Where(s => s.Value.Value.AssignedBin == i).Select(s => s.Index);
+      //  var packedItemsInThisBin = plan.PackingItemMeasures.Select((Value, Index) => new { Value, Index }).Where(s => indexes.Contains(s.Index));
+      //  double usedSpaceInThisBin = packedItemsInThisBin.Select(s => s.Value.MultipliedMeasures).Sum();
+      //  result += (usedSpaceInThisBin / usableSpace);
+      //}
+
+      //result = result / nrOfBins;
+      //return new DoubleValue (result);
+
+      double totalUsedSpace = 0;
+      double totalUsableSpace = 0;
+
+      for (int i = 0; i < nrOfBins; i++) {
+        double usableSpace = plan.BinPackings[i].BinMeasures.Volume;
+        //var indexes = plan.PackingItemPositions.Select((Value, Index) => new { Value, Index }).Where(s => s.Value.Value.AssignedBin == i).Select(s => s.Index);
+        //var packedItemsInThisBin = plan.PackingItemMeasures.Select((Value, Index) => new { Value, Index }).Where(s => indexes.Contains(s.Index));
+        //double usedSpaceInThisBin = packedItemsInThisBin.Select(s => s.Value.MultipliedMeasures).Sum();
+        //result += (usedSpaceInThisBin / usableSpace);
+        totalUsableSpace += usableSpace;
+        //totalUsedSpace += usedSpaceInThisBin;
+        totalUsedSpace += plan.BinPackings[i].PackingDensity * usableSpace;
+      }
+
+      result = totalUsedSpace / totalUsableSpace;
+      return new DoubleValue(result);
+    }
+  }
+}
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/BinUtilizationRegularIdenticalBinEvaluator.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/BinUtilizationRegularIdenticalBinEvaluator.cs	(revision 14050)
+++ 	(revision )
@@ -1,102 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Data;
-using HeuristicLab.Common;
-using HeuristicLab.Encodings.PackingEncoding;
-
-namespace HeuristicLab.Problems.BinPacking {
-  [Item("Bin-Utilization Evaluator", "<Description missing> Found in Lee:2010")] // TODO
-  [StorableClass]
-  public abstract class BinUtilizationEvaluator<D, B, I> : EvaluatorBase<D, B, I>
-    where D : class, IPackingPosition
-    where B : PackingShape<D>
-    where I : PackingShape<D>, IPackingItem {
-
-    [StorableConstructor]
-    protected BinUtilizationEvaluator(bool deserializing) : base(deserializing) { }
-    protected BinUtilizationEvaluator(BinUtilizationEvaluator<D, B, I> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public BinUtilizationEvaluator() : base() { }
-
-    protected override DoubleValue Evaluate() {
-      DoubleValue quality = new DoubleValue(0);
-
-      IPackingPlan plan = PackingPlanParameter.ActualValue;
-      B binMeasure = PackingBinMeasuresParameter.ActualValue;
-      ItemList<I> itemMeasures = PackingItemMeasuresParameter.ActualValue;
-
-      // TODO: check and remove code
-
-      //Check if data is valid
-      //if (plan.PackingItemPositions.Count != itemMeasures.Count)
-      //  throw new Exception("ERROR: ItemMeasures.count does not match packingPosition.count");
-
-
-      ////Check if any items are overlapping or not contained in their bins
-      //bool itemPositionsAreValid = !HasOverlappingOrNotContainedItems(plan.PackingItemPositions, binMeasure, itemMeasures, nrOfBins);
-
-
-
-      //if (itemPositionsAreValid)
-      return CalculateBinUtilization(plan as PackingPlan<D, B, I>);
-
-      //return quality;
-    }
-
-    public static DoubleValue CalculateBinUtilization(PackingPlan<D, B, I> plan) {
-      int nrOfBins = plan.NrOfBins;
-      double result = 0;
-
-      //for (int i = 0; i < nrOfBins; i++) {
-      //  double usableSpace = plan.GetPackingBinMeasuresForBinNr(i).MultipliedMeasures;
-      //  var indexes = plan.PackingItemPositions.Select((Value, Index) => new { Value, Index }).Where(s => s.Value.Value.AssignedBin == i).Select(s => s.Index);
-      //  var packedItemsInThisBin = plan.PackingItemMeasures.Select((Value, Index) => new { Value, Index }).Where(s => indexes.Contains(s.Index));
-      //  double usedSpaceInThisBin = packedItemsInThisBin.Select(s => s.Value.MultipliedMeasures).Sum();
-      //  result += (usedSpaceInThisBin / usableSpace);
-      //}
-
-      //result = result / nrOfBins;
-      //return new DoubleValue (result);
-
-      double totalUsedSpace = 0;
-      double totalUsableSpace = 0;
-
-      for (int i = 0; i < nrOfBins; i++) {
-        double usableSpace = plan.BinPackings[i].BinMeasures.Volume;
-        //var indexes = plan.PackingItemPositions.Select((Value, Index) => new { Value, Index }).Where(s => s.Value.Value.AssignedBin == i).Select(s => s.Index);
-        //var packedItemsInThisBin = plan.PackingItemMeasures.Select((Value, Index) => new { Value, Index }).Where(s => indexes.Contains(s.Index));
-        //double usedSpaceInThisBin = packedItemsInThisBin.Select(s => s.Value.MultipliedMeasures).Sum();
-        //result += (usedSpaceInThisBin / usableSpace);
-        totalUsableSpace += usableSpace;
-        //totalUsedSpace += usedSpaceInThisBin;
-        totalUsedSpace += plan.BinPackings[i].PackingDensity * usableSpace;
-      }
-
-      result = totalUsedSpace / totalUsableSpace;
-      return new DoubleValue(result);
-    }
-  }
-}
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/EvaluatorBase.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/EvaluatorBase.cs	(revision 14051)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/EvaluatorBase.cs	(revision 14051)
@@ -0,0 +1,103 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Parameters;
+using HeuristicLab.Data;
+using HeuristicLab.Collections;
+
+namespace HeuristicLab.Problems.BinPacking {
+  [Item("Packingplan Evaluator", "Represents a evaluator class for standard bin-packing problems.")]
+  [StorableClass]
+  public abstract class EvaluatorBase<D,B,I> : SingleSuccessorOperator, IEvaluator
+    where D : class, IPackingPosition
+    where B : PackingShape<D>
+    where I : PackingShape<D>, IPackingItem {
+
+    #region Parameters
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
+    }
+    public ILookupParameter<DoubleValue> QualityParameter {
+      get {
+        if (Parameters.ContainsKey("Quality"))
+          return (ILookupParameter<DoubleValue>)Parameters["Quality"];
+        else
+          return null;
+      }
+    }
+    public ILookupParameter<IPackingPlan> PackingPlanParameter {
+      get { return (ILookupParameter<IPackingPlan>)Parameters["PackingPlan"]; }
+    }
+    public ILookupParameter<ItemList<I>> PackingItemMeasuresParameter {
+      get { return (ILookupParameter<ItemList<I>>)Parameters["PackingItemMeasures"]; }
+    }
+    public ILookupParameter<B> PackingBinMeasuresParameter {
+      get { return (ILookupParameter<B>)Parameters["PackingBinMeasures"]; }
+    }
+    #endregion
+
+    [StorableConstructor]
+    protected EvaluatorBase(bool deserializing) : base(deserializing) { }
+    protected EvaluatorBase(EvaluatorBase<D,B,I> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public EvaluatorBase()
+      : base() {
+      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value of the solution."));
+      Parameters.Add(new LookupParameter<IPackingPlan>("PackingPlan", "The decoded bin-packing solution represented as generalized packing-plan."));
+      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator."));
+      Parameters.Add(new LookupParameter<ItemList<I>>("PackingItemMeasures", "Packing-item data taken from the bin-packing problem-instance."));
+      Parameters.Add(new LookupParameter<B>("PackingBinMeasures", "Packing-bin data taken from the bin-packing problem-instance."));
+
+    }
+
+    protected abstract DoubleValue Evaluate();                                                                        
+    public override IOperation Apply() {
+      QualityParameter.ActualValue = Evaluate();
+      return base.Apply();
+    }
+
+    protected bool HasOverlappingOrNotContainedItems(ObservableDictionary<int, D> positions, B binMeasure, ItemList<I> itemMeasures, int nrOfBins) {
+      //TODO: Optimize performance by removing unnecessary allocations..
+      for (int i = 0; i < itemMeasures.Count; i++) {
+        I packingItem = itemMeasures[i];
+        D currentPosition = positions[i];
+        if (!binMeasure.Encloses(currentPosition, packingItem))
+          return true;
+
+        for (int j = 0; j < itemMeasures.Count; j++) {
+          D checkedPosition = positions[j];
+          if (i != j && currentPosition.AssignedBin == checkedPosition.AssignedBin) {
+            I checkedItem = itemMeasures[j];
+            if (packingItem.Overlaps(currentPosition, checkedPosition, checkedItem))
+              return true;
+          }
+        }
+      }
+      return false;
+    }
+  }
+}
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/PackingPlanEvaluator.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/PackingPlanEvaluator.cs	(revision 14050)
+++ 	(revision )
@@ -1,103 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
-using HeuristicLab.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-using HeuristicLab.Parameters;
-using HeuristicLab.Data;
-using HeuristicLab.Collections;
-
-namespace HeuristicLab.Problems.BinPacking {
-  [Item("Packingplan Evaluator", "Represents a evaluator class for standard bin-packing problems.")]
-  [StorableClass]
-  public abstract class EvaluatorBase<D,B,I> : SingleSuccessorOperator, IEvaluator
-    where D : class, IPackingPosition
-    where B : PackingShape<D>
-    where I : PackingShape<D>, IPackingItem {
-
-    #region Parameters
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
-    }
-    public ILookupParameter<DoubleValue> QualityParameter {
-      get {
-        if (Parameters.ContainsKey("Quality"))
-          return (ILookupParameter<DoubleValue>)Parameters["Quality"];
-        else
-          return null;
-      }
-    }
-    public ILookupParameter<IPackingPlan> PackingPlanParameter {
-      get { return (ILookupParameter<IPackingPlan>)Parameters["PackingPlan"]; }
-    }
-    public ILookupParameter<ItemList<I>> PackingItemMeasuresParameter {
-      get { return (ILookupParameter<ItemList<I>>)Parameters["PackingItemMeasures"]; }
-    }
-    public ILookupParameter<B> PackingBinMeasuresParameter {
-      get { return (ILookupParameter<B>)Parameters["PackingBinMeasures"]; }
-    }
-    #endregion
-
-    [StorableConstructor]
-    protected EvaluatorBase(bool deserializing) : base(deserializing) { }
-    protected EvaluatorBase(EvaluatorBase<D,B,I> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public EvaluatorBase()
-      : base() {
-      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value of the solution."));
-      Parameters.Add(new LookupParameter<IPackingPlan>("PackingPlan", "The decoded bin-packing solution represented as generalized packing-plan."));
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator."));
-      Parameters.Add(new LookupParameter<ItemList<I>>("PackingItemMeasures", "Packing-item data taken from the bin-packing problem-instance."));
-      Parameters.Add(new LookupParameter<B>("PackingBinMeasures", "Packing-bin data taken from the bin-packing problem-instance."));
-
-    }
-
-    protected abstract DoubleValue Evaluate();                                                                        
-    public override IOperation Apply() {
-      QualityParameter.ActualValue = Evaluate();
-      return base.Apply();
-    }
-
-    protected bool HasOverlappingOrNotContainedItems(ObservableDictionary<int, D> positions, B binMeasure, ItemList<I> itemMeasures, int nrOfBins) {
-      //TODO: Optimize performance by removing unnecessary allocations..
-      for (int i = 0; i < itemMeasures.Count; i++) {
-        I packingItem = itemMeasures[i];
-        D currentPosition = positions[i];
-        if (!binMeasure.Encloses(currentPosition, packingItem))
-          return true;
-
-        for (int j = 0; j < itemMeasures.Count; j++) {
-          D checkedPosition = positions[j];
-          if (i != j && currentPosition.AssignedBin == checkedPosition.AssignedBin) {
-            I checkedItem = itemMeasures[j];
-            if (packingItem.Overlaps(currentPosition, checkedPosition, checkedItem))
-              return true;
-          }
-        }
-      }
-      return false;
-    }
-  }
-}
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/RegularSimpleRotationIdenticalBinPackingPlanEvaluator.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/RegularSimpleRotationIdenticalBinPackingPlanEvaluator.cs	(revision 14050)
+++ 	(revision )
@@ -1,76 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-using HeuristicLab.Parameters;
-using HeuristicLab.Collections;
-
-namespace HeuristicLab.Problems.BinPacking {
-  [Item("Regular Simple-Rotation Identical-Bin Packingplan Evaluator", "Represents a evaluator class for bin-packing problems using regular shapes and only simple rotations.")]
-  [StorableClass]
-  public abstract class RegularSimpleRotationIdenticalBinPackingPlanEvaluator<D, B, I> : PackingPlanEvaluator<D, B, I>
-    where D : class, IPackingPosition
-    where B : PackingShape<D>
-    where I : PackingShape<D>, IPackingItem {
-
-    #region Parameter Properties
-    public ILookupParameter<ItemList<I>> PackingItemMeasuresParameter {
-      get { return (ILookupParameter<ItemList<I>>)Parameters["PackingItemMeasures"]; }
-    }
-    public ILookupParameter<B> PackingBinMeasuresParameter {
-      get { return (ILookupParameter<B>)Parameters["PackingBinMeasures"]; }
-    }
-    #endregion
-
-    [StorableConstructor]
-    protected RegularSimpleRotationIdenticalBinPackingPlanEvaluator(bool deserializing) : base(deserializing) { }
-    protected RegularSimpleRotationIdenticalBinPackingPlanEvaluator(RegularSimpleRotationIdenticalBinPackingPlanEvaluator<D, B, I> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public RegularSimpleRotationIdenticalBinPackingPlanEvaluator()
-      : base() {
-      Parameters.Add(new LookupParameter<ItemList<I>>("PackingItemMeasures", "Packing-item data taken from the bin-packing problem-instance."));
-      Parameters.Add(new LookupParameter<B>("PackingBinMeasures", "Packing-bin data taken from the bin-packing problem-instance."));
-    }
-
-    protected bool HasOverlappingOrNotContainedItems(ObservableDictionary<int, D> positions, B binMeasure, ItemList<I> itemMeasures, int nrOfBins) {
-      //TODO: Optimize performance by removing unnecessary allocations..
-      for (int i = 0; i < itemMeasures.Count; i++) {
-        I packingItem = itemMeasures[i];
-        D currentPosition = positions[i];
-        if (!binMeasure.Encloses(currentPosition, packingItem))
-          return true;
-
-        for (int j = 0; j < itemMeasures.Count; j++) {
-          D checkedPosition = positions[j];
-          if (i != j && currentPosition.AssignedBin == checkedPosition.AssignedBin) {
-            I checkedItem = itemMeasures[j];
-            if (packingItem.Overlaps(currentPosition, checkedPosition, checkedItem))
-              return true;
-          }
-        }
-      }
-      return false;
-    }
-  }
-}
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj	(revision 14050)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj	(revision 14051)
@@ -251,7 +251,7 @@
     <Compile Include="Encodings\PackingSolutionCrossover.cs" />
     <Compile Include="Encodings\PackingSolutionManipulator.cs" />
-    <Compile Include="Evaluators\BinUtilizationRegularIdenticalBinEvaluator.cs" />
+    <Compile Include="Evaluators\BinUtilizationEvaluator.cs" />
+    <Compile Include="Evaluators\EvaluatorBase.cs" />
     <Compile Include="Evaluators\PackingPlanEvaluationAlgorithm.cs" />
-    <Compile Include="Evaluators\PackingPlanEvaluator.cs" />
     <Compile Include="Evaluators\PackingRatioEvaluator.cs" />
     <Compile Include="Instances\BPPData.cs" />
@@ -260,4 +260,5 @@
     <Compile Include="Instances\BPPORLIBDataDescriptor.cs" />
     <Compile Include="Instances\RealBPPData.cs" />
+    <Compile Include="Interfaces\IEvaluator.cs" />
     <Compile Include="Interfaces\IPackingPosition.cs" />
     <Compile Include="Interfaces\IPackingSequenceMoveOperator.cs" />
@@ -276,5 +277,4 @@
     <Compile Include="Interfaces\IPackingSolutionDecoder.cs" />
     <Compile Include="Interfaces\IPackingPlanEvaluationAlgorithm.cs" />
-    <Compile Include="Interfaces\IPackingPlanEvaluator.cs" />
     <Compile Include="Interfaces\IPackingShape.cs" />
     <Compile Include="PackingDimensions.cs" />
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IEvaluator.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IEvaluator.cs	(revision 14051)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IEvaluator.cs	(revision 14051)
@@ -0,0 +1,29 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
+using HeuristicLab.Optimization;
+
+namespace HeuristicLab.Problems.BinPacking {
+  public interface IEvaluator : ISingleObjectiveEvaluator {
+     ILookupParameter<IPackingPlan> PackingPlanParameter { get; }
+  }
+}
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IPackingPlanEvaluator.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IPackingPlanEvaluator.cs	(revision 14050)
+++ 	(revision )
@@ -1,29 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2015 Joseph Helm and 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 HeuristicLab.Core;
-using HeuristicLab.Optimization;
-
-namespace HeuristicLab.Problems.BinPacking {
-  public interface IEvaluator : ISingleObjectiveEvaluator {
-     ILookupParameter<IPackingPlan> PackingPlanParameter { get; }
-  }
-}
