Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLab.GP.StructureIdentification-3.3.csproj
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLab.GP.StructureIdentification-3.3.csproj	(revision 1836)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLab.GP.StructureIdentification-3.3.csproj	(revision 1856)
@@ -102,11 +102,4 @@
     <Compile Include="OffSpringSelectionGpEditor.Designer.cs">
       <DependentUpon>OffSpringSelectionGpEditor.cs</DependentUpon>
-    </Compile>
-    <Compile Include="ProblemInjector.cs" />
-    <Compile Include="ProblemInjectorView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ProblemInjectorView.Designer.cs">
-      <DependentUpon>ProblemInjectorView.cs</DependentUpon>
     </Compile>
     <Compile Include="StandardGpEditor.cs">
@@ -180,4 +173,8 @@
       <Name>HeuristicLab.Logging-3.2</Name>
     </ProjectReference>
+    <ProjectReference Include="..\..\HeuristicLab.Modeling\3.2\HeuristicLab.Modeling-3.2.csproj">
+      <Project>{80F7FADA-549D-4151-8856-79B620A50DBA}</Project>
+      <Name>HeuristicLab.Modeling-3.2</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\HeuristicLab.Operators.Programmable\3.2\HeuristicLab.Operators.Programmable-3.2.csproj">
       <Project>{E3CCBFC6-900C-41B6-AFB8-6646DB097435}</Project>
@@ -212,7 +209,4 @@
     <EmbeddedResource Include="OffSpringSelectionGpEditor.resx">
       <DependentUpon>OffSpringSelectionGpEditor.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ProblemInjectorView.resx">
-      <DependentUpon>ProblemInjectorView.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="StandardGpEditor.resx">
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLabGPStructureIdentificationPlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLabGPStructureIdentificationPlugin.cs	(revision 1836)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLabGPStructureIdentificationPlugin.cs	(revision 1856)
@@ -41,4 +41,5 @@
   [Dependency(Dependency = "HeuristicLab.Selection.OffspringSelection-3.2")]
   [Dependency(Dependency = "HeuristicLab.SequentialEngine-3.2")]
