Index: branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Views/ScatterPlotContent.cs
===================================================================
--- branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Views/MOSolution.cs	(revision 13988)
+++ branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Views/ScatterPlotContent.cs	(revision 14092)
@@ -21,66 +21,15 @@
 using System;
 using System.Drawing;
+using System.Linq;
 using HeuristicLab.Common;
+using HeuristicLab.Core;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.MultiObjectiveTestFunctions {
   [StorableClass]
-  public class MOSolution : IMOFrontModel {
-    public bool CanChangeDescription {
-      get {
-        return false;
-      }
-    }
+  public class ScatterPlotContent : Item {
 
-    public bool CanChangeName {
-      get {
-        return false;
-      }
-    }
-
-    public string Description {
-      get {
-        return "MYResult";
-      }
-
-      set { }
-    }
-
-    public string Filename {
-      get { return "MyFilename"; }
-
-      set { }
-    }
-
-    public string ItemDescription {
-      get { return "this is MOSolutionImplementation"; }
-    }
-
-    public Image ItemImage {
-      get {
-        return HeuristicLab.Common.Resources.VSImageLibrary.Function;
-      }
-    }
-
-    public string ItemName {
-      get {
-        return "MOSolution";
-      }
-    }
-
-    public Version ItemVersion {
-      get { return Version.Parse("0.1"); }
-    }
-
-    public string Name {
-      get {
-        return ItemName;
-      }
-
-      set { }
-    }
-
+    [Storable]
     private double[][] qualities;
-
     public double[][] Qualities {
       get {
@@ -93,4 +42,5 @@
     }
 
+    [Storable]
     private int objectives;
     public int Objectives {
@@ -104,4 +54,5 @@
     }
 
+    [Storable]
     private double[][] solutions;
     public double[][] Solutions {
@@ -115,4 +66,5 @@
     }
 
+    [Storable]
     private double[][] paretoFront;
     public double[][] ParetoFront {
@@ -126,28 +78,15 @@
     }
 
-    public event EventHandler DescriptionChanged;
-    public event EventHandler ItemImageChanged;
-    public event EventHandler NameChanged;
-    public event EventHandler<CancelEventArgs<string>> NameChanging;
-    public event EventHandler ToStringChanged;
+    [StorableConstructor]
+    protected ScatterPlotContent(bool deserializing) : base() { }
 
-    [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;
+    protected ScatterPlotContent(ScatterPlotContent original, Cloner cloner) : this() {
+      this.qualities = original.qualities.Select(s => s.ToArray()).ToArray();
+      this.solutions = original.solutions.Select(s => s.ToArray()).ToArray();
+      this.paretoFront = original.paretoFront.Select(s => s.ToArray()).ToArray();
       this.objectives = original.objectives;
     }
-    protected MOSolution(MOSolution original) : base() {
-      this.qualities = original.qualities;
-      this.solutions = original.solutions;
-      this.paretoFront = original.paretoFront;
-      this.objectives = original.objectives;
-    }
-    protected MOSolution() : base() { }
-    public MOSolution(double[][] qualities, double[][] solutions, double[][] paretoFront, int objectives) {
+    protected ScatterPlotContent() : base() { }
+    public ScatterPlotContent(double[][] qualities, double[][] solutions, double[][] paretoFront, int objectives) {
       this.qualities = qualities;
       this.solutions = solutions;
@@ -156,10 +95,6 @@
     }
 
-    public object Clone() {
-      return new MOSolution(this);
-    }
-
-    public IDeepCloneable Clone(Cloner cloner) {
-      return (IDeepCloneable)Clone();
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return cloner.Clone(this);
     }
   }
