Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj	(revision 13574)
@@ -172,4 +172,16 @@
     <Compile Include="Shapes\CuboidPackingShapeView.Designer.cs">
       <DependentUpon>CuboidPackingShapeView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Shapes\RectangularPackingItemView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Shapes\RectangularPackingItemView.Designer.cs">
+      <DependentUpon>RectangularPackingItemView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Shapes\RectangularPackingShapeView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Shapes\RectangularPackingShapeView.Designer.cs">
+      <DependentUpon>RectangularPackingShapeView.cs</DependentUpon>
     </Compile>
     <None Include="HeuristicLab.snk" />
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.Designer.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.Designer.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.Designer.cs	(revision 13574)
@@ -45,19 +45,9 @@
     /// </summary>
     private void InitializeComponent() {
-      this.packingPlan2D = new PackingPlanVisualizations.PackingPlan2D();
       this.SuspendLayout();
-      // 
-      // packingPlan2D
-      // 
-      this.packingPlan2D.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.packingPlan2D.Location = new System.Drawing.Point(0, 0);
-      this.packingPlan2D.Name = "packingPlan2D";
-      this.packingPlan2D.Size = new System.Drawing.Size(351, 299);
-      this.packingPlan2D.TabIndex = 4;
       // 
       // RectangularPackingItemView
       // 
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.Controls.Add(this.packingPlan2D);
       this.Name = "RectangularPackingItemView";
       this.Size = new System.Drawing.Size(351, 299);
@@ -68,5 +58,4 @@
     #endregion
 
-    private PackingPlanVisualizations.PackingPlan2D packingPlan2D;
   }
 }
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.cs	(revision 13574)
@@ -47,10 +47,10 @@
 
     private void ClearState() {
-      packingPlan2D.InitializeContainer(0, 0);
+      // packingPlan2D.InitializeContainer(0, 0);
     }
 
     private void UpdateState(RectangularPackingItem item) {
-      packingPlan2D.InitializeContainer(item.TargetBin.Width, item.TargetBin.Height);
-      packingPlan2D.AddItemToContainer(item.Width, item.Height, 0, 0, "0");
+      // packingPlan2D.InitializeContainer(item.TargetBin.Width, item.TargetBin.Height);
+      // packingPlan2D.AddItemToContainer(item.Width, item.Height, 0, 0, "0");
     }
 
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.Designer.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.Designer.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.Designer.cs	(revision 13574)
@@ -45,19 +45,9 @@
     /// </summary>
     private void InitializeComponent() {
-      this.packingPlan2D = new PackingPlanVisualizations.PackingPlan2D();
       this.SuspendLayout();
-      // 
-      // packingPlan2D
-      // 
-      this.packingPlan2D.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.packingPlan2D.Location = new System.Drawing.Point(0, 0);
-      this.packingPlan2D.Name = "packingPlan2D";
-      this.packingPlan2D.Size = new System.Drawing.Size(351, 299);
-      this.packingPlan2D.TabIndex = 4;
       // 
       // RectangularPackingShapeView
       // 
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-      this.Controls.Add(this.packingPlan2D);
       this.Name = "RectangularPackingShapeView";
       this.Size = new System.Drawing.Size(351, 299);
@@ -68,5 +58,4 @@
     #endregion
 
-    private PackingPlanVisualizations.PackingPlan2D packingPlan2D;
   }
 }
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.cs	(revision 13574)
@@ -47,9 +47,9 @@
 
     private void ClearState() {
-      packingPlan2D.InitializeContainer(0, 0);
+      // packingPlan2D.InitializeContainer(0, 0);
     }
 
     private void UpdateState(RectangularPackingShape shape) {
-      packingPlan2D.InitializeContainer(shape.Width, shape.Height);
+      // packingPlan2D.InitializeContainer(shape.Width, shape.Height);
     }
 
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingBin/CuboidPackingBin.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingBin/CuboidPackingBin.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingBin/CuboidPackingBin.cs	(revision 13574)
@@ -31,5 +31,4 @@
   [StorableClass]
   public class CuboidPackingBin : CuboidPackingShape, IPackingBin {
-
     public CuboidPackingBin(int width, int height, int depth) : base(width, height, depth) { }
 
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingBin/RectangularPackingBin.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingBin/RectangularPackingBin.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingBin/RectangularPackingBin.cs	(revision 13574)
@@ -30,5 +30,4 @@
   [StorableClass]
   public class RectangularPackingBin : RectangularPackingShape, IPackingBin {
-
     public RectangularPackingBin(int width, int height) : base(width, height) { }
     public RectangularPackingBin() : base() { }
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/CuboidPackingItem.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/CuboidPackingItem.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/CuboidPackingItem.cs	(revision 13574)
@@ -26,4 +26,6 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Common;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
 using HeuristicLab.Problems.BinPacking.PackingBin;
 
@@ -32,12 +34,18 @@
   [StorableClass]
   public class CuboidPackingItem : CuboidPackingShape, IPackingItem {
-    [Storable]
-    public CuboidPackingBin TargetBin { get; set; }
+    public CuboidPackingBin TargetBin {
+      get { return ((IValueParameter<CuboidPackingBin>)Parameters["TargetBin"]).Value; }
+      set { ((IValueParameter<CuboidPackingBin>)Parameters["TargetBin"]).Value = value; }
+    }
 
-    [Storable]
-    public double Weight { get; set; }
+    public double Weight {
+      get { return ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value; }
+      set { ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value = value; }
+    }
 
-    [Storable]
-    public int Material { get; set; }
+    public int Material {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value = value; }
+    }
 
     public bool SupportsStacking(IPackingItem other) {
@@ -49,24 +57,32 @@
     protected CuboidPackingItem(CuboidPackingItem original, Cloner cloner)
       : base(original, cloner) {
-      this.Weight = original.Weight;
-      this.Material = original.Material;
-      this.TargetBin = cloner.Clone(TargetBin);
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new CuboidPackingItem(this, cloner);
     }
     public CuboidPackingItem()
       : base() {
+      Parameters.Add(new ValueParameter<CuboidPackingBin>("TargetBin"));
+      Parameters.Add(new FixedValueParameter<DoubleValue>("Weight"));
+      Parameters.Add(new FixedValueParameter<IntValue>("Material"));
     }
 
     public CuboidPackingItem(int width, int height, int depth, CuboidPackingBin targetBin, double weight, int material)
-      : this(width, height, depth, targetBin) {
+      : this() {
+      this.Width = width;
+      this.Height = height;
+      this.Depth = depth;
       this.Weight = weight;
       this.Material = material;
+      this.TargetBin = (CuboidPackingBin)targetBin.Clone();
     }
 
     public CuboidPackingItem(int width, int height, int depth, CuboidPackingBin targetBin)
-      : base(width, height, depth) {
+      : this() {
+      this.Width = width;
+      this.Height = height;
+      this.Depth = depth;
       this.TargetBin = (CuboidPackingBin)targetBin.Clone();
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new CuboidPackingItem(this, cloner);
     }
 
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/RectangularPackingItem.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/RectangularPackingItem.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingItem/RectangularPackingItem.cs	(revision 13574)
@@ -26,4 +26,6 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
 using HeuristicLab.Problems.BinPacking.PackingBin;
 
@@ -33,15 +35,17 @@
   public class RectangularPackingItem : RectangularPackingShape, IPackingItem {
 
-    [Storable]
-    public RectangularPackingBin TargetBin { get; set; }
+    public RectangularPackingBin TargetBin {
+      get { return ((IValueParameter<RectangularPackingBin>)Parameters["TargetBin"]).Value; }
+      set { ((IValueParameter<RectangularPackingBin>)Parameters["TargetBin"]).Value = value; }
+    }
 
-    [Storable]
-    public double Weight { get; set; }
+    public double Weight {
+      get { return ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value; }
+      set { ((IFixedValueParameter<DoubleValue>)Parameters["Weight"]).Value.Value = value; }
+    }
 
-    [Storable]
-    public int Material { get; set; }
-
-    public bool SupportsStacking(IPackingItem other) {
-      return ((other.Material < this.Material) || (other.Material.Equals(this.Material) && other.Weight <= this.Weight));
+    public int Material {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Material"]).Value.Value = value; }
     }
 
@@ -50,18 +54,26 @@
     protected RectangularPackingItem(RectangularPackingItem original, Cloner cloner)
       : base(original, cloner) {
-      this.Weight = original.Weight;
-      this.Material = original.Material;
-      this.TargetBin = cloner.Clone(TargetBin);
     }
+
     public override IDeepCloneable Clone(Cloner cloner) {
       return new RectangularPackingItem(this, cloner);
     }
+
     public RectangularPackingItem()
       : base() {
+      Parameters.Add(new ValueParameter<RectangularPackingBin>("TargetBin"));
+      Parameters.Add(new FixedValueParameter<DoubleValue>("Weight"));
+      Parameters.Add(new FixedValueParameter<IntValue>("Material"));
     }
 
     public RectangularPackingItem(int width, int height, RectangularPackingBin targetBin)
-      : base(width, height) {
+      : this() {
+      this.Weight = width;
+      this.Height = height;
       this.TargetBin = (RectangularPackingBin)targetBin.Clone();
+    }
+
+    public bool SupportsStacking(IPackingItem other) {
+      return ((other.Material < this.Material) || (other.Material.Equals(this.Material) && other.Weight <= this.Weight));
     }
 
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/CuboidPackingShape.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/CuboidPackingShape.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/CuboidPackingShape.cs	(revision 13574)
@@ -26,4 +26,6 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Common;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
 using HeuristicLab.Problems.BinPacking.Dimensions;
 
@@ -33,19 +35,19 @@
   public abstract class CuboidPackingShape : PackingShape<ThreeDimensionalPacking>, IRegularPackingShape, IComparable<CuboidPackingShape> {
     #region Properties
-    /// <summary>
-    /// Describes the size on the X-axis
-    /// </summary>    
-    [Storable]
-    public int Width { get; set; }
-    /// <summary>
-    /// Describes the size on the Y-axis
-    /// </summary>   
-    [Storable]
-    public int Height { get; set; }
-    /// <summary>
-    /// Describes the size on the Z-axis
-    /// </summary>  
-    [Storable]
-    public int Depth { get; set; }
+    public int Height {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Height"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Height"]).Value.Value = value; }
+    }
+
+    public int Width {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Width"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Width"]).Value.Value = value; }
+    }
+
+    public int Depth {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Depth"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Depth"]).Value.Value = value; }
+    }
+
     #endregion
 
