Index: anches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Drawings/IMOSolution.cs
===================================================================
--- /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Drawings/IMOSolution.cs	(revision 13621)
+++ 	(revision )
@@ -1,140 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Drawing;
-using HeuristicLab.Common;
-using HeuristicLab.Optimization;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-
-namespace HeuristicLab.Problems.MultiObjectiveTestFunctions.Drawings {
-  [StorableClass]
-  class IMOSolution : IMOQualities {
-    public bool CanChangeDescription {
-      get {
-        return false;
-      }
-    }
-
-    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 IMOSolutionImplementation"; }
-    }
-
-    public Image ItemImage {
-      get {
-        return HeuristicLab.Common.Resources.VSImageLibrary.Function;
-      }
-    }
-
-    public string ItemName {
-      get {
-        return "MyName";
-      }
-    }
-
-    public Version ItemVersion {
-      get { return Version.Parse("0.1"); }
-    }
-
-    public string Name {
-      get {
-        return ItemName;
-      }
-
-      set {}
-    }
-
-    private IEnumerable<double[]> qualities;
-
-    public IEnumerable<double[]> Qualities {
-      get {
-        return qualities;
-      }
-
-      set {
-        qualities= value;
-      }
-    }
-
-    private int objectives;
-    public int Objectives {
-      get {
-        return objectives;
-      }
-
-      set {
-        objectives = value;
-      }
-    }
-
-    private Individual[] solutions;
-    public Individual[] Solutions {
-      get {
-        return solutions;
-      }
-
-      set {
-        solutions = value;
-      }
-    }
-
-    private IEnumerable<double[]> paretoFront;
-    public IEnumerable<double[]> ParetoFront {
-      get {
-        return paretoFront;
-      }
-
-      set {
-        paretoFront = value;
-      }
-    }
-
-    public event EventHandler DescriptionChanged;
-    public event EventHandler ItemImageChanged;
-    public event EventHandler NameChanged;
-    public event EventHandler<CancelEventArgs<string>> NameChanging;
-    public event EventHandler ToStringChanged;
-
-    [StorableConstructor]
-    protected IMOSolution(bool deserializing) : base(){ }
-    protected IMOSolution(IMOSolution original) : base(){
-      this.qualities = original.qualities;
-      this.solutions = original.solutions;
-      this.paretoFront = original.paretoFront;
-      this.objectives = original.objectives;
-    }
-    protected IMOSolution() : base() { }
-    public IMOSolution(IEnumerable<double[]> qualities, Individual[] solutions, IEnumerable<double[]> paretoFront, int objectives) {
-      this.qualities = qualities;
-      this.solutions = solutions;
-      this.paretoFront = paretoFront;
-      this.objectives = objectives;
-    }
-
-    public object Clone() {
-      return new IMOSolution(this);
-    }
-
-    public IDeepCloneable Clone(Cloner cloner) {
-      return (IDeepCloneable)Clone();
-    }
-  }
-}
Index: /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Drawings/MOSolution.cs
===================================================================
--- /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Drawings/MOSolution.cs	(revision 13622)
+++ /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Drawings/MOSolution.cs	(revision 13622)
@@ -0,0 +1,140 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.MultiObjectiveTestFunctions.Drawings {
+  [StorableClass]
+  class MOSolution : IMOQualities {
+    public bool CanChangeDescription {
+      get {
+        return false;
+      }
+    }
+
+    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 "MyName";
+      }
+    }
+
+    public Version ItemVersion {
+      get { return Version.Parse("0.1"); }
+    }
+
+    public string Name {
+      get {
+        return ItemName;
+      }
+
+      set {}
+    }
+
+    private IEnumerable<double[]> qualities;
+
+    public IEnumerable<double[]> Qualities {
+      get {
+        return qualities;
+      }
+
+      set {
+        qualities= value;
+      }
+    }
+
+    private int objectives;
+    public int Objectives {
+      get {
+        return objectives;
+      }
+
+      set {
+        objectives = value;
+      }
+    }
+
+    private Individual[] solutions;
+    public Individual[] Solutions {
+      get {
+        return solutions;
+      }
+
+      set {
+        solutions = value;
+      }
+    }
+
+    private IEnumerable<double[]> paretoFront;
+    public IEnumerable<double[]> ParetoFront {
+      get {
+        return paretoFront;
+      }
+
+      set {
+        paretoFront = value;
+      }
+    }
+
+    public event EventHandler DescriptionChanged;
+    public event EventHandler ItemImageChanged;
+    public event EventHandler NameChanged;
+    public event EventHandler<CancelEventArgs<string>> NameChanging;
+    public event EventHandler ToStringChanged;
+
+    [StorableConstructor]
+    protected MOSolution(bool deserializing) : base(){ }
+    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(IEnumerable<double[]> qualities, Individual[] solutions, IEnumerable<double[]> paretoFront, int objectives) {
+      this.qualities = qualities;
+      this.solutions = solutions;
+      this.paretoFront = paretoFront;
+      this.objectives = objectives;
+    }
+
+    public object Clone() {
+      return new MOSolution(this);
+    }
+
+    public IDeepCloneable Clone(Cloner cloner) {
+      return (IDeepCloneable)Clone();
+    }
+  }
+}
Index: /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/HeuristicLab.Problems.MultiObjectiveTestFunctions-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/HeuristicLab.Problems.MultiObjectiveTestFunctions-3.3.csproj	(revision 13621)
+++ /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/HeuristicLab.Problems.MultiObjectiveTestFunctions-3.3.csproj	(revision 13622)
@@ -21,4 +21,5 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <RunCodeAnalysis>true</RunCodeAnalysis>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@@ -36,4 +37,7 @@
     <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
   </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
