Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj	(revision 7759)
@@ -196,4 +196,5 @@
       <Project>{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}</Project>
       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name>
+      <Private>False</Private>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveProblem.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveProblem.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveProblem.cs	(revision 7759)
@@ -19,6 +19,4 @@
  */
 #endregion
-using System;
-using System.Collections.Generic;
 using System.Linq;
 using HeuristicLab.Common;
@@ -33,5 +31,5 @@
   [Creatable("Problems")]
   public class SymbolicClassificationSingleObjectiveProblem : SymbolicDataAnalysisSingleObjectiveProblem<IClassificationProblemData, ISymbolicClassificationSingleObjectiveEvaluator, ISymbolicDataAnalysisSolutionCreator>, IClassificationProblem,
-    IProblemInstanceConsumer<ClassificationData>, IProblemInstanceExporter<ClassificationData> {
+    IProblemInstanceConsumer<ClassificationProblemData>, IProblemInstanceExporter<ClassificationProblemData> {
     private const double PunishmentFactor = 10;
     private const int InitialMaximumTreeDepth = 8;
@@ -113,37 +111,23 @@
     }
 
-    public void Load(ClassificationData data) {
+    public void Load(ClassificationProblemData data) {
       Name = data.Name;
       Description = data.Description;
-      Dataset dataset = new Dataset(data.InputVariables, data.Values);
-      ProblemData = new ClassificationProblemData(dataset, data.AllowedInputVariables, data.TargetVariable);
-      ProblemData.TrainingPartition.Start = data.TrainingPartitionStart;
-      ProblemData.TrainingPartition.End = data.TrainingPartitionEnd;
-      ProblemData.TestPartition.Start = data.TestPartitionStart;
-      ProblemData.TestPartition.End = data.TestPartitionEnd;
+      ProblemData = new ClassificationProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable);
+      ProblemData.TrainingPartition.Start = data.TrainingPartition.Start;
+      ProblemData.TrainingPartition.End = data.TrainingPartition.End;
+      ProblemData.TestPartition.Start = data.TestPartition.Start;
+      ProblemData.TestPartition.End = data.TestPartition.End;
       OnReset();
     }
 
-    public ClassificationData Export() {
-      if (!ProblemData.InputVariables.Count.Equals(ProblemData.Dataset.DoubleVariables.Count()))
-        throw new ArgumentException("Not all input variables are double variables! (Export only works with double variables)");
-
-      ClassificationData claData = new ClassificationData();
+    public ClassificationProblemData Export() {
+      ClassificationProblemData claData = new ClassificationProblemData(ProblemData.Dataset, ProblemData.AllowedInputVariables, ProblemData.TargetVariable);
       claData.Name = Name;
       claData.Description = Description;
-      claData.TargetVariable = ProblemData.TargetVariable;
-      claData.InputVariables = ProblemData.InputVariables.Select(x => x.Value).ToArray();
-      claData.AllowedInputVariables = ProblemData.AllowedInputVariables.ToArray();
-      claData.TrainingPartitionStart = ProblemData.TrainingPartition.Start;
-      claData.TrainingPartitionEnd = ProblemData.TrainingPartition.End;
-      claData.TestPartitionStart = ProblemData.TestPartition.Start;
-      claData.TestPartitionEnd = ProblemData.TestPartition.End;
-
-      List<List<double>> data = new List<List<double>>();
-      foreach (var variable in ProblemData.Dataset.DoubleVariables) {
-        data.Add(ProblemData.Dataset.GetDoubleValues(variable).ToList());
-      }
-      claData.Values = Transformer.Transformation(data);
-
+      claData.TrainingPartition.Start = ProblemData.TrainingPartition.Start;
+      claData.TrainingPartition.End = ProblemData.TrainingPartition.End;
+      claData.TestPartition.Start = ProblemData.TestPartition.Start;
+      claData.TestPartition.End = ProblemData.TestPartition.End;
       return claData;
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj	(revision 7759)
@@ -191,4 +191,5 @@
       <Project>{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}</Project>
       <Name>HeuristicLab.Problems.DataAnalysis.Symbolic-3.4</Name>
+      <Private>False</Private>
     </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveProblem.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveProblem.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSingleObjectiveProblem.cs	(revision 7759)
@@ -20,6 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
 using System.Linq;
 using HeuristicLab.Common;
@@ -34,5 +32,5 @@
   [Creatable("Problems")]
   public class SymbolicRegressionSingleObjectiveProblem : SymbolicDataAnalysisSingleObjectiveProblem<IRegressionProblemData, ISymbolicRegressionSingleObjectiveEvaluator, ISymbolicDataAnalysisSolutionCreator>, IRegressionProblem,
-    IProblemInstanceConsumer<RegressionData>, IProblemInstanceExporter<RegressionData> {
+    IProblemInstanceConsumer<RegressionProblemData>, IProblemInstanceExporter<RegressionProblemData> {
     private const double PunishmentFactor = 10;
     private const int InitialMaximumTreeDepth = 8;
@@ -116,37 +114,23 @@
     }
 
-    public void Load(RegressionData data) {
+    public void Load(RegressionProblemData data) {
       Name = data.Name;
       Description = data.Description;
-      Dataset dataset = new Dataset(data.InputVariables, data.Values);
-      ProblemData = new RegressionProblemData(dataset, data.AllowedInputVariables, data.TargetVariable);
-      ProblemData.TrainingPartition.Start = data.TrainingPartitionStart;
-      ProblemData.TrainingPartition.End = data.TrainingPartitionEnd;
-      ProblemData.TestPartition.Start = data.TestPartitionStart;
-      ProblemData.TestPartition.End = data.TestPartitionEnd;
+      ProblemData = new RegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable);
+      ProblemData.TrainingPartition.Start = data.TrainingPartition.Start;
+      ProblemData.TrainingPartition.End = data.TrainingPartition.End;
+      ProblemData.TestPartition.Start = data.TestPartition.Start;
+      ProblemData.TestPartition.End = data.TestPartition.End;
       OnReset();
     }
 
-    public RegressionData Export() {
-      if (!ProblemData.InputVariables.Count.Equals(ProblemData.Dataset.DoubleVariables.Count()))
-        throw new ArgumentException("Not all input variables are double variables! (Export only works with double variables)");
-
-      RegressionData regData = new RegressionData();
+    public RegressionProblemData Export() {
+      RegressionProblemData regData = new RegressionProblemData(ProblemData.Dataset, ProblemData.AllowedInputVariables, ProblemData.TargetVariable);
       regData.Name = Name;
       regData.Description = Description;
-      regData.TargetVariable = ProblemData.TargetVariable;
-      regData.InputVariables = ProblemData.InputVariables.Select(x => x.Value).ToArray();
-      regData.AllowedInputVariables = ProblemData.AllowedInputVariables.ToArray();
-      regData.TrainingPartitionStart = ProblemData.TrainingPartition.Start;
-      regData.TrainingPartitionEnd = ProblemData.TrainingPartition.End;
-      regData.TestPartitionStart = ProblemData.TestPartition.Start;
-      regData.TestPartitionEnd = ProblemData.TestPartition.End;
-
-      List<List<double>> data = new List<List<double>>();
-      foreach (var variable in ProblemData.Dataset.DoubleVariables) {
-        data.Add(ProblemData.Dataset.GetDoubleValues(variable).ToList());
-      }
-      regData.Values = Transformer.Transformation(data);
-
+      regData.TrainingPartition.Start = ProblemData.TrainingPartition.Start;
+      regData.TrainingPartition.End = ProblemData.TrainingPartition.End;
+      regData.TestPartition.Start = ProblemData.TestPartition.Start;
+      regData.TestPartition.End = ProblemData.TestPartition.End;
       return regData;
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs	(revision 7759)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -33,5 +30,5 @@
   [Creatable("Problems")]
   public class ClassificationProblem : DataAnalysisProblem<IClassificationProblemData>, IClassificationProblem, IStorableContent,
-    IProblemInstanceConsumer<ClassificationData>, IProblemInstanceExporter<ClassificationData> {
+    IProblemInstanceConsumer<ClassificationProblemData>, IProblemInstanceExporter<ClassificationProblemData> {
     public string Filename { get; set; }
 
@@ -46,37 +43,23 @@
     }
 
-    public void Load(ClassificationData data) {
+    public void Load(ClassificationProblemData data) {
       Name = data.Name;
       Description = data.Description;
-      Dataset dataset = new Dataset(data.InputVariables, data.Values);
-      ProblemData = new ClassificationProblemData(dataset, data.AllowedInputVariables, data.TargetVariable);
-      ProblemData.TrainingPartition.Start = data.TrainingPartitionStart;
-      ProblemData.TrainingPartition.End = data.TrainingPartitionEnd;
-      ProblemData.TestPartition.Start = data.TestPartitionStart;
-      ProblemData.TestPartition.End = data.TestPartitionEnd;
+      ProblemData = new ClassificationProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable);
+      ProblemData.TrainingPartition.Start = data.TrainingPartition.Start;
+      ProblemData.TrainingPartition.End = data.TrainingPartition.End;
+      ProblemData.TestPartition.Start = data.TestPartition.Start;
+      ProblemData.TestPartition.End = data.TestPartition.End;
       OnReset();
     }
 
-    public ClassificationData Export() {
-      if (!ProblemData.InputVariables.Count.Equals(ProblemData.Dataset.DoubleVariables.Count()))
-        throw new ArgumentException("Not all input variables are double variables! (Export only works with double variables)");
-
-      ClassificationData claData = new ClassificationData();
+    public ClassificationProblemData Export() {
+      ClassificationProblemData claData = new ClassificationProblemData(ProblemData.Dataset, ProblemData.AllowedInputVariables, ProblemData.TargetVariable);
       claData.Name = Name;
       claData.Description = Description;
-      claData.TargetVariable = ProblemData.TargetVariable;
-      claData.InputVariables = ProblemData.InputVariables.Select(x => x.Value).ToArray();
-      claData.AllowedInputVariables = ProblemData.AllowedInputVariables.ToArray();
-      claData.TrainingPartitionStart = ProblemData.TrainingPartition.Start;
-      claData.TrainingPartitionEnd = ProblemData.TrainingPartition.End;
-      claData.TestPartitionStart = ProblemData.TestPartition.Start;
-      claData.TestPartitionEnd = ProblemData.TestPartition.End;
-
-      List<List<double>> data = new List<List<double>>();
-      foreach (var variable in ProblemData.Dataset.DoubleVariables) {
-        data.Add(ProblemData.Dataset.GetDoubleValues(variable).ToList());
-      }
-      claData.Values = Transformer.Transformation(data);
-
+      claData.TrainingPartition.Start = ProblemData.TrainingPartition.Start;
+      claData.TrainingPartition.End = ProblemData.TrainingPartition.End;
+      claData.TestPartition.Start = ProblemData.TestPartition.Start;
+      claData.TestPartition.End = ProblemData.TestPartition.End;
       return claData;
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs	(revision 7759)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Linq;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -33,5 +30,5 @@
   [Creatable("Problems")]
   public class RegressionProblem : DataAnalysisProblem<IRegressionProblemData>, IRegressionProblem, IStorableContent,
-    IProblemInstanceConsumer<RegressionData>, IProblemInstanceExporter<RegressionData> {
+    IProblemInstanceConsumer<RegressionProblemData>, IProblemInstanceExporter<RegressionProblemData> {
     public string Filename { get; set; }
 
@@ -46,37 +43,23 @@
     }
 
-    public void Load(RegressionData data) {
+    public void Load(RegressionProblemData data) {
       Name = data.Name;
       Description = data.Description;
-      Dataset dataset = new Dataset(data.InputVariables, data.Values);
-      ProblemData = new RegressionProblemData(dataset, data.AllowedInputVariables, data.TargetVariable);
-      ProblemData.TrainingPartition.Start = data.TrainingPartitionStart;
-      ProblemData.TrainingPartition.End = data.TrainingPartitionEnd;
-      ProblemData.TestPartition.Start = data.TestPartitionStart;
-      ProblemData.TestPartition.End = data.TestPartitionEnd;
+      ProblemData = new RegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable);
+      ProblemData.TrainingPartition.Start = data.TrainingPartition.Start;
+      ProblemData.TrainingPartition.End = data.TrainingPartition.End;
+      ProblemData.TestPartition.Start = data.TestPartition.Start;
+      ProblemData.TestPartition.End = data.TestPartition.End;
       OnReset();
     }
 
-    public RegressionData Export() {
-      if (!ProblemData.InputVariables.Count.Equals(ProblemData.Dataset.DoubleVariables.Count()))
-        throw new ArgumentException("Not all input variables are double variables! (Export only works with double variables)");
-
-      RegressionData regData = new RegressionData();
+    public RegressionProblemData Export() {
+      RegressionProblemData regData = new RegressionProblemData(ProblemData.Dataset, ProblemData.AllowedInputVariables, ProblemData.TargetVariable);
       regData.Name = Name;
       regData.Description = Description;
-      regData.TargetVariable = ProblemData.TargetVariable;
-      regData.InputVariables = ProblemData.InputVariables.Select(x => x.Value).ToArray();
-      regData.AllowedInputVariables = ProblemData.AllowedInputVariables.ToArray();
-      regData.TrainingPartitionStart = ProblemData.TrainingPartition.Start;
-      regData.TrainingPartitionEnd = ProblemData.TrainingPartition.End;
-      regData.TestPartitionStart = ProblemData.TestPartition.Start;
-      regData.TestPartitionEnd = ProblemData.TestPartition.End;
-
-      List<List<double>> data = new List<List<double>>();
-      foreach (var variable in ProblemData.Dataset.DoubleVariables) {
-        data.Add(ProblemData.Dataset.GetDoubleValues(variable).ToList());
-      }
-      regData.Values = Transformer.Transformation(data);
-
+      regData.TrainingPartition.Start = ProblemData.TrainingPartition.Start;
+      regData.TrainingPartition.End = ProblemData.TrainingPartition.End;
+      regData.TestPartition.Start = ProblemData.TestPartition.Start;
+      regData.TestPartition.End = ProblemData.TestPartition.End;
       return regData;
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationDataDescriptor.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationDataDescriptor.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationDataDescriptor.cs	(revision 7759)
@@ -20,6 +20,7 @@
 #endregion
 
+using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis;
 
-using System.Collections.Generic;
 namespace HeuristicLab.Problems.Instances.Classification {
   public abstract class ArtificialClassificationDataDescriptor : IDataDescriptor {
@@ -35,16 +36,14 @@
     protected abstract int TestPartitionEnd { get; }
 
-    public ClassificationData GenerateClassificationData() {
-      ClassificationData claData = new ClassificationData();
+    public ClassificationProblemData GenerateClassificationData() {
+      Dataset dataset = new Dataset(InputVariables, this.GenerateValues());
+
+      ClassificationProblemData claData = new ClassificationProblemData(dataset, AllowedInputVariables, TargetVariable);
       claData.Name = this.Name;
       claData.Description = this.Description;
-      claData.InputVariables = this.InputVariables;
-      claData.AllowedInputVariables = this.AllowedInputVariables;
-      claData.TargetVariable = this.TargetVariable;
-      claData.Values = Transformer.Transformation(this.GenerateValues());
-      claData.TrainingPartitionStart = this.TrainingPartitionStart;
-      claData.TrainingPartitionEnd = this.TrainingPartitionEnd;
-      claData.TestPartitionStart = this.TestPartitionStart;
-      claData.TestPartitionEnd = this.TestPartitionEnd;
+      claData.TrainingPartition.Start = this.TrainingPartitionStart;
+      claData.TrainingPartition.End = this.TrainingPartitionEnd;
+      claData.TestPartition.Start = this.TestPartitionStart;
+      claData.TestPartition.End = this.TestPartitionEnd;
       return claData;
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ArtificialClassificationInstanceProvider.cs	(revision 7759)
@@ -20,8 +20,9 @@
 #endregion
 
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.Problems.Instances.Classification {
   public abstract class ArtificialClassificationInstanceProvider : ClassificationInstanceProvider {
-    public override ClassificationData LoadData(IDataDescriptor descriptor) {
+    public override ClassificationProblemData LoadData(IDataDescriptor descriptor) {
       return ((ArtificialClassificationDataDescriptor)descriptor).GenerateClassificationData();
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ClassificationInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ClassificationInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ClassificationInstanceProvider.cs	(revision 7759)
@@ -26,12 +26,17 @@
 using System.Linq;
 using System.Text;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.Problems.Instances.Classification {
-  public abstract class ClassificationInstanceProvider : IProblemInstanceProvider<ClassificationData> {
-    public ClassificationData LoadData(string path) {
+  public abstract class ClassificationInstanceProvider : IProblemInstanceProvider<ClassificationProblemData> {
+    public ClassificationProblemData LoadData(string path) {
       TableFileParser csvFileParser = new TableFileParser();
       csvFileParser.Parse(path);
 
-      ClassificationData claData = new ClassificationData();
+      Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
+      string targetVar = csvFileParser.VariableNames.Last();
+      IEnumerable<string> allowedInputVars = csvFileParser.VariableNames.Where(x => !x.Equals(targetVar));
+
+      ClassificationProblemData claData = new ClassificationProblemData(dataset, allowedInputVars, targetVar);
       int pos = path.LastIndexOf('\\');
       if (pos < 0)
@@ -41,25 +46,14 @@
         claData.Name = path.Substring(pos, path.Length - pos);
       }
-      claData.InputVariables = new List<string>(csvFileParser.VariableNames).ToArray();
-      claData.TargetVariable = csvFileParser.VariableNames.Last();
-      claData.AllowedInputVariables = claData.InputVariables.Where(x => !x.Equals(claData.TargetVariable)).ToArray();
-      //convert to multidimensional array
-      List<IList> values = csvFileParser.Values;
-      claData.Values = new double[values.First().Count, values.Count];
-      for (int i = 0; i < values.Count; i++) {
-        for (int j = 0; j < values.First().Count; j++) {
-          claData.Values[j, i] = (double)values[i][j];
-        }
-      }
 
       int trainingPartEnd = csvFileParser.Rows * 2 / 3;
-      claData.TrainingPartitionStart = 0;
-      claData.TrainingPartitionEnd = trainingPartEnd;
-      claData.TestPartitionStart = trainingPartEnd;
-      claData.TestPartitionEnd = csvFileParser.Rows;
+      claData.TrainingPartition.Start = 0;
+      claData.TrainingPartition.End = trainingPartEnd;
+      claData.TestPartition.Start = trainingPartEnd;
+      claData.TestPartition.End = csvFileParser.Rows;
       return claData;
     }
 
-    public void SaveData(ClassificationData instance, string path) {
+    public void SaveData(ClassificationProblemData instance, string path) {
       StringBuilder strBuilder = new StringBuilder();
 
@@ -70,9 +64,9 @@
       strBuilder.AppendLine();
 
-      double[,] values = instance.Values;
+      Dataset dataset = instance.Dataset;
 
-      for (int i = 0; i < values.GetLength(0); i++) {
-        for (int j = 0; j < values.GetLength(1); j++) {
-          strBuilder.Append(values[i, j] + ";");
+      for (int i = 0; i < dataset.Rows; i++) {
+        for (int j = 0; j < dataset.Columns; j++) {
+          strBuilder.Append(dataset.GetValue(i, j) + ";");
         }
         strBuilder.Remove(strBuilder.Length - 1, 1);
@@ -86,5 +80,5 @@
 
     public abstract IEnumerable<IDataDescriptor> GetDataDescriptors();
-    public abstract ClassificationData LoadData(IDataDescriptor descriptor);
+    public abstract ClassificationProblemData LoadData(IDataDescriptor descriptor);
 
     public abstract string Name { get; }
@@ -92,6 +86,4 @@
     public abstract Uri WebLink { get; }
     public abstract string ReferencePublication { get; }
-
-    public IProblemInstanceConsumer<ClassificationData> Consumer { get; set; }
   }
 }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/HeuristicLab.Problems.Instances.Classification-3.4.csproj
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/HeuristicLab.Problems.Instances.Classification-3.4.csproj	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/HeuristicLab.Problems.Instances.Classification-3.4.csproj	(revision 7759)
@@ -38,8 +38,14 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
     <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
     </Reference>
     <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
     </Reference>
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Classification/3.4/ResourceClassificationInstanceProvider.cs	(revision 7759)
@@ -26,4 +26,5 @@
 using System.Reflection;
 using System.Text.RegularExpressions;
+using HeuristicLab.Problems.DataAnalysis;
 using ICSharpCode.SharpZipLib.Zip;
 
@@ -43,8 +44,8 @@
     }
 
-    public override ClassificationData LoadData(IDataDescriptor id) {
+    public override ClassificationProblemData LoadData(IDataDescriptor id) {
       var descriptor = (ResourceClassificationDataDescriptor)id;
 
-      ClassificationData claData = LoadData(GetTempFileForResource(descriptor.ResourceName));
+      ClassificationProblemData claData = LoadData(GetTempFileForResource(descriptor.ResourceName));
       claData.Name = descriptor.Name;
       claData.Description = descriptor.Description;
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionDataDescriptor.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionDataDescriptor.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionDataDescriptor.cs	(revision 7759)
@@ -21,4 +21,6 @@
 
 using System.Collections.Generic;
+using HeuristicLab.Problems.DataAnalysis;
+
 namespace HeuristicLab.Problems.Instances.Regression {
   public abstract class ArtificialRegressionDataDescriptor : IDataDescriptor {
@@ -34,16 +36,14 @@
     protected abstract int TestPartitionEnd { get; }
 
-    public RegressionData GenerateRegressionData() {
-      RegressionData regData = new RegressionData();
+    public RegressionProblemData GenerateRegressionData() {
+      Dataset dataset = new Dataset(InputVariables, this.GenerateValues());
+
+      RegressionProblemData regData = new RegressionProblemData(dataset, AllowedInputVariables, TargetVariable);
       regData.Name = this.Name;
       regData.Description = this.Description;
-      regData.InputVariables = this.InputVariables;
-      regData.AllowedInputVariables = this.AllowedInputVariables;
-      regData.TargetVariable = this.TargetVariable;
-      regData.Values = Transformer.Transformation(this.GenerateValues());
-      regData.TrainingPartitionStart = this.TrainingPartitionStart;
-      regData.TrainingPartitionEnd = this.TrainingPartitionEnd;
-      regData.TestPartitionStart = this.TestPartitionStart;
-      regData.TestPartitionEnd = this.TestPartitionEnd;
+      regData.TrainingPartition.Start = this.TrainingPartitionStart;
+      regData.TrainingPartition.End = this.TrainingPartitionEnd;
+      regData.TestPartition.Start = this.TestPartitionStart;
+      regData.TestPartition.End = this.TestPartitionEnd;
       return regData;
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ArtificialRegressionInstanceProvider.cs	(revision 7759)
@@ -20,8 +20,9 @@
 #endregion
 
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.Problems.Instances.Regression {
   public abstract class ArtificialRegressionInstanceProvider : RegressionInstanceProvider {
-    public override RegressionData LoadData(IDataDescriptor descriptor) {
+    public override RegressionProblemData LoadData(IDataDescriptor descriptor) {
       return ((ArtificialRegressionDataDescriptor)descriptor).GenerateRegressionData();
     }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/HeuristicLab.Problems.Instances.Regression-3.4.csproj
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/HeuristicLab.Problems.Instances.Regression-3.4.csproj	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/HeuristicLab.Problems.Instances.Regression-3.4.csproj	(revision 7759)
@@ -38,4 +38,7 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
     <Reference Include="HeuristicLab.Common-3.3">
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
@@ -44,4 +47,7 @@
     <Reference Include="HeuristicLab.Core-3.3">
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
+      <Private>False</Private>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <Private>False</Private>
     </Reference>
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RealWorld/RealWorldInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RealWorld/RealWorldInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RealWorld/RealWorldInstanceProvider.cs	(revision 7759)
@@ -39,5 +39,5 @@
     }
 
-    protected override string FileName { get { return "RealWorld"; } }
+    protected override string FileExtension { get { return "RealWorld"; } }
   }
 }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/RegressionInstanceProvider.cs	(revision 7759)
@@ -26,12 +26,17 @@
 using System.Linq;
 using System.Text;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.Problems.Instances.Regression {
-  public abstract class RegressionInstanceProvider : IProblemInstanceProvider<RegressionData> {
-    public RegressionData LoadData(string path) {
+  public abstract class RegressionInstanceProvider : IProblemInstanceProvider<RegressionProblemData> {
+    public RegressionProblemData LoadData(string path) {
       TableFileParser csvFileParser = new TableFileParser();
       csvFileParser.Parse(path);
 
-      RegressionData regData = new RegressionData();
+      Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
+      string targetVar = csvFileParser.VariableNames.Last();
+      IEnumerable<string> allowedInputVars = csvFileParser.VariableNames.Where(x => !x.Equals(targetVar));
+
+      RegressionProblemData regData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
       int pos = path.LastIndexOf('\\');
       if (pos < 0)
@@ -41,25 +46,14 @@
         regData.Name = path.Substring(pos, path.Length - pos);
       }
-      regData.InputVariables = new List<string>(csvFileParser.VariableNames).ToArray();
-      regData.TargetVariable = csvFileParser.VariableNames.Last();
-      regData.AllowedInputVariables = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable)).ToArray();
-      //convert to multidimensional array
-      List<IList> values = csvFileParser.Values;
-      regData.Values = new double[values.First().Count, values.Count];
-      for (int i = 0; i < values.Count; i++) {
-        for (int j = 0; j < values.First().Count; j++) {
-          regData.Values[j, i] = (double)values[i][j];
-        }
-      }
 
       int trainingPartEnd = csvFileParser.Rows * 2 / 3;
-      regData.TrainingPartitionStart = 0;
-      regData.TrainingPartitionEnd = trainingPartEnd;
-      regData.TestPartitionStart = trainingPartEnd;
-      regData.TestPartitionEnd = csvFileParser.Rows;
+      regData.TrainingPartition.Start = 0;
+      regData.TrainingPartition.End = trainingPartEnd;
+      regData.TestPartition.Start = trainingPartEnd;
+      regData.TestPartition.End = csvFileParser.Rows;
       return regData;
     }
 
-    public void SaveData(RegressionData instance, string path) {
+    public void SaveData(RegressionProblemData instance, string path) {
       StringBuilder strBuilder = new StringBuilder();
 
@@ -70,9 +64,9 @@
       strBuilder.AppendLine();
 
-      double[,] values = instance.Values;
+      Dataset dataset = instance.Dataset;
 
-      for (int i = 0; i < values.GetLength(0); i++) {
-        for (int j = 0; j < values.GetLength(1); j++) {
-          strBuilder.Append(values[i, j] + ";");
+      for (int i = 0; i < dataset.Rows; i++) {
+        for (int j = 0; j < dataset.Columns; j++) {
+          strBuilder.Append(dataset.GetValue(i, j) + ";");
         }
         strBuilder.Remove(strBuilder.Length - 1, 1);
@@ -86,5 +80,5 @@
 
     public abstract IEnumerable<IDataDescriptor> GetDataDescriptors();
-    public abstract RegressionData LoadData(IDataDescriptor descriptor);
+    public abstract RegressionProblemData LoadData(IDataDescriptor descriptor);
 
     public abstract string Name { get; }
@@ -92,6 +86,4 @@
     public abstract Uri WebLink { get; }
     public abstract string ReferencePublication { get; }
-
-    public IProblemInstanceConsumer<RegressionData> Consumer { get; set; }
   }
 }
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ResourceRegressionInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ResourceRegressionInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ResourceRegressionInstanceProvider.cs	(revision 7759)
@@ -26,4 +26,5 @@
 using System.Reflection;
 using System.Text.RegularExpressions;
+using HeuristicLab.Problems.DataAnalysis;
 using ICSharpCode.SharpZipLib.Zip;
 
@@ -31,8 +32,8 @@
   public abstract class ResourceRegressionInstanceProvider : RegressionInstanceProvider {
 
-    protected abstract string FileName { get; }
+    protected abstract string FileExtension { get; }
 
     public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
-      var solutionsArchiveName = GetResourceName(FileName + @"\.zip");
+      var solutionsArchiveName = GetResourceName(FileExtension + @"\.zip");
       if (!String.IsNullOrEmpty(solutionsArchiveName)) {
         using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
@@ -43,8 +44,8 @@
     }
 
-    public override RegressionData LoadData(IDataDescriptor id) {
+    public override RegressionProblemData LoadData(IDataDescriptor id) {
       var descriptor = (ResourceRegressionDataDescriptor)id;
 
-      RegressionData regData = LoadData(GetTempFileForResource(descriptor.ResourceName));
+      RegressionProblemData regData = LoadData(GetTempFileForResource(descriptor.ResourceName));
       regData.Name = descriptor.Name;
       regData.Description = descriptor.Description;
@@ -66,5 +67,5 @@
 
     private string GetTempFileForResource(string resourceName) {
-      var instanceArchiveName = GetResourceName(FileName + @"\.zip");
+      var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
       using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
         var entry = instancesZipFile.GetEntry(resourceName);
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/TrentMcConaghy/TrentMcConaghyInstanceProvider.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/TrentMcConaghy/TrentMcConaghyInstanceProvider.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/TrentMcConaghy/TrentMcConaghyInstanceProvider.cs	(revision 7759)
@@ -21,5 +21,7 @@
 
 using System;
+using System.Collections.Generic;
 using System.Linq;
+using HeuristicLab.Problems.DataAnalysis;
 
 namespace HeuristicLab.Problems.Instances.Regression {
@@ -43,11 +45,11 @@
     }
 
-    protected override string FileName { get { return "TrentMcConaghy"; } }
+    protected override string FileExtension { get { return "TrentMcConaghy"; } }
 
-    public override RegressionData LoadData(IDataDescriptor id) {
-      RegressionData regData = base.LoadData(id);
-
-      regData.TargetVariable = regData.InputVariables.First();
-      regData.AllowedInputVariables = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable)).ToArray();
+    public override RegressionProblemData LoadData(IDataDescriptor id) {
+      RegressionProblemData regData = base.LoadData(id);
+      string targetVar = regData.InputVariables.First().Value;
+      IEnumerable<string> allowedInputVars = regData.InputVariables.Where(x => !x.Equals(regData.TargetVariable)).Select(x => x.Value);
+      RegressionProblemData newRegData = new RegressionProblemData(regData.Dataset, allowedInputVars, targetVar);
 
       return regData;
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ValueGenerator.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ValueGenerator.cs	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances.Regression/3.4/ValueGenerator.cs	(revision 7759)
@@ -26,26 +26,21 @@
 using HeuristicLab.Random;
 namespace HeuristicLab.Problems.Instances.Regression {
-  public class ValueGenerator {
-    protected static FastRandom rand = new FastRandom();
+  public static class ValueGenerator {
+    private static FastRandom rand = new FastRandom();
 
     public static IEnumerable<double> GenerateSteps(double start, double end, double stepWidth) {
-      return Enumerable.Range(0, (int)Math.Round(((end - start) / stepWidth) + 1))
-                                      .Select(i => (start + i * stepWidth));
+      int steps = (int)Math.Round(((end - start) / stepWidth) + 1);
+      for (int i = 0; i < steps; i++)
+        yield return start + i * stepWidth;
     }
 
     public static IEnumerable<double> GenerateUniformDistributedValues(int amount, double start, double end) {
-      List<double> values = new List<double>();
-      for (int i = 0; i < amount; i++) {
-        values.Add(rand.NextDouble() * (end - start) + start);
-      }
-      return values;
+      for (int i = 0; i < amount; i++)
+        yield return rand.NextDouble() * (end - start) + start;
     }
 
     public static IEnumerable<double> GenerateNormalDistributedValues(int amount, double mu, double sigma) {
-      List<double> values = new List<double>();
-      for (int i = 0; i < amount; i++) {
-        values.Add(NormalDistributedRandom.NextDouble(rand, mu, sigma));
-      }
-      return values;
+      for (int i = 0; i < amount; i++)
+        yield return NormalDistributedRandom.NextDouble(rand, mu, sigma);
     }
 
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj	(revision 7758)
+++ branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj	(revision 7759)
@@ -119,8 +119,5 @@
     <Compile Include="IProblemInstanceExporter.cs" />
     <Compile Include="TableFileParser.cs" />
-    <Compile Include="Transformer.cs" />
     <Compile Include="Types\ATSPData.cs" />
-    <Compile Include="Types\ClassificationData.cs" />
-    <Compile Include="Types\RegressionData.cs" />
     <Compile Include="Types\CTAPData.cs" />
     <Compile Include="IDataDescriptor.cs" />
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Transformer.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Transformer.cs	(revision 7758)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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;
-
-namespace HeuristicLab.Problems.Instances {
-  public class Transformer {
-    public static double[,] Transformation(List<List<double>> data) {
-      if (!data.All(x => x.Count.Equals(data.First().Count)))
-        throw new ArgumentException("Can't create jagged array.");
-      double[,] values = new double[data.First().Count, data.Count];
-      for (int i = 0; i < values.GetLength(0); i++) {
-        for (int j = 0; j < values.GetLength(1); j++) {
-          values[i, j] = data[j][i];
-        }
-      }
-      return values;
-    }
-  }
-}
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/ClassificationData.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/ClassificationData.cs	(revision 7758)
+++ 	(revision )
@@ -1,72 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Instances {
-
-  /// <summary>
-  /// Describes instances of a Classification
-  /// Problem.
-  /// </summary>
-  public class ClassificationData {
-    /// <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 target variable of a problem.
-    /// </summary>
-    public string TargetVariable { get; set; }
-    /// <summary>
-    /// All variables which are in the problem.
-    /// </summary>
-    public string[] InputVariables { get; set; }
-    /// <summary>
-    /// All variables which shall be used to solve the problem.
-    /// (Variables wich are not contained by AllowedInputVariables won't be checked initialy, when the problem is created.)
-    /// </summary>
-    public string[] AllowedInputVariables { get; set; }
-    /// <summary>
-    /// Start of the trainings partition
-    /// </summary>
-    public int TrainingPartitionStart { get; set; }
-    /// <summary>
-    /// End of the trainings partition
-    /// </summary>
-    public int TrainingPartitionEnd { get; set; }
-    /// <summary>
-    /// Start of the test partition
-    /// </summary>
-    public int TestPartitionStart { get; set; }
-    /// <summary>
-    /// End of the test partition
-    /// </summary>
-    public int TestPartitionEnd { get; set; }
-    /// <summary>
-    /// Contains all the values of the variables
-    /// </summary>
-    public double[,] Values { get; set; }
-  }
-}
Index: branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/RegressionData.cs
===================================================================
--- branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.Instances/3.3/Types/RegressionData.cs	(revision 7758)
+++ 	(revision )
@@ -1,70 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2012 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.Instances {
-
-  /// <summary>
-  /// Describes instances of a Regression Problem.
-  /// </summary>
-  public class RegressionData {
-    /// <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 target variable of a problem.
-    /// </summary>
-    public string TargetVariable { get; set; }
-    /// <summary>
-    /// All variables which are in the problem.
-    /// </summary>
-    public string[] InputVariables { get; set; }
-    /// <summary>
-    /// All variables which shall be used to solve the problem.
-    /// (Variables wich are not contained by AllowedInputVariables won't be checked initialy, when the problem is created.)
-    /// </summary>
-    public string[] AllowedInputVariables { get; set; }
-    /// <summary>
-    /// Start of the trainings partition
-    /// </summary>
-    public int TrainingPartitionStart { get; set; }
-    /// <summary>
-    /// End of the trainings partition
-    /// </summary>
-    public int TrainingPartitionEnd { get; set; }
-    /// <summary>
-    /// Start of the test partition
-    /// </summary>
-    public int TestPartitionStart { get; set; }
-    /// <summary>
-    /// End of the test partition
-    /// </summary>
-    public int TestPartitionEnd { get; set; }
-    /// <summary>
-    /// Contains all the values of the variables
-    /// </summary>
-    public double[,] Values { get; set; }
-  }
-}