@@ -101,10 +103,5 @@
     #endregion
 
-    protected CuboidPackingShape(int width, int height, int depth)
-      : base() {
-      this.Width = width;
-      this.Height = height;
-      this.Depth = depth;
-    }
+
 
     public override void InitializeFromMeasures(int[] measures) {
@@ -119,14 +116,24 @@
     }
 
+
+    protected CuboidPackingShape()
+      : base() {
+      Parameters.Add(new FixedValueParameter<IntValue>("Width"));
+      Parameters.Add(new FixedValueParameter<IntValue>("Height"));
+      Parameters.Add(new FixedValueParameter<IntValue>("Depth"));
+    }
+
+    protected CuboidPackingShape(int width, int height, int depth)
+      : this() {
+      this.Width = width;
+      this.Height = height;
+      this.Depth = depth;
+    }
+
     [StorableConstructor]
     protected CuboidPackingShape(bool deserializing) : base(deserializing) { }
     protected CuboidPackingShape(CuboidPackingShape original, Cloner cloner)
       : base(original, cloner) {
-      this.Width = original.Width;
-      this.Height = original.Height;
-      this.Depth = original.Depth;
     }
-
-    protected CuboidPackingShape() : base() { }
 
     public override string ToString() {
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/PackingShape.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/PackingShape.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/PackingShape.cs	(revision 13574)
@@ -22,4 +22,7 @@
 
 using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
 using HeuristicLab.Problems.BinPacking.Interfaces;
 using HeuristicLab.Core;
@@ -30,5 +33,5 @@
   [Item("PackingShape", "Represents an abstract shape to describe the measures and the positioning of objects related to bin-packing problems.")]
   [StorableClass]
-  public abstract class PackingShape<T> : Item, IPackingShape
+  public abstract class PackingShape<T> : Item, IPackingShape, IParameterizedItem
     where T : class, IPackingDimensions {
     public static Type PositionType {
@@ -44,16 +47,39 @@
     public abstract T Origin { get; }
 
-    protected PackingShape(int[] measures) {
-      InitializeFromMeasures(measures);
+    protected PackingShape()
+      : base() {
+      Parameters = new ParameterCollection();
     }
-
-    protected PackingShape() { }
 
 
     [StorableConstructor]
-    protected PackingShape(bool deserializing) : base(deserializing) { }
-    protected PackingShape(PackingShape<T> original, Cloner cloner)
-      : base(original, cloner) {
+    protected PackingShape(bool deserializing) { }
+    protected PackingShape(PackingShape<T> original, Cloner cloner) {
+      this.Parameters = new ParameterCollection(original.Parameters.Select(p => cloner.Clone(p)));
     }
+
+    public virtual void CollectParameterValues(IDictionary<string, IItem> values) {
+      foreach (IValueParameter param in Parameters.OfType<IValueParameter>()) {
+        var children = GetCollectedValues(param);
+        foreach (var c in children) {
+          if (String.IsNullOrEmpty(c.Key))
+            values.Add(param.Name, c.Value);
+          else values.Add(param.Name + "." + c.Key, c.Value);
+        }
+      }
+    }
+
+    protected virtual IEnumerable<KeyValuePair<string, IItem>> GetCollectedValues(IValueParameter param) {
+      if (param.Value == null) yield break;
+      if (param.GetsCollected) yield return new KeyValuePair<string, IItem>(String.Empty, param.Value);
+      var parameterizedItem = param.Value as IParameterizedItem;
+      if (parameterizedItem != null) {
+        var children = new Dictionary<string, IItem>();
+        parameterizedItem.CollectParameterValues(children);
+        foreach (var child in children) yield return child;
+      }
+    }
+
+    public IKeyedItemCollection<string, IParameter> Parameters { get; private set; }
   }
 }
Index: branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/RectangularPackingShape.cs
===================================================================
--- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/RectangularPackingShape.cs	(revision 13558)
+++ branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/RectangularPackingShape.cs	(revision 13574)
@@ -26,4 +26,6 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Common;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
 using HeuristicLab.Problems.BinPacking.Dimensions;
 
@@ -33,10 +35,68 @@
   public abstract class RectangularPackingShape : PackingShape<TwoDimensionalPacking>, IRegularPackingShape, IComparable<RectangularPackingShape> {
     #region Properties
-    [Storable]
-    public int Height { get; set; }
+    public int Height {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Height"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Height"]).Value.Value = value; }
+    }
 
-    [Storable]
-    public int Width { get; set; }
+    public int Width {
+      get { return ((IFixedValueParameter<IntValue>)Parameters["Width"]).Value.Value; }
+      set { ((IFixedValueParameter<IntValue>)Parameters["Width"]).Value.Value = value; }
+    }
+
     #endregion
+
+    protected RectangularPackingShape()
+      : base() {
+      Parameters.Add(new FixedValueParameter<IntValue>("Width"));
+      Parameters.Add(new FixedValueParameter<IntValue>("Height"));
+    }
+    protected RectangularPackingShape(int width, int height)
+      : this() {
+      this.Height = height;
+      this.Width = width;
+    }
+
+    [StorableConstructor]
+    protected RectangularPackingShape(bool deserializing) : base(deserializing) { }
+    protected RectangularPackingShape(RectangularPackingShape original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public override void InitializeFromMeasures(int[] measures) {
+      if (measures.Length != 2)
+        throw new InvalidOperationException("Nr of measures does not fit shape-dimension.");
+      this.Width = measures[0];
+      this.Height = measures[1];
+    }
+
+
+
+    public override string ToString() {
+      return String.Format("RectangularPackingShape ({0}, {1})", this.Width, this.Height);
+    }
+
+    #region IComparable<RectangularPackingShape> Members
+
+    public int CompareTo(RectangularPackingShape other) {
+      int result = this.Width.CompareTo(other.Width);
+      if (result == 0)
+        result = this.Height.CompareTo(other.Height);
+      return result;
+    }
+
+    public int CompareTo(object obj) {
+      var other = obj as RectangularPackingShape;
+      if (other != null) return CompareTo(other);
+      else throw new ArgumentException(string.Format("Cannot compare to object {0}", obj), "obj");
+    }
+
+    #endregion
+
+    public override int[] ToArray() {
+      return new int[] { Width, Height };
+    }
+
+
 
     #region Helpers
@@ -85,54 +145,4 @@
     #endregion
 
-    protected RectangularPackingShape() : base() { }
-    protected RectangularPackingShape(int width, int height)
-      : base() {
-      this.Height = height;
-      this.Width = width;
-    }
-
-    public override void InitializeFromMeasures(int[] measures) {
-      if (measures.Length != 2)
-        throw new InvalidOperationException("Nr of measures does not fit shape-dimension.");
-      this.Width = measures[0];
-      this.Height = measures[1];
-    }
-
-
-    [StorableConstructor]
-    protected RectangularPackingShape(bool deserializing) : base(deserializing) { }
-    protected RectangularPackingShape(RectangularPackingShape original, Cloner cloner)
-      : base(original, cloner) {
-      this.Width = original.Width;
-      this.Height = original.Height;
-    }
-
-    public override string ToString() {
-      return String.Format("RectangularPackingShape ({0}, {1})", this.Width, this.Height);
-    }
-
-    #region IComparable<RectangularPackingShape> Members
-
-    public int CompareTo(RectangularPackingShape other) {
-      int result = 0;// this.MultipliedMeasures.CompareTo(other.MultipliedMeasures);
-      if (result == 0) {
-        result = this.Width.CompareTo(other.Width);
-        if (result == 0)
-          result = this.Height.CompareTo(other.Height);
-      }
-      return result;
-    }
-
-    public int CompareTo(object obj) {
-      var other = obj as RectangularPackingShape;
-      if (other != null) return CompareTo(other);
-      else throw new ArgumentException(string.Format("Cannot compare to object {0}", obj), "obj");
-    }
-
-    #endregion
-
-    public override int[] ToArray() {
-      return new int[] { Width, Height };
-    }
 
     private struct RectangleDiagonal {