@@ -47,4 +51,8 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -52,4 +60,8 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.Core.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core.Views-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -62,4 +74,12 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="HeuristicLab.MainForm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.MainForm.WindowsForms-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -86,7 +106,18 @@
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
       <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Instances-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Visualization.ChartControlsExtensions-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Visualization.ChartControlsExtensions-3.3.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Windows.Forms.DataVisualization" />
     <Reference Include="System.Drawing" />
     <Reference Include="System.Xml.Linq" />
@@ -97,8 +128,31 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Comparators\Crowding.cs" />
+    <Compile Include="Comparators\FastHV2.cs" />
+    <Compile Include="Comparators\HyperVolumeFast.cs" />
     <Compile Include="Comparators\Spacing.cs" />
     <Compile Include="Comparators\HyperVolume.cs" />
     <Compile Include="Comparators\InvertedGenerationalDistance.cs" />
     <Compile Include="Comparators\GenerationalDistance.cs" />
+    <Compile Include="Comparators\Utilities.cs" />
+    <Compile Include="Data\MISCInstanceProvider.cs" />
+    <Compile Include="Data\ZDTInstanceProvider.cs" />
+    <Compile Include="Data\MOTFData.cs" />
+    <Compile Include="Data\MOTFDataDescriptor.cs" />
+    <Compile Include="Data\DTLZInstanceProvider.cs" />
+    <Compile Include="Drawings\IMOQualities.cs" />
+    <Compile Include="Drawings\MOSolution.cs" />
+    <Compile Include="Drawings\MOQualitiesScatterPlotView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Drawings\MOQualitiesScatterPlotView.Designer.cs">
+      <DependentUpon>MOQualitiesScatterPlotView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Drawings\MOQulaitiesView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Drawings\MOQulaitiesView.Designer.cs">
+      <DependentUpon>MOQulaitiesView.cs</DependentUpon>
+    </Compile>
     <Compile Include="NonDominatedSelect.cs" />
     <Compile Include="Interfaces\IMultiObjectiveTestFunction.cs" />
@@ -106,20 +160,24 @@
     <Compile Include="MultiObjectiveTestFunctionProblem.cs" />
     <Compile Include="PFReader.cs" />
+    <Compile Include="PFStore.cs" />
     <Compile Include="Plugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Testfunctions\DTLZ7.cs" />
