Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.Designer.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.Designer.cs	(revision 5653)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.Designer.cs	(revision 5654)
@@ -53,4 +53,6 @@
       this.repetitionsNumericUpDown = new System.Windows.Forms.NumericUpDown();
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      this.label1 = new System.Windows.Forms.Label();
+      this.engineComboBox = new System.Windows.Forms.ComboBox();
       ((System.ComponentModel.ISupportInitialize)(this.repetitionsNumericUpDown)).BeginInit();
       this.SuspendLayout();
@@ -60,5 +62,5 @@
       this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
-      this.okButton.Location = new System.Drawing.Point(113, 58);
+      this.okButton.Location = new System.Drawing.Point(113, 83);
       this.okButton.Name = "okButton";
       this.okButton.Size = new System.Drawing.Size(75, 23);
@@ -72,5 +74,5 @@
       this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-      this.cancelButton.Location = new System.Drawing.Point(194, 58);
+      this.cancelButton.Location = new System.Drawing.Point(194, 83);
       this.cancelButton.Name = "cancelButton";
       this.cancelButton.Size = new System.Drawing.Size(75, 23);
@@ -137,4 +139,24 @@
       this.repetitionsNumericUpDown.Validated += new System.EventHandler(this.repetitionsNumericUpDown_Validated);
       // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(12, 57);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(43, 13);
+      this.label1.TabIndex = 6;
+      this.label1.Text = "&Engine:";
+      // 
+      // engineComboBox
+      // 
+      this.engineComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.engineComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.engineComboBox.FormattingEnabled = true;
+      this.engineComboBox.Location = new System.Drawing.Point(113, 54);
+      this.engineComboBox.Name = "engineComboBox";
+      this.engineComboBox.Size = new System.Drawing.Size(156, 21);
+      this.engineComboBox.TabIndex = 7;
+      // 
       // CreateExperimentDialog
       // 
@@ -143,5 +165,7 @@
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.CancelButton = this.cancelButton;
-      this.ClientSize = new System.Drawing.Size(281, 93);
+      this.ClientSize = new System.Drawing.Size(281, 118);
+      this.Controls.Add(this.engineComboBox);
+      this.Controls.Add(this.label1);
       this.Controls.Add(this.repetitionsNumericUpDown);
       this.Controls.Add(this.repetitionsLabel);
@@ -172,4 +196,6 @@
     private System.Windows.Forms.NumericUpDown repetitionsNumericUpDown;
     private System.Windows.Forms.ToolTip toolTip;
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.ComboBox engineComboBox;
 
   }
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.cs	(revision 5653)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.cs	(revision 5654)
@@ -21,6 +21,7 @@
 
 using System;
+using System.Collections.Generic;
 using System.Windows.Forms;
-using HeuristicLab.Optimization;
+using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.MetaOptimization.Views {
@@ -33,7 +34,19 @@
       get { return (int)repetitionsNumericUpDown.Value; }
     }
+    public IEngine Engine {
+      get { return (IEngine)engineComboBox.SelectedItem; }
+    }
 
