Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/MultiObjectiveTestFunctionProblem.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/MultiObjectiveTestFunctionProblem.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/MultiObjectiveTestFunctionProblem.cs	(revision 13729)
@@ -116,6 +116,6 @@
 
     [StorableConstructor]
-    private MultiObjectiveTestFunctionProblem(bool deserializing) : base(deserializing) { }
-    private MultiObjectiveTestFunctionProblem(MultiObjectiveTestFunctionProblem original, Cloner cloner)
+    protected MultiObjectiveTestFunctionProblem(bool deserializing) : base(deserializing) { }
+    protected MultiObjectiveTestFunctionProblem(MultiObjectiveTestFunctionProblem original, Cloner cloner)
       : base(original, cloner) {
       RegisterEventHandlers();
Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Views/MOSolution.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Views/MOSolution.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Views/MOSolution.cs	(revision 13729)
@@ -134,4 +134,12 @@
     [StorableConstructor]
     protected MOSolution(bool deserializing) : base() { }
+
+
+    protected MOSolution(MOSolution original, Cloner cloner) : this(original) {
+      this.qualities = original.qualities;
+      this.solutions = original.solutions;
+      this.paretoFront = original.paretoFront;
+      this.objectives = original.objectives;
+    }
     protected MOSolution(MOSolution original) : base() {
       this.qualities = original.qualities;
Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/FastHyperVolumeTests.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/FastHyperVolumeTests.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/FastHyperVolumeTests.cs	(revision 13729)
@@ -40,4 +40,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SinglePointTest() {
       double[] point = new double[] { 0.5, 0.5, 0.5 };
@@ -61,4 +63,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void RandomSinglePointTest() {
       //Front with a single Point
Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/GenerationalDistanceTest.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/GenerationalDistanceTest.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/GenerationalDistanceTest.cs	(revision 13729)
@@ -33,4 +33,6 @@
     [TestMethod]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void EmptyOptimalFrontTest() {
 
@@ -45,4 +47,6 @@
     [TestMethod]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void EmptyFrontTest() {
 
@@ -56,4 +60,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SamePointTest() {
 
@@ -71,4 +77,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SinglePointTest() {
       double[] point = new double[2];
@@ -85,4 +93,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void DifferentSizesTest() {
       double[] point = new double[2];
@@ -102,4 +112,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void QuadraticTest() {
       double[] point = new double[2];
Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/HyperVolumeTests.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/HyperVolumeTests.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/HyperVolumeTests.cs	(revision 13729)
@@ -43,4 +43,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SinglePointTest() {
 
@@ -98,4 +100,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void RandomSinglePointTest() {
       //Front with a single Point
@@ -133,5 +137,5 @@
       referencePoint[1] = 0;
       double se = Hypervolume.Calculate(front, referencePoint, maximization);
-      Assert.AreEqual(1.0, ne + se + nw + sw);
+      Assert.AreEqual(1.0, ne + se + nw + sw, 1e8);
     }
 
@@ -149,4 +153,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void DiagonalPointTest() {
       //Front with three points
@@ -197,4 +203,6 @@
     [TestMethod()]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void ReferencePointViolationNE() {
       //Front with a single Point
@@ -216,4 +224,6 @@
     [TestMethod()]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void ReferencePointViolationNW() {
       //Front with a single Point
@@ -236,4 +246,6 @@
     [TestMethod()]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void ReferencePointViolationSW() {
       //Front with a single Point
@@ -256,4 +268,6 @@
     [TestMethod()]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void ReferencePointViolationSE() {
       //Front with a single Point
Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/InvertedGenerationalDistanceTest.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/InvertedGenerationalDistanceTest.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/InvertedGenerationalDistanceTest.cs	(revision 13729)
@@ -29,4 +29,6 @@
     [TestMethod]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void EmptyOptimalFrontTest() {
 
@@ -41,4 +43,6 @@
     [TestMethod]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void EmptyFrontTest() {
 
@@ -52,4 +56,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SamePointTest() {
       double[] point = new double[2];
@@ -66,4 +72,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SinglePointTest() {
       double[] point = new double[2];
@@ -80,4 +88,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void DifferentSizesTest() {
       double[] point = new double[2];
@@ -97,4 +107,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void QuadraticTest() {
       double[] point = new double[2];
Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/SpacingTest.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/SpacingTest.cs	(revision 13726)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/MultiObjectiveTestfunctionTests/SpacingTest.cs	(revision 13729)
@@ -32,4 +32,6 @@
     [TestMethod]
     [ExpectedException(typeof(ArgumentException))]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void EmptyFrontTest() {
       double[][] front = { };
@@ -39,4 +41,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SamePointTest() {
 
@@ -54,4 +58,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void SinglePointTest() {
       double[] point = new double[2];
@@ -64,4 +70,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void QuadraticTest() {
       double[] point = new double[2];
@@ -84,4 +92,6 @@
 
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void RectangularTest() {
       double[] point = new double[2];
@@ -109,4 +119,6 @@
     /// </summary>
     [TestMethod]
+    [TestCategory("Problems.TestFunctions")]
+    [TestProperty("Time", "short")]
     public void DeltoidTest() {
       double[] point = new double[2];
