Index: stable/HeuristicLab.Problems.Instances/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- stable/HeuristicLab.Problems.Instances/3.3/Properties/AssemblyInfo.cs.frame	(revision 9979)
+++ stable/HeuristicLab.Problems.Instances/3.3/Properties/AssemblyInfo.cs.frame	(revision 9990)
@@ -28,5 +28,5 @@
 // associated with an assembly.
 [assembly: AssemblyTitle("HeuristicLab.Problems.Instances")]
-[assembly: AssemblyDescription("")]
+[assembly: AssemblyDescription("Base plugin for making problem instances available to problems.")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("HEAL")]
Index: stable/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj	(revision 9990)
@@ -113,4 +113,10 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="SingleObjectiveTestFunctionProblemView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SingleObjectiveTestFunctionProblemView.Designer.cs">
+      <DependentUpon>SingleObjectiveTestFunctionProblemView.cs</DependentUpon>
+    </Compile>
     <Compile Include="SingleObjectiveTestFunctionSolutionView.cs">
       <SubType>UserControl</SubType>
@@ -177,4 +183,9 @@
       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540e29e-4793-49e7-8ee2-fea7f61c3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
       <Private>False</Private>
     </ProjectReference>
@@ -211,5 +222,5 @@
   -->
   <PropertyGroup>
-   <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
 set ProjectDir=$(ProjectDir)
 set SolutionDir=$(SolutionDir)
@@ -218,5 +229,5 @@
 call PreBuildEvent.cmd
 </PreBuildEvent>
-<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
 export ProjectDir=$(ProjectDir)
 export SolutionDir=$(SolutionDir)