+  [Dependency(Dependency = "HeuristicLab.Modeling-3.2")]
   public class HeuristicLabGPStructureIdentificationPlugin : PluginBase {
   }
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjector.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjector.cs	(revision 1836)
+++ 	(revision )
@@ -1,90 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.Text;
-using System.Xml;
-using Core = HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.DataAnalysis;
-
-namespace HeuristicLab.GP.StructureIdentification {
-  public class ProblemInjector : Core.OperatorBase {
-    public override string Description {
-      get { return @"Injects the necessary variables for a structure identification problem."; }
-    }
-
-    public ProblemInjector()
-      : base() {
-      AddVariableInfo(new Core.VariableInfo("Dataset", "Dataset", typeof(Dataset), Core.VariableKind.New));
-      GetVariableInfo("Dataset").Local = true;
-      AddVariable(new Core.Variable("Dataset", new Dataset()));
-
-      AddVariableInfo(new Core.VariableInfo("TargetVariable", "TargetVariable", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("TargetVariable").Local = true;
-      AddVariable(new Core.Variable("TargetVariable", new IntData()));
-
-      AddVariableInfo(new Core.VariableInfo("AllowedFeatures", "Indexes of allowed input variables", typeof(ItemList<IntData>), Core.VariableKind.New));
-      GetVariableInfo("AllowedFeatures").Local = true;
-      AddVariable(new Core.Variable("AllowedFeatures", new ItemList<IntData>()));
-
-      AddVariableInfo(new Core.VariableInfo("TrainingSamplesStart", "TrainingSamplesStart", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("TrainingSamplesStart").Local = true;
-      AddVariable(new Core.Variable("TrainingSamplesStart", new IntData()));
-
-      AddVariableInfo(new Core.VariableInfo("TrainingSamplesEnd", "TrainingSamplesEnd", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("TrainingSamplesEnd").Local = true;
-      AddVariable(new Core.Variable("TrainingSamplesEnd", new IntData()));
-
-      AddVariableInfo(new Core.VariableInfo("ValidationSamplesStart", "ValidationSamplesStart", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("ValidationSamplesStart").Local = true;
-      AddVariable(new Core.Variable("ValidationSamplesStart", new IntData()));
-
-      AddVariableInfo(new Core.VariableInfo("ValidationSamplesEnd", "ValidationSamplesEnd", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("ValidationSamplesEnd").Local = true;
-      AddVariable(new Core.Variable("ValidationSamplesEnd", new IntData()));
-
-      AddVariableInfo(new Core.VariableInfo("TestSamplesStart", "TestSamplesStart", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("TestSamplesStart").Local = true;
-      AddVariable(new Core.Variable("TestSamplesStart", new IntData()));
-
-      AddVariableInfo(new Core.VariableInfo("TestSamplesEnd", "TestSamplesEnd", typeof(IntData), Core.VariableKind.New));
-      GetVariableInfo("TestSamplesEnd").Local = true;
-      AddVariable(new Core.Variable("TestSamplesEnd", new IntData()));
-    }
-
-    public override Core.IView CreateView() {
-      return new ProblemInjectorView(this);
-    }
-
-    public override Core.IOperation Apply(Core.IScope scope) {
-      foreach(Core.VariableInfo info in VariableInfos) {
-        if(info.Local) {
-          Core.IVariable var = GetVariable(info.FormalName);
-          if(var != null) scope.AddVariable(new Core.Variable(info.ActualName, (Core.IItem)var.Value.Clone()));
-        }
-      }
-      return null;
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjectorView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjectorView.Designer.cs	(revision 1836)
+++ 	(revision )
@@ -1,213 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.GP.StructureIdentification {
-  partial class ProblemInjectorView {
-    /// <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() {
-      this.importInstanceButton = new System.Windows.Forms.Button();
-      this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
-      this.tabControl = new System.Windows.Forms.TabControl();
-      this.dataTabPage = new System.Windows.Forms.TabPage();
-      this.datasetView = new HeuristicLab.DataAnalysis.DatasetView();
-      this.variableInfosTabPage = new System.Windows.Forms.TabPage();
-      this.operatorBaseVariableInfosView = new HeuristicLab.Core.OperatorBaseVariableInfosView();
-      this.tabPage1 = new System.Windows.Forms.TabPage();
-      this.variablesView = new HeuristicLab.Core.OperatorBaseVariablesView();
-      this.descriptionTabPage = new System.Windows.Forms.TabPage();
-      this.operatorBaseDescriptionView = new HeuristicLab.Core.OperatorBaseDescriptionView();
-      this.tabControl.SuspendLayout();
-      this.dataTabPage.SuspendLayout();
-      this.variableInfosTabPage.SuspendLayout();
-      this.tabPage1.SuspendLayout();
-      this.descriptionTabPage.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // importInstanceButton
-      // 
-      this.importInstanceButton.Location = new System.Drawing.Point(6, 6);
-      this.importInstanceButton.Name = "importInstanceButton";
-      this.importInstanceButton.Size = new System.Drawing.Size(129, 21);
-      this.importInstanceButton.TabIndex = 6;
-      this.importInstanceButton.Text = "&Import...";
-      this.importInstanceButton.UseVisualStyleBackColor = true;
-      this.importInstanceButton.Click += new System.EventHandler(this.importInstanceButton_Click);
-      // 
-      // openFileDialog
-      // 
-      this.openFileDialog.DefaultExt = "txt";
-      this.openFileDialog.FileName = "txt";
-      this.openFileDialog.Filter = "Text files|*.txt|All files|*.*";
-      this.openFileDialog.Title = "Import StructId File";
-      // 
-      // tabControl
-      // 
-      this.tabControl.Controls.Add(this.dataTabPage);
-      this.tabControl.Controls.Add(this.variableInfosTabPage);
-      this.tabControl.Controls.Add(this.tabPage1);
-      this.tabControl.Controls.Add(this.descriptionTabPage);
-      this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.tabControl.Location = new System.Drawing.Point(0, 0);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(507, 451);
-      this.tabControl.TabIndex = 0;
-      // 
-      // dataTabPage
-      // 
-      this.dataTabPage.Controls.Add(this.datasetView);
-      this.dataTabPage.Controls.Add(this.importInstanceButton);
-      this.dataTabPage.Location = new System.Drawing.Point(4, 22);
-      this.dataTabPage.Name = "dataTabPage";
-      this.dataTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.dataTabPage.Size = new System.Drawing.Size(499, 425);
-      this.dataTabPage.TabIndex = 0;
-      this.dataTabPage.Text = "Data";
-      this.dataTabPage.UseVisualStyleBackColor = true;
-      // 
-      // datasetView
-      // 
-      this.datasetView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.datasetView.Caption = "Editor";
-      this.datasetView.Dataset = null;
-      this.datasetView.Filename = null;
-      this.datasetView.Location = new System.Drawing.Point(6, 33);
-      this.datasetView.Name = "datasetView";
-      this.datasetView.Size = new System.Drawing.Size(487, 386);
-      this.datasetView.TabIndex = 7;
-      // 
-      // variableInfosTabPage
-      // 
-      this.variableInfosTabPage.Controls.Add(this.operatorBaseVariableInfosView);
-      this.variableInfosTabPage.Location = new System.Drawing.Point(4, 22);
-      this.variableInfosTabPage.Name = "variableInfosTabPage";
-      this.variableInfosTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.variableInfosTabPage.Size = new System.Drawing.Size(499, 425);
-      this.variableInfosTabPage.TabIndex = 1;
-      this.variableInfosTabPage.Text = "Variable Infos";
-      this.variableInfosTabPage.UseVisualStyleBackColor = true;
-      // 
-      // operatorBaseVariableInfosView
-      // 
-      this.operatorBaseVariableInfosView.Caption = "Operator";
-      this.operatorBaseVariableInfosView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.operatorBaseVariableInfosView.Location = new System.Drawing.Point(3, 3);
-      this.operatorBaseVariableInfosView.Name = "operatorBaseVariableInfosView";
-      this.operatorBaseVariableInfosView.Operator = null;
-      this.operatorBaseVariableInfosView.Size = new System.Drawing.Size(493, 419);
-      this.operatorBaseVariableInfosView.TabIndex = 0;
-      // 
-      // tabPage1
-      // 
-      this.tabPage1.Controls.Add(this.variablesView);
-      this.tabPage1.Location = new System.Drawing.Point(4, 22);
-      this.tabPage1.Name = "tabPage1";
-      this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPage1.Size = new System.Drawing.Size(499, 425);
-      this.tabPage1.TabIndex = 3;
-      this.tabPage1.Text = "Variables";
-      this.tabPage1.UseVisualStyleBackColor = true;
-      // 
-      // variablesView
-      // 
-      this.variablesView.Caption = "Operator";
-      this.variablesView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.variablesView.Location = new System.Drawing.Point(3, 3);
-      this.variablesView.Name = "variablesView";
-      this.variablesView.Operator = null;
-      this.variablesView.Size = new System.Drawing.Size(493, 419);
-      this.variablesView.TabIndex = 0;
-      // 
-      // descriptionTabPage
-      // 
-      this.descriptionTabPage.Controls.Add(this.operatorBaseDescriptionView);
-      this.descriptionTabPage.Location = new System.Drawing.Point(4, 22);
-      this.descriptionTabPage.Name = "descriptionTabPage";
-      this.descriptionTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.descriptionTabPage.Size = new System.Drawing.Size(499, 425);
-      this.descriptionTabPage.TabIndex = 2;
-      this.descriptionTabPage.Text = "Description";
-      this.descriptionTabPage.UseVisualStyleBackColor = true;
-      // 
-      // operatorBaseDescriptionView
-      // 
-      this.operatorBaseDescriptionView.Caption = "Operator";
-      this.operatorBaseDescriptionView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.operatorBaseDescriptionView.Location = new System.Drawing.Point(3, 3);
-      this.operatorBaseDescriptionView.Name = "operatorBaseDescriptionView";
-      this.operatorBaseDescriptionView.Operator = null;
-      this.operatorBaseDescriptionView.Size = new System.Drawing.Size(493, 419);
-      this.operatorBaseDescriptionView.TabIndex = 0;
-      // 
-      // StructIdProblemInjectorView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.tabControl);
-      this.Name = "StructIdProblemInjectorView";
-      this.Size = new System.Drawing.Size(507, 451);
-      this.tabControl.ResumeLayout(false);
-      this.dataTabPage.ResumeLayout(false);
-      this.variableInfosTabPage.ResumeLayout(false);
-      this.tabPage1.ResumeLayout(false);
-      this.descriptionTabPage.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Button importInstanceButton;
-    private System.Windows.Forms.OpenFileDialog openFileDialog;
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage dataTabPage;
-    private System.Windows.Forms.TabPage variableInfosTabPage;
-    private HeuristicLab.Core.OperatorBaseVariableInfosView operatorBaseVariableInfosView;
-    private System.Windows.Forms.TabPage descriptionTabPage;
-    private HeuristicLab.Core.OperatorBaseDescriptionView operatorBaseDescriptionView;
-    private System.Windows.Forms.TabPage tabPage1;
-    private HeuristicLab.Core.OperatorBaseVariablesView variablesView;
-    private HeuristicLab.DataAnalysis.DatasetView datasetView;
-  }
-}
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjectorView.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjectorView.cs	(revision 1836)
+++ 	(revision )
@@ -1,158 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2008 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.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-using HeuristicLab.Operators;
-using HeuristicLab.DataAnalysis;
-
-namespace HeuristicLab.GP.StructureIdentification {
-  public partial class ProblemInjectorView : ViewBase {
-    public ProblemInjector ProblemInjector {
-      get { return (ProblemInjector)Item; }
-      set { base.Item = value; }
-    }
-
-    public ProblemInjectorView()
-      : base() {
-      InitializeComponent();
-    }
-    public ProblemInjectorView(ProblemInjector problemInjector)
-      : this() {
-      ProblemInjector = problemInjector;
-      variablesView.Operator = problemInjector;
-      variablesView.Update();
-    }
-
-    protected override void RemoveItemEvents() {
-      operatorBaseVariableInfosView.Operator = null;
-      operatorBaseDescriptionView.Operator = null;
-      base.RemoveItemEvents();
-    }
-    protected override void AddItemEvents() {
-      base.AddItemEvents();
-      operatorBaseVariableInfosView.Operator = ProblemInjector;
-      operatorBaseDescriptionView.Operator = ProblemInjector;
-    }
-
-    protected override void UpdateControls() {
-      base.UpdateControls();
-      if (ProblemInjector == null) {
-        importInstanceButton.Enabled = false;
-      } else {
-        Dataset dataset = (Dataset)ProblemInjector.GetVariable("Dataset").Value;
-        datasetView.Dataset = dataset;
-        importInstanceButton.Enabled = true;
-      }
-    }
-
-    private void importInstanceButton_Click(object sender, EventArgs e) {
-      if (openFileDialog.ShowDialog(this) == DialogResult.OK) {
-        DatasetParser parser = new DatasetParser();
-        bool success = false;
-        try {
-          try {
-            parser.Import(openFileDialog.FileName, true);
-            success = true;
-          }
-          catch (DataFormatException ex) {
-            ShowWarningMessageBox(ex);
-            // not possible to parse strictly => clear and try to parse non-strict
-            parser.Reset();
-            parser.Import(openFileDialog.FileName, false);
-            success = true;
-          }
-        }
-        catch (DataFormatException ex) {
-          // if the non-strict parsing also failed then show the exception
-          ShowErrorMessageBox(ex);
-        }
-        if (success) {
-          Dataset dataset = (Dataset)ProblemInjector.GetVariable("Dataset").Value;
-          dataset.Rows = parser.Rows;
-          dataset.Columns = parser.Columns;
-          for (int i = 0; i < parser.VariableNames.Length; i++) {
-            dataset.SetVariableName(i, parser.VariableNames[i]);
-          }
-          dataset.Name = parser.ProblemName;
-          dataset.Samples = new double[dataset.Rows * dataset.Columns];
-          Array.Copy(parser.Samples, dataset.Samples, dataset.Columns * dataset.Rows);
-          TrySetVariable("TrainingSamplesStart", parser.TrainingSamplesStart);
-          TrySetVariable("TrainingSamplesStart", parser.TrainingSamplesStart);
-          TrySetVariable("TrainingSamplesEnd", parser.TrainingSamplesEnd);
-          TrySetVariable("ValidationSamplesStart", parser.ValidationSamplesStart);
-          TrySetVariable("ValidationSamplesEnd", parser.ValidationSamplesEnd);
-          TrySetVariable("TestSamplesStart", parser.TestSamplesStart);
-          TrySetVariable("TestSamplesEnd", parser.TestSamplesEnd);
-          TrySetVariable("TargetVariable", parser.TargetVariable);
-
-          IVariable var = ProblemInjector.GetVariable("AllowedFeatures");
-          if (var != null) {
-            ItemList<IntData> allowedFeatures = (ItemList<IntData>)var.Value;
-            allowedFeatures.Clear();
-            List<int> nonInputVariables = parser.NonInputVariables;
-            for (int i = 0; i < dataset.Columns; i++) {
-              if (!nonInputVariables.Contains(i)) allowedFeatures.Add(new IntData(i));
-            }
-          }
-          Refresh();
-        }
-      }
-    }
-
-    private void TrySetVariable(string name, int value) {
-      IVariable var = ProblemInjector.GetVariable(name);
-      if (var != null) {
-        ((IntData)var.Value).Data = value;
-      }
-    }
-
-    private void ShowWarningMessageBox(Exception ex) {
-      MessageBox.Show(ex.Message,
-                      "Warning - " + ex.GetType().Name,
-                      MessageBoxButtons.OK,
-                      MessageBoxIcon.Warning);
-    }
-    private void ShowErrorMessageBox(Exception ex) {
-      MessageBox.Show(BuildErrorMessage(ex),
-                      "Error - " + ex.GetType().Name,
-                      MessageBoxButtons.OK,
-                      MessageBoxIcon.Error);
-    }
-    private string BuildErrorMessage(Exception ex) {
-      StringBuilder sb = new StringBuilder();
-      sb.Append("Sorry, but something went wrong!\n\n" + ex.Message + "\n\n" + ex.StackTrace);
-
-      while (ex.InnerException != null) {
-        ex = ex.InnerException;
-        sb.Append("\n\n-----\n\n" + ex.Message + "\n\n" + ex.StackTrace);
-      }
-      return sb.ToString();
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjectorView.resx
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/ProblemInjectorView.resx	(revision 1836)
+++ 	(revision )
@@ -1,123 +1,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
Index: trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/StandardGP.cs
===================================================================
--- trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/StandardGP.cs	(revision 1836)
+++ trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/StandardGP.cs	(revision 1856)
@@ -34,4 +34,5 @@
 using HeuristicLab.Data;
 using HeuristicLab.Operators.Programmable;
+using HeuristicLab.Modeling;
 
 namespace HeuristicLab.GP.StructureIdentification {