-    <Compile Include="Testfunctions\DTLZ6.cs" />
-    <Compile Include="Testfunctions\DTLZ5.cs" />
-    <Compile Include="Testfunctions\DTLZ4.cs" />
-    <Compile Include="Testfunctions\DTLZ3.cs" />
-    <Compile Include="Testfunctions\DTLZ2.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ5.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ8.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ7.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ6.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ4.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ3.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ2.cs" />
     <Compile Include="Testfunctions\Evaluators.cs" />
     <Compile Include="Testfunctions\Kursawe.cs" />
-    <Compile Include="Testfunctions\DTLZ1.cs" />
-    <Compile Include="Testfunctions\ZDT6.cs" />
-    <Compile Include="Testfunctions\ZDT4.cs" />
-    <Compile Include="Testfunctions\ZDT3.cs" />
-    <Compile Include="Testfunctions\ZDT2.cs" />
-    <Compile Include="Testfunctions\ZDT1.cs" />
+    <Compile Include="Testfunctions\DTLZ\DTLZ1.cs" />
+    <Compile Include="Testfunctions\ZDT\ZDT.cs" />
+    <Compile Include="Testfunctions\ZDT\ZDT6.cs" />
+    <Compile Include="Testfunctions\ZDT\ZDT4.cs" />
+    <Compile Include="Testfunctions\ZDT\ZDT3.cs" />
+    <Compile Include="Testfunctions\ZDT\ZDT2.cs" />
+    <Compile Include="Testfunctions\ZDT\ZDT1.cs" />
     <Compile Include="Testfunctions\SchafferN2.cs" />
     <Compile Include="Testfunctions\SchafferN1.cs" />
@@ -132,8 +190,15 @@
     <None Include="Properties\AssemblyInfo.cs.frame" />
   </ItemGroup>
-  <ItemGroup />
+  <ItemGroup>
+    <EmbeddedResource Include="Drawings\MOQualitiesScatterPlotView.resx">
+      <DependentUpon>MOQualitiesScatterPlotView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Drawings\MOQulaitiesView.resx">
+      <DependentUpon>MOQulaitiesView.cs</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
-    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
 set ProjectDir=$(ProjectDir)
 set SolutionDir=$(SolutionDir)
@@ -142,4 +207,18 @@
 call PreBuildEvent.cmd
 </PreBuildEvent>
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+	export ProjectDir=$(ProjectDir)
+export SolutionDir=$(SolutionDir)
+
+$SolutionDir/PreBuildEvent.sh
+</PreBuildEvent>
+  </PropertyGroup>
+  <PropertyGroup>
+    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+set ProjectDir=$(ProjectDir)
+set SolutionDir=$(SolutionDir)
+set Outdir=$(Outdir)
+
+call PreBuildEvent.cmd</PreBuildEvent>
   </PropertyGroup>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/MultiObjectiveTestFunctionProblem.cs
===================================================================
--- /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/MultiObjectiveTestFunctionProblem.cs	(revision 13621)
+++ /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/MultiObjectiveTestFunctionProblem.cs	(revision 13622)
@@ -103,5 +103,5 @@
       //Graphical analysis
       if (!results.ContainsKey("Front")) results.Add(new Result("Front", typeof(IMOQualities)));
-      results["Front"].Value = new IMOSolution(qualities, individuals, opf, Objectives);
+      results["Front"].Value = new MOSolution(qualities, individuals, opf, Objectives);
 
 
Index: /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Testfunctions/ZDT/ZDT.cs
===================================================================
--- /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Testfunctions/ZDT/ZDT.cs	(revision 13621)
+++ /branches/HeuristicLab.Problems.MultiObjectiveTestFunctions/HeuristicLab.Problems.MultiObjectiveTestFunctions/3.3/Testfunctions/ZDT/ZDT.cs	(revision 13622)
@@ -43,5 +43,5 @@
     }
 
-    public virtual double BestKnownHypervolume(int objectives) {
+    public override double BestKnownHypervolume(int objectives) {
       return -1;
     }
