Index: /branches/HeuristicLab.BinPacking/HeuristicLab.BinPacking.sln
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.BinPacking.sln	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.BinPacking.sln	(revision 14038)
@@ -1,5 +1,7 @@
 ﻿
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.BinPacking-3.3", "HeuristicLab.Problems.BinPacking\3.3\HeuristicLab.Problems.BinPacking-3.3.csproj", "{F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}"
 EndProject
@@ -63,6 +65,6 @@
 		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|x64.ActiveCfg = Debug|x64
 		{56DD7F51-3164-4C26-A97A-ADD6FE4B4E86}.Debug|x64.Build.0 = Debug|x64
@@ -79,6 +81,6 @@
 		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|x64.ActiveCfg = Debug|x64
 		{95680C63-1E06-4E66-B33B-272A772321C7}.Debug|x64.Build.0 = Debug|x64
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs	(revision 14038)
@@ -59,6 +59,8 @@
       if (sourcePointX.X < BinMeasures.Width && sourcePointX.Y < BinMeasures.Height) {
         //Traversing down the y-axis        
-        while (sourcePointX.Y > 0 && !IsPointOccupied(new TwoDimensionalPacking(0, sourcePointX.X, sourcePointX.Y - 1))) {
-          sourcePointX.Y--;
+        var newPoint = new TwoDimensionalPacking(0, sourcePointX.X, sourcePointX.Y - 1);
+        while (sourcePointX.Y > 0 && !IsPointOccupied(newPoint)) {
+          sourcePointX = newPoint;
+          newPoint = new TwoDimensionalPacking(0, sourcePointX.X, sourcePointX.Y - 1);
         }
         ExtremePoints.Add(new TwoDimensionalPacking(0, sourcePointX.X, sourcePointX.Y));
@@ -72,6 +74,8 @@
       if (sourcePointY.X < BinMeasures.Width && sourcePointY.Y < BinMeasures.Height) {
         //Traversing down the x-axis  
-        while (sourcePointY.X > 0 && !IsPointOccupied(new TwoDimensionalPacking(0, sourcePointY.X - 1, sourcePointY.Y))) {
-          sourcePointY.X--;
+        var newPoint = new TwoDimensionalPacking(0, sourcePointY.X - 1, sourcePointY.Y);
+        while (sourcePointY.X > 0 && !IsPointOccupied(newPoint)) {
+          sourcePointY = newPoint;
+          newPoint = new TwoDimensionalPacking(0, sourcePointY.X - 1, sourcePointY.Y);
         }
         ExtremePoints.Add(new TwoDimensionalPacking(0, sourcePointY.X, sourcePointY.Y));
@@ -96,6 +100,7 @@
 
       if (epIndex < ExtremePoints.Count) {
-        var result = ExtremePoints.ElementAt(epIndex);
-        result.Rotated = rotated;
+        var currentPoint = ExtremePoints.ElementAt(epIndex);
+
+        var result = new TwoDimensionalPacking(currentPoint.AssignedBin, currentPoint.X, currentPoint.Y, rotated);
         return result;
       }
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs	(revision 14038)
@@ -165,6 +165,6 @@
 
       if (epIndex < ExtremePoints.Count) {
-        var result = ExtremePoints.ElementAt(epIndex);
-        result.Rotated = rotated;
+        var origPoint = ExtremePoints.ElementAt(epIndex);
+        var result = new ThreeDimensionalPacking(origPoint.AssignedBin, origPoint.X, origPoint.Y, origPoint.Z, rotated);
         return result;
       }
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 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj	(revision 14038)
@@ -158,9 +158,13 @@
       <DependentUpon>Container2DView.xaml</DependentUpon>
     </Compile>
-    <Compile Include="PackingPlan2DView.cs" />
+    <Compile Include="PackingPlan2DView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="PackingPlan2DView.Designer.cs">
       <DependentUpon>PackingPlan2DView.cs</DependentUpon>
     </Compile>
-    <Compile Include="PackingPlan3DView.cs" />
+    <Compile Include="PackingPlan3DView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="PackingPlan3DView.Designer.cs">
       <DependentUpon>PackingPlan3DView.cs</DependentUpon>
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs	(revision 14038)
@@ -24,4 +24,7 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Encodings.PackingEncoding.PackingPlan;
+using HeuristicLab.Problems.BinPacking.Dimensions;
+using HeuristicLab.Problems.BinPacking.PackingBin;
+using HeuristicLab.Problems.BinPacking.PackingItem;
 
 namespace HeuristicLab.Problems.BinPacking.Views {
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Plugin.cs.frame
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Plugin.cs.frame	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Plugin.cs.frame	(revision 14038)
@@ -36,5 +36,4 @@
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
-  [PluginDependency("HeuristicLab.SharpDX", "2.6.3")]
   public class HeuristicLabProblemsBinPackingViewsPlugin : PluginBase {
   }
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/PackingSequenceEncoding.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/PackingSequenceEncoding.cs	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/PackingSequenceEncoding.cs	(revision 14038)
@@ -32,5 +32,5 @@
   [Item("Packing Sequence Encoding", "Represents an encoding for a bin packing problem using permutation of item-indexes to define the packing sequence.")]
   [StorableClass]
-  public class PackingSequenceEncoding : Encoding<PackingSequenceRandomCreator> {
+  public class PackingSequenceEncoding : Item, IPackingSolutionEncoding {
 
     [Storable]
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/PackingSequenceRandomCreator.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/PackingSequenceRandomCreator.cs	(revision 14037)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/PackingSequenceRandomCreator.cs	(revision 14038)
@@ -33,5 +33,5 @@
   [Item("PackingSequenceCreator", "Creator class used to create PackingSequence solutions for bin packing problems.")]
   [StorableClass]
-  public class PackingSequenceRandomCreator : SingleSuccessorOperator, IPackingSequenceCreator, IStochasticOperator {
+  public class PackingSequenceRandomCreator : PackingSolutionCreator, IStochasticOperator {
 
     public ILookupParameter<IRandom> RandomParameter {
@@ -74,5 +74,7 @@
       return solution;
     }
-
+    protected override IItem CreateSolution() {
+      return Apply(PackingItemsParameter.ActualValue.Value, RandomParameter.ActualValue);
+    }
   }
 }