Index: stable/HeuristicLab.Problems.TestFunctions.Views/3.3/Plugin.cs.frame
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions.Views/3.3/Plugin.cs.frame	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions.Views/3.3/Plugin.cs.frame	(revision 9990)
@@ -36,4 +36,6 @@
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Optimization.Views", "3.3")]
   [PluginDependency("HeuristicLab.Problems.TestFunctions", "3.3")]
   public class HeuristicLabProblemsTestFunctionsViewsPlugin : PluginBase {
Index: stable/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionProblemView.Designer.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionProblemView.Designer.cs	(revision 9990)
+++ stable/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionProblemView.Designer.cs	(revision 9990)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Problems.TestFunctions.Views {
+  partial class SingleObjectiveTestFunctionProblemView {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      components = new System.ComponentModel.Container();
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+    }
+
+    #endregion
+  }
+}
Index: stable/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionProblemView.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionProblemView.cs	(revision 9990)
+++ stable/HeuristicLab.Problems.TestFunctions.Views/3.3/SingleObjectiveTestFunctionProblemView.cs	(revision 9990)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.MainForm;
+using HeuristicLab.Optimization.Views;
+
+namespace HeuristicLab.Problems.TestFunctions.Views {
+  [View("Single Objective Test Function View")]
+  [Content(typeof(SingleObjectiveTestFunctionProblem), IsDefaultView = true)]
+  public partial class SingleObjectiveTestFunctionProblemView : ProblemView {
+    public new SingleObjectiveTestFunctionProblem Content {
+      get { return (SingleObjectiveTestFunctionProblem)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public SingleObjectiveTestFunctionProblemView() {
+      InitializeComponent();
+    }
+  }
+}
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/AckleyEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/AckleyEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/AckleyEvaluator.cs	(revision 9990)
@@ -35,4 +35,5 @@
   [StorableClass]
   public class AckleyEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Ackley"; } }
     /// <summary>
     /// Returns false as the Ackley function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BealeEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BealeEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BealeEvaluator.cs	(revision 9990)
@@ -35,4 +35,5 @@
   [StorableClass]
   public class BealeEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Beale"; } }
     /// <summary>
     /// Returns false as the Beale function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BoothEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BoothEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/BoothEvaluator.cs	(revision 9990)
@@ -34,4 +34,5 @@
   [StorableClass]
   public class BoothEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Booth"; } }
     /// <summary>
     /// Returns false as the Booth function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/GriewankEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/GriewankEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/GriewankEvaluator.cs	(revision 9990)
@@ -36,4 +36,5 @@
   [StorableClass]
   public class GriewankEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Griewank"; } }
     /// <summary>
     /// Returns false as the Griewank function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/LevyEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/LevyEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/LevyEvaluator.cs	(revision 9990)
@@ -34,4 +34,5 @@
   [StorableClass]
   public class LevyEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Levy"; } }
     /// <summary>
     /// Returns false as the Levy function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MatyasEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MatyasEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MatyasEvaluator.cs	(revision 9990)
@@ -34,4 +34,5 @@
   [StorableClass]
   public class MatyasEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Matyas"; } }
     /// <summary>
     /// Returns false as the Matyas function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MultinormalEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MultinormalEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/MultinormalEvaluator.cs	(revision 9990)
@@ -35,4 +35,5 @@
   [StorableClass]
   public class MultinormalEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Multinormal"; } }
 
     private ItemList<RealVector> centers {
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RandomEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RandomEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RandomEvaluator.cs	(revision 9990)
@@ -35,4 +35,5 @@
   [StorableClass]
   public class RandomEvaluator : SingleObjectiveTestFunctionProblemEvaluator, IStochasticOperator {
+    public override string FunctionName { get { return "Random"; } }
     /// <summary>
     /// It does not really matter.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RastriginEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RastriginEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RastriginEvaluator.cs	(revision 9990)
@@ -36,4 +36,5 @@
   [StorableClass]
   public class RastriginEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Rastrigin"; } }
     /// <summary>
     /// Returns false as the Rastrigin function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RosenbrockEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RosenbrockEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/RosenbrockEvaluator.cs	(revision 9990)
@@ -38,4 +38,5 @@
   [StorableClass]
   public class RosenbrockEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Rosenbrock"; } }
     /// <summary>
     /// Returns false as the Rosenbrock function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SchwefelEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SchwefelEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SchwefelEvaluator.cs	(revision 9990)
@@ -34,4 +34,5 @@
   [StorableClass]
   public class SchwefelEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Schwefel"; } }
     /// <summary>
     /// Returns false as the Schwefel (sine root) function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SingleObjectiveTestFunctionProblemEvaluator.cs	(revision 9990)
@@ -35,4 +35,8 @@
   [StorableClass]
   public abstract class SingleObjectiveTestFunctionProblemEvaluator : SingleSuccessorOperator, ISingleObjectiveTestFunctionProblemEvaluator {
+    /// <summary>
+    /// The name of the function
+    /// </summary>
+    public abstract string FunctionName { get; }
     /// <summary>
     /// These operators should not change their name through the GUI
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SphereEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SphereEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SphereEvaluator.cs	(revision 9990)
@@ -36,4 +36,5 @@
   [StorableClass]
   public class SphereEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Sphere"; } }
     /// <summary>
     /// Returns false as the Sphere function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SumSquaresEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SumSquaresEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/SumSquaresEvaluator.cs	(revision 9990)
@@ -33,4 +33,5 @@
   [StorableClass]
   public class SumSquaresEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "SumSquares"; } }
     /// <summary>
     /// Returns false as the Sum Squares function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/ZakharovEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/ZakharovEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Evaluators/ZakharovEvaluator.cs	(revision 9990)
@@ -33,4 +33,5 @@
   [StorableClass]
   public class ZakharovEvaluator : SingleObjectiveTestFunctionProblemEvaluator {
+    public override string FunctionName { get { return "Zakharov"; } }
     /// <summary>
     /// Returns false as the Zakharov function is a minimization problem.
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj	(revision 9990)
@@ -110,4 +110,7 @@
     <Compile Include="Evaluators\RandomEvaluator.cs" />
     <Compile Include="Improvers\SingleObjectiveTestFunctionImprovementOperator.cs" />
+    <Compile Include="Instances\SOTFData.cs" />
+    <Compile Include="Instances\SOTFDataDescriptor.cs" />
+    <Compile Include="Instances\SOTFInstanceProvider.cs" />
     <Compile Include="MoveEvaluators\RandomAdditiveMoveEvaluator.cs" />
     <Compile Include="PathRelinkers\SingleObjectiveTestFunctionPathRelinker.cs" />
@@ -227,4 +230,9 @@
       <Private>False</Private>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
+      <Project>{3540e29e-4793-49e7-8ee2-fea7f61c3994}</Project>
+      <Name>HeuristicLab.Problems.Instances-3.3</Name>
+      <Private>False</Private>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
@@ -245,5 +253,4 @@
     </BootstrapperPackage>
   </ItemGroup>
-  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFData.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFData.cs	(revision 9990)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFData.cs	(revision 9990)
@@ -0,0 +1,43 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+
+namespace HeuristicLab.Problems.TestFunctions {
+  /// <summary>
+  /// Describes instances of Single Objective Test Functions (SOTF).
+  /// </summary>
+  public class SOTFData {
+    /// <summary>
+    /// The name of the instance
+    /// </summary>
+    public string Name { get; set; }
+
+    /// <summary>
+    /// Optional! The description of the instance
+    /// </summary>
+    public string Description { get; set; }
+
+    /// <summary>
+    /// The operator used for evaluations
+    /// </summary>
+    public ISingleObjectiveTestFunctionProblemEvaluator Evaluator { get; set; }
+  }
+}
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFDataDescriptor.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFDataDescriptor.cs	(revision 9990)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFDataDescriptor.cs	(revision 9990)
@@ -0,0 +1,38 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Problems.Instances;
+
+namespace HeuristicLab.Problems.TestFunctions {
+  internal class SOTFDataDescriptor : IDataDescriptor {
+    public string Name { get { return Evaluator.FunctionName + " Function"; } }
+
+    public string Description {
+      get { return Evaluator.Description; }
+    }
+
+    internal ISingleObjectiveTestFunctionProblemEvaluator Evaluator { get; set; }
+
+    public SOTFDataDescriptor(ISingleObjectiveTestFunctionProblemEvaluator evaluator) {
+      Evaluator = evaluator;
+    }
+  }
+}
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFInstanceProvider.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFInstanceProvider.cs	(revision 9990)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Instances/SOTFInstanceProvider.cs	(revision 9990)
@@ -0,0 +1,61 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Problems.Instances;
+
+namespace HeuristicLab.Problems.TestFunctions {
+  public class SOTFInstanceProvider : ProblemInstanceProvider<SOTFData> {
+    public override string Name {
+      get { return "General"; }
+    }
+
+    public override string Description {
+      get { return "Single Objective Test Functions"; }
+    }
+
+    public override Uri WebLink {
+      get { return new Uri("http://dev.heuristiclab.com/trac/hl/core/wiki/TestFunctions"); }
+    }
+
+    public override string ReferencePublication {
+      get { return string.Empty; }
+    }
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      var evaluators = ApplicationManager.Manager.GetInstances<ISingleObjectiveTestFunctionProblemEvaluator>()
+                                                 .OrderBy(x => x.Name);
+      return evaluators.Select(x => new SOTFDataDescriptor(x));
+    }
+
+    public override SOTFData LoadData(IDataDescriptor id) {
+      var descriptor = (SOTFDataDescriptor)id;
+      return new SOTFData {
+        Name = descriptor.Name,
+        Description = descriptor.Description,
+        Evaluator = descriptor.Evaluator
+      };
+    }
+  }
+}
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Interfaces/ISingleObjectiveTestFunctionProblemEvaluator.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Interfaces/ISingleObjectiveTestFunctionProblemEvaluator.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Interfaces/ISingleObjectiveTestFunctionProblemEvaluator.cs	(revision 9990)
@@ -35,4 +35,5 @@
     int MinimumProblemSize { get; }
     int MaximumProblemSize { get; }
+    string FunctionName { get; }
 
     ILookupParameter<RealVector> PointParameter { get; }
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/Plugin.cs.frame
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/Plugin.cs.frame	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/Plugin.cs.frame	(revision 9990)
@@ -38,4 +38,5 @@
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
   [PluginDependency("HeuristicLab.Optimization.Operators", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
   [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
Index: stable/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs
===================================================================
--- stable/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 9979)
+++ stable/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs	(revision 9990)
@@ -20,4 +20,7 @@
 #endregion
 
+using System;
+using System.Collections.Generic;
+using System.Linq;
 using HeuristicLab.Analysis;
 using HeuristicLab.Common;
@@ -29,7 +32,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using System;
-using System.Collections.Generic;
-using System.Linq;
+using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.TestFunctions {
@@ -37,5 +38,5 @@
   [StorableClass]
   [Creatable("Problems")]
-  public sealed class SingleObjectiveTestFunctionProblem : SingleObjectiveHeuristicOptimizationProblem<ISingleObjectiveTestFunctionProblemEvaluator, IRealVectorCreator>, IStorableContent {
+  public sealed class SingleObjectiveTestFunctionProblem : SingleObjectiveHeuristicOptimizationProblem<ISingleObjectiveTestFunctionProblemEvaluator, IRealVectorCreator>, IStorableContent, IProblemInstanceConsumer<SOTFData> {
     public string Filename { get; set; }
 
@@ -324,6 +325,5 @@
       try {
         BestKnownSolutionParameter.Value = Evaluator.GetBestKnownSolution(ProblemSize.Value);
-      }
-      catch (ArgumentException e) {
+      } catch (ArgumentException e) {
         ErrorHandling.ShowErrorDialog(e);
         ProblemSize.Value = Evaluator.MinimumProblemSize;
@@ -406,4 +406,10 @@
     }
     #endregion
+
+    public void Load(SOTFData data) {
+      Name = data.Name;
+      Description = data.Description;
+      Evaluator = data.Evaluator;
+    }
   }
 }