-    public CreateExperimentDialog() {
+    public CreateExperimentDialog(IEnumerable<IEngine> engines, Type selectedEngine) {
       InitializeComponent();
+      foreach (var engine in engines) {
+        this.engineComboBox.Items.Add(engine);
+        if (engine.GetType() == selectedEngine) {
+          this.engineComboBox.SelectedItem = engine;
+        }
+        if (this.engineComboBox.SelectedItem == null) {
+          this.engineComboBox.SelectedIndex = 0;
+        }
+      }
     }
 
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.resx
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.resx	(revision 5653)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/CreateExperimentDialog.resx	(revision 5654)
@@ -121,3 +121,6 @@
     <value>17, 17</value>
   </metadata>
+  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/HeuristicLab.Problems.MetaOptimization.Views-3.3.csproj
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/HeuristicLab.Problems.MetaOptimization.Views-3.3.csproj	(revision 5653)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/HeuristicLab.Problems.MetaOptimization.Views-3.3.csproj	(revision 5654)
@@ -114,4 +114,7 @@
       <HintPath>..\..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.SequentialEngine-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.SequentialEngine-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/MetaOptimizationProblemView.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/MetaOptimizationProblemView.cs	(revision 5653)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/MetaOptimizationProblemView.cs	(revision 5654)
@@ -1,13 +1,10 @@
 ﻿using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
 using System.Linq;
-using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.Core;
 using HeuristicLab.MainForm;
+using HeuristicLab.Optimization;
 using HeuristicLab.Optimization.Views;
-using HeuristicLab.Optimization;
-using System.Windows.Forms;
+using HeuristicLab.PluginInfrastructure;
 
 namespace HeuristicLab.Problems.MetaOptimization.Views {
@@ -68,10 +65,11 @@
         }
         if (result == System.Windows.Forms.DialogResult.OK) {
-          CreateExperimentDialog dlg = new CreateExperimentDialog();
+          CreateExperimentDialog dlg = new CreateExperimentDialog(ApplicationManager.Manager.GetInstances<IEngine>(), typeof(SequentialEngine.SequentialEngine));
           DialogResult dlgResult = dlg.ShowDialog();
 
           if (dlgResult == DialogResult.OK) {
-            IAlgorithm algorithm = Content.Algorithm;
+            var algorithm = (EngineAlgorithm)Content.Algorithm.Clone();
             if(Content.Problems.Count > 0) algorithm.Problem = Content.Problems.First();
+            algorithm.Engine = (IEngine)dlg.Engine.Clone();
             Experiment experiment;
 
@@ -89,5 +87,5 @@
     #endregion
 
-    protected void parameterCollectionView_DragEnterOver(object sender, System.Windows.Forms.DragEventArgs e) {
+    private void parameterCollectionView_DragEnterOver(object sender, System.Windows.Forms.DragEventArgs e) {
       e.Effect = DragDropEffects.None;
       Type type = e.Data.GetData("Type") as Type;
@@ -99,5 +97,5 @@
       }
     }
-    protected void parameterCollectionView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) {
+    private void parameterCollectionView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) {
       if (e.Effect != DragDropEffects.None) {
         IAlgorithm algorithm = e.Data.GetData("Value") as IAlgorithm;
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemCollectionView.Designer.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemCollectionView.Designer.cs	(revision 5654)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemCollectionView.Designer.cs	(revision 5654)
@@ -0,0 +1,32 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
+  partial class ValueConfigurationCheckedItemCollectionView {
+    /// <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.Font;
+    }
+
+    #endregion
+  }
+}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemCollectionView.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemCollectionView.cs	(revision 5654)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemCollectionView.cs	(revision 5654)
@@ -0,0 +1,66 @@
+﻿using System;
+using System.Linq;
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views {
+  [View("ValueConfigurationList View")]
+  [Content(typeof(ICheckedValueConfigurationList), IsDefaultView = true)]
+  public sealed partial class ValueConfigurationCheckedItemCollectionView : CheckedItemListView<IValueConfiguration> {
+    public new ICheckedValueConfigurationList Content {
+      get { return (ICheckedValueConfigurationList)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ValueConfigurationCheckedItemCollectionView() {
+      InitializeComponent();
+      this.viewHost.ViewsLabelVisible = false;
+    }
+
+    #region Event Handlers (Content)
+    #endregion
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        SetEnabledStateOfControls();
+      } else {
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      if(Content != null) this.removeButton.Enabled = Content.Count > Content.MinItemCount;
+    }
+
+    #region Event Handlers (child controls)
+    protected override void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
+      base.itemsListView_SelectedIndexChanged(sender, e);
+      this.removeButton.Enabled = removeButton.Enabled && (Content.Count > Content.MinItemCount);
+    }
+    #endregion
+
+    protected override IValueConfiguration CreateItem() {
+      var objectSelectorDialog = new ObjectSelectorDialog<IItem>(Content.ValidValues.GroupBy(x => ApplicationManager.Manager.GetDeclaringPlugin(x.GetType()).Name));
+      if (objectSelectorDialog.ShowDialog(this) == DialogResult.OK) {
+        try {
+          IItem value = (IItem)objectSelectorDialog.Item.Clone();
+          if (value is NullValue) {
+            return new NullValueConfiguration();
+          } else if(value is IParameterizedItem) {
+            return new ParameterizedValueConfiguration(value, value.GetType());
+          } else {
+            return new RangeValueConfiguration(value, value.GetType());
+          } 
+        }
+        catch (Exception ex) {
+          ErrorHandling.ShowErrorDialog(this, ex);
+        }
+      }
+      return null;
+    }
+  }
+}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemList.Designer.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemList.Designer.cs	(revision 5653)
+++ 	(revision )
@@ -1,32 +1,0 @@
-﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
-  partial class ValueConfigurationCheckedItemCollectionView {
-    /// <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.Font;
-    }
-
-    #endregion
-  }
-}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemList.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemList.cs	(revision 5653)
+++ 	(revision )
@@ -1,86 +1,0 @@
-﻿using System;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Collections;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Problems.MetaOptimization.Views {
-  [View("ValueConfigurationList View")]
-  [Content(typeof(ICheckedValueConfigurationList), IsDefaultView = true)]
-  public sealed partial class ValueConfigurationCheckedItemCollectionView : CheckedItemListView<IValueConfiguration> {
-    public new ICheckedValueConfigurationList Content {
-      get { return (ICheckedValueConfigurationList)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ValueConfigurationCheckedItemCollectionView() {
-      InitializeComponent();
-      this.viewHost.ViewsLabelVisible = false;
-    }
-
-    protected override void DeregisterContentEvents() {
-      Content.ItemsRemoved -= new Collections.CollectionItemsChangedEventHandler<IndexedItem<IValueConfiguration>>(Content_ItemsRemoved);
-      base.DeregisterContentEvents();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ItemsRemoved += new Collections.CollectionItemsChangedEventHandler<IndexedItem<IValueConfiguration>>(Content_ItemsRemoved);
-    }
-
-    #region Event Handlers (Content)
-    private new void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IndexedItem<IValueConfiguration>> e) {
-      if (InvokeRequired) {
-        Invoke(new EventHandler<CollectionItemsChangedEventArgs<IndexedItem<IValueConfiguration>>>(Content_ItemsRemoved), sender, e);
-      } else {
-        base.Content_ItemsRemoved(sender, e);
-        SetEnabledStateOfControls();
-      }
-    }
-    #endregion
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content != null) {
-        SetEnabledStateOfControls();
-      } else {
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      if(Content != null) this.removeButton.Enabled = Content.Count > Content.MinItemCount;
-    }
-
-    protected override void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
-      base.itemsListView_SelectedIndexChanged(sender, e);
-      this.removeButton.Enabled = removeButton.Enabled && (Content.Count > Content.MinItemCount);
-    }
-
-    #region Event Handlers (child controls)
-    #endregion
-
-    protected override IValueConfiguration CreateItem() {
-      var objectSelectorDialog = new ObjectSelectorDialog<IItem>(Content.ValidValues.GroupBy(x => ApplicationManager.Manager.GetDeclaringPlugin(x.GetType()).Name));
-      if (objectSelectorDialog.ShowDialog(this) == DialogResult.OK) {
-        try {
-          IItem value = (IItem)objectSelectorDialog.Item.Clone();
-          if (value is NullValue) {
-            return new NullValueConfiguration();
-          } else if(value is IParameterizedItem) {
-            return new ParameterizedValueConfiguration(value, value.GetType());
-          } else {
-            return new RangeValueConfiguration(value, value.GetType());
-          } 
-        }
-        catch (Exception ex) {
-          ErrorHandling.ShowErrorDialog(this, ex);
-        }
-      }
-      return null;
-    }
-  }
-}
Index: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs
===================================================================
--- branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs	(revision 5653)
+++ branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs	(revision 5654)
@@ -22,4 +22,5 @@
 using System;
 using System.Linq;
+using HeuristicLab.Algorithms.GeneticAlgorithm;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
@@ -29,5 +30,4 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Algorithms.GeneticAlgorithm;
 using HeuristicLab.Problems.TestFunctions;
 
@@ -36,5 +36,7 @@
   [Creatable("Problems")]
   [StorableClass]
-  public sealed class MetaOptimizationProblem : SingleObjectiveProblem<IParameterConfigurationEvaluator, IParameterConfigurationCreator> {
+  public sealed class MetaOptimizationProblem : SingleObjectiveProblem<IParameterConfigurationEvaluator, IParameterConfigurationCreator>, IStorableContent {
+    public string Filename { get; set; }
+
     public const string AlgorithmTypeParameterName = "AlgorithmType";
     public const string ProblemTypeParameterName = "ProblemType";
