Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.sln
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.sln	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.MetaOptimization.sln	(revision 4839)
@@ -8,18 +8,46 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.MetaOptimization.Views-3.3", "HeuristicLab.Problems.MetaOptimization.Views\3.3\HeuristicLab.Problems.MetaOptimization.Views-3.3.csproj", "{59567338-A551-4386-8405-A8C0DF3E376D}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MetaOptimization.Test", "HeuristicLab.MetaOptimization.Test\HeuristicLab.MetaOptimization.Test.csproj", "{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
+		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Release|Any CPU.Build.0 = Release|Any CPU
+		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{ABBC1DF6-FCC6-4F86-AB75-B6B3A72E7D17}.Release|x86.ActiveCfg = Release|Any CPU
 		{59567338-A551-4386-8405-A8C0DF3E376D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{59567338-A551-4386-8405-A8C0DF3E376D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{59567338-A551-4386-8405-A8C0DF3E376D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{59567338-A551-4386-8405-A8C0DF3E376D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{59567338-A551-4386-8405-A8C0DF3E376D}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{59567338-A551-4386-8405-A8C0DF3E376D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{59567338-A551-4386-8405-A8C0DF3E376D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{59567338-A551-4386-8405-A8C0DF3E376D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{59567338-A551-4386-8405-A8C0DF3E376D}.Release|x86.ActiveCfg = Release|Any CPU
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Debug|x86.ActiveCfg = Debug|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Debug|x86.Build.0 = Debug|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Release|Any CPU.ActiveCfg = Release|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Release|Mixed Platforms.Build.0 = Release|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Release|x86.ActiveCfg = Release|x86
+		{0E232F46-FD0B-4FEA-8C22-AF18DE0D151E}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
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 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/HeuristicLab.Problems.MetaOptimization.Views-3.3.csproj	(revision 4839)
@@ -54,5 +54,7 @@
       <HintPath>..\..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Core.Views-3.3.dll</HintPath>
     </Reference>
-    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Data-3.3">
+      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.Data.Views-3.3">
       <HintPath>..\..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Data.Views-3.3.dll</HintPath>
@@ -83,14 +85,14 @@
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="RootParameterConfigurationView.cs">
+    <Compile Include="ValueConfigurationViews\ValueConfigurationCheckedItemList.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="RootParameterConfigurationView.Designer.cs">
-      <DependentUpon>RootParameterConfigurationView.cs</DependentUpon>
+    <Compile Include="ValueConfigurationViews\ValueConfigurationCheckedItemList.Designer.cs">
+      <DependentUpon>ValueConfigurationCheckedItemList.cs</DependentUpon>
     </Compile>
-    <Compile Include="NumericRangeView.cs">
+    <Compile Include="ValueConfigurationViews\NumericRangeView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="NumericRangeView.Designer.cs">
+    <Compile Include="ValueConfigurationViews\NumericRangeView.Designer.cs">
       <DependentUpon>NumericRangeView.cs</DependentUpon>
     </Compile>
@@ -101,22 +103,28 @@
       <DependentUpon>ObjectSelectorDialog.cs</DependentUpon>
     </Compile>
-    <Compile Include="ParameterConfigurationListView.cs">
+    <Compile Include="ParameterConfigurationViews\ParameterConfigurationListView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="ParameterConfigurationListView.Designer.cs">
+    <Compile Include="ParameterConfigurationViews\ParameterConfigurationListView.Designer.cs">
       <DependentUpon>ParameterConfigurationListView.cs</DependentUpon>
     </Compile>
     <Compile Include="HeuristicLabProblemsMetaOptimizationViewsPlugin.cs" />
-    <Compile Include="ParameterConfigurationView.cs">
+    <Compile Include="ParameterConfigurationViews\ParameterConfigurationView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="ParameterConfigurationView.Designer.cs">
+    <Compile Include="ParameterConfigurationViews\ParameterConfigurationView.Designer.cs">
       <DependentUpon>ParameterConfigurationView.cs</DependentUpon>
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ValueView.cs">
+    <Compile Include="ValueConfigurationViews\ValueConfigurationView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="ValueView.Designer.cs">
+    <Compile Include="ValueConfigurationViews\ValueConfigurationView.Designer.cs">
+      <DependentUpon>ValueConfigurationView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="ValueConfigurationViews\ValueView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ValueConfigurationViews\ValueView.Designer.cs">
       <DependentUpon>ValueView.cs</DependentUpon>
     </Compile>
@@ -133,8 +141,5 @@
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="RootParameterConfigurationView.resx">
-      <DependentUpon>RootParameterConfigurationView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="NumericRangeView.resx">
+    <EmbeddedResource Include="ValueConfigurationViews\NumericRangeView.resx">
       <DependentUpon>NumericRangeView.cs</DependentUpon>
     </EmbeddedResource>
@@ -142,11 +147,14 @@
       <DependentUpon>ObjectSelectorDialog.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="ParameterConfigurationListView.resx">
+    <EmbeddedResource Include="ParameterConfigurationViews\ParameterConfigurationListView.resx">
       <DependentUpon>ParameterConfigurationListView.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="ParameterConfigurationView.resx">
+    <EmbeddedResource Include="ParameterConfigurationViews\ParameterConfigurationView.resx">
       <DependentUpon>ParameterConfigurationView.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="ValueView.resx">
+    <EmbeddedResource Include="ValueConfigurationViews\ValueConfigurationView.resx">
+      <DependentUpon>ValueConfigurationView.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ValueConfigurationViews\ValueView.resx">
       <DependentUpon>ValueView.cs</DependentUpon>
     </EmbeddedResource>
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.Designer.cs	(revision 4838)
+++ 	(revision )
@@ -1,127 +1,0 @@
-﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
-  partial class IntValueRangeView {
-    /// <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.label1 = new System.Windows.Forms.Label();
-      this.label2 = new System.Windows.Forms.Label();
-      this.lowerValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
-      this.upperValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
-      this.label3 = new System.Windows.Forms.Label();
-      this.stepSizeValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
-      this.SuspendLayout();
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(3, 3);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(36, 13);
-      this.label1.TabIndex = 0;
-      this.label1.Text = "Lower";
-      // 
-      // label2
-      // 
-      this.label2.AutoSize = true;
-      this.label2.Location = new System.Drawing.Point(3, 32);
-      this.label2.Name = "label2";
-      this.label2.Size = new System.Drawing.Size(36, 13);
-      this.label2.TabIndex = 1;
-      this.label2.Text = "Upper";
-      // 
-      // lowerValueView
-      // 
-      this.lowerValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.lowerValueView.Caption = "StringConvertibleValue View";
-      this.lowerValueView.Content = null;
-      this.lowerValueView.LabelVisible = true;
-      this.lowerValueView.Location = new System.Drawing.Point(38, 0);
-      this.lowerValueView.Name = "lowerValueView";
-      this.lowerValueView.ReadOnly = false;
-      this.lowerValueView.Size = new System.Drawing.Size(396, 23);
-      this.lowerValueView.TabIndex = 2;
-      // 
-      // upperValueView
-      // 
-      this.upperValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.upperValueView.Caption = "StringConvertibleValue View";
-      this.upperValueView.Content = null;
-      this.upperValueView.LabelVisible = true;
-      this.upperValueView.Location = new System.Drawing.Point(38, 29);
-      this.upperValueView.Name = "upperValueView";
-      this.upperValueView.ReadOnly = false;
-      this.upperValueView.Size = new System.Drawing.Size(396, 23);
-      this.upperValueView.TabIndex = 3;
-      // 
-      // label3
-      // 
-      this.label3.AutoSize = true;
-      this.label3.Location = new System.Drawing.Point(3, 61);
-      this.label3.Name = "label3";
-      this.label3.Size = new System.Drawing.Size(29, 13);
-      this.label3.TabIndex = 4;
-      this.label3.Text = "Step";
-      // 
-      // stepSizeValueView
-      // 
-      this.stepSizeValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.stepSizeValueView.Caption = "StringConvertibleValue View";
-      this.stepSizeValueView.Content = null;
-      this.stepSizeValueView.LabelVisible = true;
-      this.stepSizeValueView.Location = new System.Drawing.Point(38, 58);
-      this.stepSizeValueView.Name = "stepSizeValueView";
-      this.stepSizeValueView.ReadOnly = false;
-      this.stepSizeValueView.Size = new System.Drawing.Size(396, 23);
-      this.stepSizeValueView.TabIndex = 5;
-      // 
-      // IntValueRangeView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.label3);
-      this.Controls.Add(this.stepSizeValueView);
-      this.Controls.Add(this.label2);
-      this.Controls.Add(this.label1);
-      this.Controls.Add(this.upperValueView);
-      this.Controls.Add(this.lowerValueView);
-      this.Name = "IntValueRangeView";
-      this.Size = new System.Drawing.Size(434, 85);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.Label label1;
-    private System.Windows.Forms.Label label2;
-    private Data.Views.StringConvertibleValueView lowerValueView;
-    private Data.Views.StringConvertibleValueView upperValueView;
-    private System.Windows.Forms.Label label3;
-    private Data.Views.StringConvertibleValueView stepSizeValueView;
-
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.cs	(revision 4838)
+++ 	(revision )
@@ -1,60 +1,0 @@
-﻿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.MainForm;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Core;
-using HeuristicLab.Data;
-
-namespace HeuristicLab.Problems.MetaOptimization.Views {
-  /// <summary>
-  /// The visual representation of a <see cref="IIntegerRange"/>.
-  /// </summary>
-  [View("NumericRange View")]
-  [Content(typeof(IRange<IntValue>), true)]
-  public partial class IntValueRangeView : ItemView {
-    /// <summary>
-    /// Gets or sets the variable to represent visually.
-    /// </summary>
-    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
-    /// No own data storage present.</remarks>
-    public new IRange<IntValue> Content {
-      get { return (IRange<IntValue>)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public IntValueRangeView() {
-      InitializeComponent();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-    }
-
-    protected override void DeregisterContentEvents() {
-      base.DeregisterContentEvents();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content != null) {
-        lowerValueView.Content = Content.LowerBound;
-        upperValueView.Content = Content.UpperBound;
-        stepSizeValueView.Content = Content.StepSize;
-      } else {
-        lowerValueView.Content = null;
-        upperValueView.Content = null;
-        stepSizeValueView.Content = null;
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-    }
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/NumericRangeView.resx	(revision 4838)
+++ 	(revision )
@@ -1,120 +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>
-</root>
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.Designer.cs	(revision 4838)
+++ 	(revision )
@@ -1,59 +1,0 @@
-﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
-  partial class ParameterConfigurationListView {
-    /// <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.optimizeCheckBox = new System.Windows.Forms.CheckBox();
-      this.SuspendLayout();
-
-
-      // 
-      // optimizeCheckBox
-      // 
-      this.optimizeCheckBox.AutoSize = true;
-      this.optimizeCheckBox.Location = new System.Drawing.Point(72, 52);
-      this.optimizeCheckBox.Name = "optimizeCheckBox";
-      this.optimizeCheckBox.Size = new System.Drawing.Size(66, 17);
-      this.optimizeCheckBox.TabIndex = 4;
-      this.optimizeCheckBox.Text = "Optimize";
-      this.optimizeCheckBox.UseVisualStyleBackColor = true;
-
-      // 
-      // ParameterConfigurationView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.optimizeCheckBox);
-      this.Name = "ParameterConfigurationView";
-      this.Size = new System.Drawing.Size(729, 481);
-
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.CheckBox optimizeCheckBox;
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.cs	(revision 4838)
+++ 	(revision )
@@ -1,48 +1,0 @@
-﻿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.MainForm;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Core;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Collections;
-
-namespace HeuristicLab.Problems.MetaOptimization.Views {
-  /// <summary>
-  /// The visual representation of a <see cref="ParameterConfiguration"/>.
-  /// </summary>
-  [View("ParameterConfigurationList View")]
-  [Content(typeof(IItemList<IParameterConfiguration>), true)]
-  public partial class ParameterConfigurationListView : ItemCollectionView<IParameterConfiguration> {
-    /// <summary>
-    /// Gets or sets the variable to represent visually.
-    /// </summary>
-    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
-    /// No own data storage present.</remarks>
-    public new IItemList<IParameterConfiguration> Content {
-      get { return (IItemList<IParameterConfiguration>)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ParameterConfigurationListView() {
-      InitializeComponent();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-    }
-
-    protected override void DeregisterContentEvents() {
-      base.DeregisterContentEvents();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-    }
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationListView.resx	(revision 4838)
+++ 	(revision )
@@ -1,126 +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="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>107, 17</value>
-  </metadata>
-  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-</root>
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.Designer.cs	(revision 4838)
+++ 	(revision )
@@ -1,168 +1,0 @@
-﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
-  partial class ParameterConfigurationView {
-    /// <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.optimizeCheckBox = new System.Windows.Forms.CheckBox();
-      this.tabControl = new System.Windows.Forms.TabControl();
-      this.valueTabPage = new System.Windows.Forms.TabPage();
-      this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.configurationtabPage = new System.Windows.Forms.TabPage();
-      this.configurationViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.childParameterTabPage = new System.Windows.Forms.TabPage();
-      this.childParameterConfigurationListView = new HeuristicLab.Problems.MetaOptimization.Views.ParameterConfigurationListView();
-      this.tabControl.SuspendLayout();
-      this.valueTabPage.SuspendLayout();
-      this.configurationtabPage.SuspendLayout();
-      this.childParameterTabPage.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // optimizeCheckBox
-      // 
-      this.optimizeCheckBox.AutoSize = true;
-      this.optimizeCheckBox.Location = new System.Drawing.Point(3, 3);
-      this.optimizeCheckBox.Name = "optimizeCheckBox";
-      this.optimizeCheckBox.Size = new System.Drawing.Size(66, 17);
-      this.optimizeCheckBox.TabIndex = 4;
-      this.optimizeCheckBox.Text = "Optimize";
-      this.optimizeCheckBox.UseVisualStyleBackColor = true;
-      this.optimizeCheckBox.CheckedChanged += new System.EventHandler(this.optimizeCheckBox_CheckedChanged);
-      // 
-      // tabControl
-      // 
-      this.tabControl.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.tabControl.Controls.Add(this.valueTabPage);
-      this.tabControl.Controls.Add(this.configurationtabPage);
-      this.tabControl.Controls.Add(this.childParameterTabPage);
-      this.tabControl.Location = new System.Drawing.Point(3, 26);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(553, 447);
-      this.tabControl.TabIndex = 5;
-      // 
-      // valueTabPage
-      // 
-      this.valueTabPage.Controls.Add(this.valueViewHost);
-      this.valueTabPage.Location = new System.Drawing.Point(4, 22);
-      this.valueTabPage.Name = "valueTabPage";
-      this.valueTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.valueTabPage.Size = new System.Drawing.Size(545, 421);
-      this.valueTabPage.TabIndex = 0;
-      this.valueTabPage.Text = "Value";
-      this.valueTabPage.UseVisualStyleBackColor = true;
-      // 
-      // valueViewHost
-      // 
-      this.valueViewHost.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.valueViewHost.Caption = "Value";
-      this.valueViewHost.Content = null;
-      this.valueViewHost.Enabled = false;
-      this.valueViewHost.Location = new System.Drawing.Point(3, 3);
-      this.valueViewHost.Name = "valueViewHost";
-      this.valueViewHost.ReadOnly = false;
-      this.valueViewHost.Size = new System.Drawing.Size(539, 415);
-      this.valueViewHost.TabIndex = 0;
-      this.valueViewHost.ViewType = null;
-      // 
-      // configurationtabPage
-      // 
-      this.configurationtabPage.Controls.Add(this.configurationViewHost);
-      this.configurationtabPage.Location = new System.Drawing.Point(4, 22);
-      this.configurationtabPage.Name = "configurationtabPage";
-      this.configurationtabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.configurationtabPage.Size = new System.Drawing.Size(545, 421);
-      this.configurationtabPage.TabIndex = 1;
-      this.configurationtabPage.Text = "Configuration";
-      this.configurationtabPage.UseVisualStyleBackColor = true;
-      // 
-      // configurationViewHost
-      // 
-      this.configurationViewHost.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.configurationViewHost.Caption = "Configuration";
-      this.configurationViewHost.Content = null;
-      this.configurationViewHost.Enabled = false;
-      this.configurationViewHost.Location = new System.Drawing.Point(4, 4);
-      this.configurationViewHost.Name = "configurationViewHost";
-      this.configurationViewHost.ReadOnly = false;
-      this.configurationViewHost.Size = new System.Drawing.Size(538, 414);
-      this.configurationViewHost.TabIndex = 0;
-      this.configurationViewHost.ViewType = null;
-      // 
-      // childParameterTabPage
-      // 
-      this.childParameterTabPage.Controls.Add(this.childParameterConfigurationListView);
-      this.childParameterTabPage.Location = new System.Drawing.Point(4, 22);
-      this.childParameterTabPage.Name = "childParameterTabPage";
-      this.childParameterTabPage.Size = new System.Drawing.Size(545, 421);
-      this.childParameterTabPage.TabIndex = 2;
-      this.childParameterTabPage.Text = "Child Parameters";
-      this.childParameterTabPage.UseVisualStyleBackColor = true;
-      // 
-      // childParameterConfigurationListView
-      // 
-      this.childParameterConfigurationListView.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.childParameterConfigurationListView.Caption = "Parameter Configuration";
-      this.childParameterConfigurationListView.Content = null;
-      this.childParameterConfigurationListView.Location = new System.Drawing.Point(4, 4);
-      this.childParameterConfigurationListView.Name = "childParameterConfigurationListView";
-      this.childParameterConfigurationListView.ReadOnly = false;
-      this.childParameterConfigurationListView.Size = new System.Drawing.Size(538, 414);
-      this.childParameterConfigurationListView.TabIndex = 0;
-      // 
-      // ParameterConfigurationView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.tabControl);
-      this.Controls.Add(this.optimizeCheckBox);
-      this.Name = "ParameterConfigurationView";
-      this.Size = new System.Drawing.Size(556, 473);
-      this.tabControl.ResumeLayout(false);
-      this.valueTabPage.ResumeLayout(false);
-      this.configurationtabPage.ResumeLayout(false);
-      this.childParameterTabPage.ResumeLayout(false);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.CheckBox optimizeCheckBox;
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage valueTabPage;
-    private MainForm.WindowsForms.ViewHost valueViewHost;
-    private System.Windows.Forms.TabPage configurationtabPage;
-    private MainForm.WindowsForms.ViewHost configurationViewHost;
-    private System.Windows.Forms.TabPage childParameterTabPage;
-    private ParameterConfigurationListView childParameterConfigurationListView;
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.cs	(revision 4838)
+++ 	(revision )
@@ -1,109 +1,0 @@
-﻿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.MainForm;
-using HeuristicLab.Core.Views;
-using HeuristicLab.Core;
-using HeuristicLab.Collections;
-
-namespace HeuristicLab.Problems.MetaOptimization.Views {
-  /// <summary>
-  /// The visual representation of a <see cref="ParameterConfiguration"/>.
-  /// </summary>
-  [View("ParameterConfiguration View")]
-  [Content(typeof(IParameterConfiguration), false)]
-  [Content(typeof(ParameterConfiguration), true)]
-  public partial class ParameterConfigurationView : ItemView {
-    /// <summary>
-    /// Gets or sets the variable to represent visually.
-    /// </summary>
-    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
-    /// No own data storage present.</remarks>
-    public new IParameterConfiguration Content {
-      get { return (IParameterConfiguration)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ParameterConfigurationView() {
-      InitializeComponent();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content != null) {
-        optimizeCheckBox.Checked = Content.OptimizationEnabled;
-        valueViewHost.ViewType = typeof(ValueView);
-        valueViewHost.Content = Content;
-        if (Content is IntValueParameterConfiguration) {
-          configurationViewHost.Content = ((IntValueParameterConfiguration)Content).Ranges;
-        } else {
-          configurationViewHost.Content = null;
-        }
-
-        childParameterConfigurationListView.Content = ((ParameterConfiguration)Content).ChildParameterConfigurations;
-      } else {
-        valueViewHost.Content = null;
-        configurationViewHost.Content = null;
-        childParameterConfigurationListView.Content = null;
-      }
-      SetEnabledStateOfControls();
-    }
-
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ChildParameterConfigurations.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsAdded);
-      Content.ChildParameterConfigurations.ItemsRemoved += new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsRemoved);
-    }
-    protected override void DeregisterContentEvents() {
-      Content.ChildParameterConfigurations.ItemsAdded -= new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsAdded);
-      Content.ChildParameterConfigurations.ItemsRemoved -= new CollectionItemsChangedEventHandler<IndexedItem<IParameterConfiguration>>(ChildParameterConfigurations_ItemsRemoved);
-      base.DeregisterContentEvents();
-    }
-
-    void ChildParameterConfigurations_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<IParameterConfiguration>> e) {
-      SetEnabledStateOfControls();
-    }
-    
-    void ChildParameterConfigurations_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<IParameterConfiguration>> e) {
-      SetEnabledStateOfControls();
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      this.SuspendLayout();
-      if (optimizeCheckBox.Checked) {
-        DisableTabPage(valueTabPage);
-        EnableTabPage(configurationtabPage);
-        if (Content.ChildParameterConfigurations.Count > 0)
-          EnableTabPage(childParameterTabPage);
-      } else {
-        DisableTabPage(configurationtabPage);
-        DisableTabPage(childParameterTabPage);
-        EnableTabPage(valueTabPage);
-      }
-      this.ResumeLayout();
-    }
-
-    private void optimizeCheckBox_CheckedChanged(object sender, EventArgs e) {
-      Content.OptimizationEnabled = optimizeCheckBox.Checked;
-      SetEnabledStateOfControls();
-    }
-
-    protected void EnableTabPage(TabPage tabPage) {
-      if (!tabControl.TabPages.Contains(tabPage)) {
-        tabControl.TabPages.Add(tabPage);
-      }
-    }
-
-    protected void DisableTabPage(TabPage tabPage) {
-      if (tabControl.TabPages.Contains(tabPage)) {
-        tabControl.TabPages.Remove(tabPage);
-      }
-    }
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationView.resx	(revision 4838)
+++ 	(revision )
@@ -1,120 +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>
-</root>
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.Designer.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.Designer.cs	(revision 4839)
@@ -0,0 +1,59 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
+  partial class ParameterConfigurationListView {
+    /// <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.optimizeCheckBox = new System.Windows.Forms.CheckBox();
+      this.SuspendLayout();
+
+
+      // 
+      // optimizeCheckBox
+      // 
+      this.optimizeCheckBox.AutoSize = true;
+      this.optimizeCheckBox.Location = new System.Drawing.Point(72, 52);
+      this.optimizeCheckBox.Name = "optimizeCheckBox";
+      this.optimizeCheckBox.Size = new System.Drawing.Size(66, 17);
+      this.optimizeCheckBox.TabIndex = 4;
+      this.optimizeCheckBox.Text = "Optimize";
+      this.optimizeCheckBox.UseVisualStyleBackColor = true;
+
+      // 
+      // ParameterConfigurationView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.optimizeCheckBox);
+      this.Name = "ParameterConfigurationView";
+      this.Size = new System.Drawing.Size(729, 481);
+
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.CheckBox optimizeCheckBox;
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.cs	(revision 4839)
@@ -0,0 +1,48 @@
+﻿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.MainForm;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Core;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Collections;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views {
+  /// <summary>
+  /// The visual representation of a <see cref="ParameterConfiguration"/>.
+  /// </summary>
+  [View("ParameterConfigurationList View")]
+  [Content(typeof(IItemList<IParameterConfiguration>), true)]
+  public partial class ParameterConfigurationListView : ItemCollectionView<IParameterConfiguration> {
+    /// <summary>
+    /// Gets or sets the variable to represent visually.
+    /// </summary>
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
+    /// No own data storage present.</remarks>
+    public new IItemList<IParameterConfiguration> Content {
+      get { return (IItemList<IParameterConfiguration>)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ParameterConfigurationListView() {
+      InitializeComponent();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.resx	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationListView.resx	(revision 4839)
@@ -0,0 +1,126 @@
+﻿<?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="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>107, 17</value>
+  </metadata>
+  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.Designer.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.Designer.cs	(revision 4839)
@@ -0,0 +1,74 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
+  partial class ParameterConfigurationView {
+    /// <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.optimizeCheckBox = new System.Windows.Forms.CheckBox();
+      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.SuspendLayout();
+      // 
+      // optimizeCheckBox
+      // 
+      this.optimizeCheckBox.AutoSize = true;
+      this.optimizeCheckBox.Location = new System.Drawing.Point(3, 3);
+      this.optimizeCheckBox.Name = "optimizeCheckBox";
+      this.optimizeCheckBox.Size = new System.Drawing.Size(66, 17);
+      this.optimizeCheckBox.TabIndex = 4;
+      this.optimizeCheckBox.Text = "Optimize";
+      this.optimizeCheckBox.UseVisualStyleBackColor = true;
+      this.optimizeCheckBox.CheckedChanged += new System.EventHandler(this.optimizeCheckBox_CheckedChanged);
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(0, 26);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(556, 447);
+      this.viewHost.TabIndex = 5;
+      this.viewHost.ViewType = null;
+      // 
+      // ParameterConfigurationView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.viewHost);
+      this.Controls.Add(this.optimizeCheckBox);
+      this.Name = "ParameterConfigurationView";
+      this.Size = new System.Drawing.Size(556, 473);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.CheckBox optimizeCheckBox;
+    private MainForm.WindowsForms.ViewHost viewHost;
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.cs	(revision 4839)
@@ -0,0 +1,79 @@
+﻿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.MainForm;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Core;
+using HeuristicLab.Collections;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views {
+  /// <summary>
+  /// The visual representation of a <see cref="ParameterConfiguration"/>.
+  /// </summary>
+  [View("ParameterConfiguration View")]
+  [Content(typeof(IParameterConfiguration), false)]
+  [Content(typeof(ParameterConfiguration), true)]
+  public partial class ParameterConfigurationView : ItemView {
+    /// <summary>
+    /// Gets or sets the variable to represent visually.
+    /// </summary>
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
+    /// No own data storage present.</remarks>
+    public new IParameterConfiguration Content {
+      get { return (IParameterConfiguration)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ParameterConfigurationView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        this.optimizeCheckBox.Checked = Content.OptimizationEnabled;
+      }
+      SetEnabledStateOfControls();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.OptimizationEnabledChanged += new EventHandler(Content_OptimizationEnabledChanged);
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.OptimizationEnabledChanged -= new EventHandler(Content_OptimizationEnabledChanged);
+      base.DeregisterContentEvents();
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      if (Content != null) {
+        if (Content.OptimizationEnabled) {
+          viewHost.ViewType = null;
+          viewHost.Content = Content.ValueConfigurations;
+        } else {
+          viewHost.ViewType = typeof(ValueView);
+          viewHost.Content = Content.ActualValueConfiguration;
+        }
+      } else {
+        viewHost.Content = null;
+      }
+    }
+
+    void Content_OptimizationEnabledChanged(object sender, EventArgs e) {
+      optimizeCheckBox.Checked = Content.OptimizationEnabled;
+      SetEnabledStateOfControls();
+    }
+
+    private void optimizeCheckBox_CheckedChanged(object sender, EventArgs e) {
+      Content.OptimizationEnabled = optimizeCheckBox.Checked;
+      SetEnabledStateOfControls();
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.resx	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ParameterConfigurationViews/ParameterConfigurationView.resx	(revision 4839)
@@ -0,0 +1,120 @@
+﻿<?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>
+</root>
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.Designer.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.Designer.cs	(revision 4839)
@@ -0,0 +1,127 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
+  partial class IntValueRangeView {
+    /// <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.label1 = new System.Windows.Forms.Label();
+      this.label2 = new System.Windows.Forms.Label();
+      this.lowerValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
+      this.upperValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
+      this.label3 = new System.Windows.Forms.Label();
+      this.stepSizeValueView = new HeuristicLab.Data.Views.StringConvertibleValueView();
+      this.SuspendLayout();
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(3, 3);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(36, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "Lower";
+      // 
+      // label2
+      // 
+      this.label2.AutoSize = true;
+      this.label2.Location = new System.Drawing.Point(3, 32);
+      this.label2.Name = "label2";
+      this.label2.Size = new System.Drawing.Size(36, 13);
+      this.label2.TabIndex = 1;
+      this.label2.Text = "Upper";
+      // 
+      // lowerValueView
+      // 
+      this.lowerValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.lowerValueView.Caption = "StringConvertibleValue View";
+      this.lowerValueView.Content = null;
+      this.lowerValueView.LabelVisible = true;
+      this.lowerValueView.Location = new System.Drawing.Point(38, 0);
+      this.lowerValueView.Name = "lowerValueView";
+      this.lowerValueView.ReadOnly = false;
+      this.lowerValueView.Size = new System.Drawing.Size(396, 23);
+      this.lowerValueView.TabIndex = 2;
+      // 
+      // upperValueView
+      // 
+      this.upperValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.upperValueView.Caption = "StringConvertibleValue View";
+      this.upperValueView.Content = null;
+      this.upperValueView.LabelVisible = true;
+      this.upperValueView.Location = new System.Drawing.Point(38, 29);
+      this.upperValueView.Name = "upperValueView";
+      this.upperValueView.ReadOnly = false;
+      this.upperValueView.Size = new System.Drawing.Size(396, 23);
+      this.upperValueView.TabIndex = 3;
+      // 
+      // label3
+      // 
+      this.label3.AutoSize = true;
+      this.label3.Location = new System.Drawing.Point(3, 61);
+      this.label3.Name = "label3";
+      this.label3.Size = new System.Drawing.Size(29, 13);
+      this.label3.TabIndex = 4;
+      this.label3.Text = "Step";
+      // 
+      // stepSizeValueView
+      // 
+      this.stepSizeValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.stepSizeValueView.Caption = "StringConvertibleValue View";
+      this.stepSizeValueView.Content = null;
+      this.stepSizeValueView.LabelVisible = true;
+      this.stepSizeValueView.Location = new System.Drawing.Point(38, 58);
+      this.stepSizeValueView.Name = "stepSizeValueView";
+      this.stepSizeValueView.ReadOnly = false;
+      this.stepSizeValueView.Size = new System.Drawing.Size(396, 23);
+      this.stepSizeValueView.TabIndex = 5;
+      // 
+      // IntValueRangeView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.label3);
+      this.Controls.Add(this.stepSizeValueView);
+      this.Controls.Add(this.label2);
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.upperValueView);
+      this.Controls.Add(this.lowerValueView);
+      this.Name = "IntValueRangeView";
+      this.Size = new System.Drawing.Size(434, 85);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.Label label2;
+    private Data.Views.StringConvertibleValueView lowerValueView;
+    private Data.Views.StringConvertibleValueView upperValueView;
+    private System.Windows.Forms.Label label3;
+    private Data.Views.StringConvertibleValueView stepSizeValueView;
+
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.cs	(revision 4839)
@@ -0,0 +1,60 @@
+﻿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.MainForm;
+using HeuristicLab.Core.Views;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views {
+  /// <summary>
+  /// The visual representation of a <see cref="IIntegerRange"/>.
+  /// </summary>
+  [View("NumericRange View")]
+  [Content(typeof(IRange<IntValue>), true)]
+  public partial class IntValueRangeView : ItemView {
+    /// <summary>
+    /// Gets or sets the variable to represent visually.
+    /// </summary>
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
+    /// No own data storage present.</remarks>
+    public new IRange<IntValue> Content {
+      get { return (IRange<IntValue>)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public IntValueRangeView() {
+      InitializeComponent();
+    }
+
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+    }
+
+    protected override void DeregisterContentEvents() {
+      base.DeregisterContentEvents();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        lowerValueView.Content = Content.LowerBound;
+        upperValueView.Content = Content.UpperBound;
+        stepSizeValueView.Content = Content.StepSize;
+      } else {
+        lowerValueView.Content = null;
+        upperValueView.Content = null;
+        stepSizeValueView.Content = null;
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.resx	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/NumericRangeView.resx	(revision 4839)
@@ -0,0 +1,120 @@
+﻿<?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>
+</root>
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 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemList.Designer.cs	(revision 4839)
@@ -0,0 +1,32 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
+  partial class ValueConfigurationCheckedItemList {
+    /// <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 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationCheckedItemList.cs	(revision 4839)
@@ -0,0 +1,21 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views {
+  [View("ValueConfigurationList View")]
+  [Content(typeof(CheckedItemList<IValueConfiguration>), true)]
+  [Content(typeof(ICheckedItemList<IValueConfiguration>), true)]
+  public partial class ValueConfigurationCheckedItemList : CheckedItemListView<IValueConfiguration> {
+    public ValueConfigurationCheckedItemList() {
+      InitializeComponent();
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.Designer.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.Designer.cs	(revision 4839)
@@ -0,0 +1,59 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views.ValueConfigurationViews {
+  partial class ValueConfigurationView {
+    /// <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.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.SuspendLayout();
+      // 
+      // viewHost
+      // 
+      this.viewHost.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.viewHost.Caption = "View";
+      this.viewHost.Content = null;
+      this.viewHost.Enabled = false;
+      this.viewHost.Location = new System.Drawing.Point(0, 0);
+      this.viewHost.Name = "viewHost";
+      this.viewHost.ReadOnly = false;
+      this.viewHost.Size = new System.Drawing.Size(513, 366);
+      this.viewHost.TabIndex = 0;
+      this.viewHost.ViewType = null;
+      // 
+      // ValueConfigurationView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.viewHost);
+      this.Name = "ValueConfigurationView";
+      this.Size = new System.Drawing.Size(513, 366);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private MainForm.WindowsForms.ViewHost viewHost;
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.cs	(revision 4839)
@@ -0,0 +1,35 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views.ValueConfigurationViews {
+  [View("ValueConfiguration View")]
+  [Content(typeof(IValueConfiguration), false)]
+  [Content(typeof(ValueConfiguration), true)]
+  public partial class ValueConfigurationView : ItemView {
+    public new IValueConfiguration Content {
+      get { return (IValueConfiguration)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ValueConfigurationView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        this.viewHost.Content = Content.ParameterConfigurations;
+      } else {
+        this.viewHost.Content = null;
+      }
+      SetEnabledStateOfControls();
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.resx	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueConfigurationView.resx	(revision 4839)
@@ -0,0 +1,120 @@
+﻿<?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>
+</root>
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.Designer.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.Designer.cs	(revision 4839)
@@ -0,0 +1,106 @@
+﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
+  partial class ValueView {
+    /// <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() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ValueView));
+      this.valueGroupBox = new System.Windows.Forms.GroupBox();
+      this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.clearValueButton = new System.Windows.Forms.Button();
+      this.setValueButton = new System.Windows.Forms.Button();
+      this.valueGroupBox.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // valueGroupBox
+      // 
+      this.valueGroupBox.AllowDrop = true;
+      this.valueGroupBox.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.valueGroupBox.Controls.Add(this.valueViewHost);
+      this.valueGroupBox.Controls.Add(this.clearValueButton);
+      this.valueGroupBox.Controls.Add(this.setValueButton);
+      this.valueGroupBox.Location = new System.Drawing.Point(0, 0);
+      this.valueGroupBox.Name = "valueGroupBox";
+      this.valueGroupBox.Size = new System.Drawing.Size(482, 274);
+      this.valueGroupBox.TabIndex = 7;
+      this.valueGroupBox.TabStop = false;
+      this.valueGroupBox.Text = "Value";
+      // 
+      // valueViewHost
+      // 
+      this.valueViewHost.AllowDrop = true;
+      this.valueViewHost.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.valueViewHost.Caption = "View";
+      this.valueViewHost.Content = null;
+      this.valueViewHost.Enabled = false;
+      this.valueViewHost.Location = new System.Drawing.Point(6, 49);
+      this.valueViewHost.Name = "valueViewHost";
+      this.valueViewHost.ReadOnly = false;
+      this.valueViewHost.Size = new System.Drawing.Size(470, 219);
+      this.valueViewHost.TabIndex = 3;
+      this.valueViewHost.ViewType = null;
+      // 
+      // clearValueButton
+      // 
+      this.clearValueButton.Enabled = false;
+      this.clearValueButton.Image = ((System.Drawing.Image)(resources.GetObject("clearValueButton.Image")));
+      this.clearValueButton.Location = new System.Drawing.Point(36, 19);
+      this.clearValueButton.Name = "clearValueButton";
+      this.clearValueButton.Size = new System.Drawing.Size(24, 24);
+      this.clearValueButton.TabIndex = 1;
+      this.clearValueButton.UseVisualStyleBackColor = true;
+      this.clearValueButton.Click += new System.EventHandler(this.clearValueButton_Click);
+      // 
+      // setValueButton
+      // 
+      this.setValueButton.Image = ((System.Drawing.Image)(resources.GetObject("setValueButton.Image")));
+      this.setValueButton.Location = new System.Drawing.Point(6, 19);
+      this.setValueButton.Name = "setValueButton";
+      this.setValueButton.Size = new System.Drawing.Size(24, 24);
+      this.setValueButton.TabIndex = 0;
+      this.setValueButton.UseVisualStyleBackColor = true;
+      this.setValueButton.Click += new System.EventHandler(this.setValueButton_Click);
+      // 
+      // ValueView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.valueGroupBox);
+      this.Name = "ValueView";
+      this.Size = new System.Drawing.Size(482, 274);
+      this.valueGroupBox.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    protected System.Windows.Forms.GroupBox valueGroupBox;
+    protected MainForm.WindowsForms.ViewHost valueViewHost;
+    protected System.Windows.Forms.Button clearValueButton;
+    protected System.Windows.Forms.Button setValueButton;
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.cs	(revision 4839)
@@ -0,0 +1,59 @@
+﻿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.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters.Views;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.MetaOptimization.Views {
+  [View("Value View")]
+  [Content(typeof(IValueConfiguration), false)]
+  public partial class ValueView : ItemView {
+
+    public new IValueConfiguration Content {
+      get { return (IValueConfiguration)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public ValueView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content != null) {
+        valueViewHost.Content = Content.Value;
+      } else {
+        valueViewHost.Content = null;
+      }
+    }
+
+    private void setValueButton_Click(object sender, EventArgs e) {
+      var typeSelectorDialog = new TypeSelectorDialog();
+      typeSelectorDialog.Caption = "Select Value";
+      typeSelectorDialog.TypeSelector.Configure(Content.ValueDataType, false, true);
+
+      if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
+        try {
+          Content.Value = (IItem)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
+          valueViewHost.Content = Content.Value;
+        }
+        catch (Exception ex) {
+          ErrorHandling.ShowErrorDialog(this, ex);
+        }
+      }
+    }
+
+    private void clearValueButton_Click(object sender, EventArgs e) {
+      Content.Value = null;
+      valueViewHost.Content = null;
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.resx	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueConfigurationViews/ValueView.resx	(revision 4839)
@@ -0,0 +1,190 @@
+﻿<?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>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="clearValueButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
+        DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
+        bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
+        sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
+        AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
+        JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
+        3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
+        li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
+        ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
+        wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
+        hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
+        4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
+        VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
+        5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
+        qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
+        j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
+        1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
+        rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
+        fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
+        B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
+        yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
+        YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
+        yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
+        vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
+        vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
+        Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
+        bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
+        llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
+        ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
+        xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
+        eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
+        YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
+        XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
+        WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
+        xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
+        dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
+        V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
+        Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
+        Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
+        PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
+        0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
+        /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
+        XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
+        fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
+        tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
+        6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDgAACw4BQL7hQQAAAbVJREFUOE+lk7lLA0EU
+        xuMRcdeYyIBRQcmxURTiEXE8ECQqpAkpJJVNihSKjVjbW1lJChuxtBGUNGKRwj9AvA9QEMRGS01M4YYZ
+        v9nN5twgavGDt/tmvn3HtxbOueU/6JcpGQEpMAfqfyMoLjeAZbYU5iw2ryJe0N6ZVUZJI3JesGrkhYB4
+        GQdHLB7iIId4vUqEkmZRIYvNiY/sFAX0FrrApCYSHeNscZojToKWfIsSm/UkkROXN4GtXMAol5ImJNdY
+        qFcVQoj3wBBI5EUTiB2l7VVvgJI6HBoA51pLkaEvkMbzAZAqZ1N7hZQEWZSqLDIoKnkCxGyw5gKUuHHh
+        CrBsoI2nA3Yh8vCzgPAAJS5wy6c7c69+u/DGmBjum18TWQF1tWdASSefcp5nZt381ic/prqsQW0TOtsX
+        Xkm9ViRMt+jeYgtiz1Md+yBz5pE+Tl3N0cJB3QP2lwHb450iHyfbG3qMgZYKhLMTTn7plfi1Ih8WPFBc
+        sWjPd9Jt/UR144g1yxv/gtj/xnO/jd8o8j3iPuNA2eBg8fdhxy5ytFxAd+Mo2AIzoLVyWCXtCOvL5k78
+        w6/9DUORY3pvwx7IAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <data name="setValueButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABA0lEQVQ4T2P4//8/AyWYJM2H
+        6jI81+bE/QfhPZWpBiCLiTZg/bwKJ5DG1/Mb/18ogxhCtAEgzbs31P5fs+PU/4utxWDNE0xNiTMApHnn
+        muL/7x70/L95JOd/W1stWHOzpb4fQReANG9flgrWfH1/0v9Nszz/iwnx/U8L1QD7H68ByDYjay5N0rVG
+        jjWsgYjLZnTNWF0A0rx1QTiGs4GaNbGlFxQXgDRvnuNLtGYMF8yYu/j/8e0d/x+dK4EHWJCLqga+lAp3
+        AVBzGciAf//+/l85ORAc2ricjTUQGRgYyvIKS/8HhoQD0yfDf0I2Y0QjUNMDkCFAAzJIyVxE5wVchlJs
+        AACPTsHYUxl3NQAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.Designer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.Designer.cs	(revision 4838)
+++ 	(revision )
@@ -1,106 +1,0 @@
-﻿namespace HeuristicLab.Problems.MetaOptimization.Views {
-  partial class ValueView {
-    /// <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() {
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ValueView));
-      this.valueGroupBox = new System.Windows.Forms.GroupBox();
-      this.valueViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.clearValueButton = new System.Windows.Forms.Button();
-      this.setValueButton = new System.Windows.Forms.Button();
-      this.valueGroupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // valueGroupBox
-      // 
-      this.valueGroupBox.AllowDrop = true;
-      this.valueGroupBox.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.valueGroupBox.Controls.Add(this.valueViewHost);
-      this.valueGroupBox.Controls.Add(this.clearValueButton);
-      this.valueGroupBox.Controls.Add(this.setValueButton);
-      this.valueGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.valueGroupBox.Name = "valueGroupBox";
-      this.valueGroupBox.Size = new System.Drawing.Size(482, 274);
-      this.valueGroupBox.TabIndex = 7;
-      this.valueGroupBox.TabStop = false;
-      this.valueGroupBox.Text = "Value";
-      // 
-      // valueViewHost
-      // 
-      this.valueViewHost.AllowDrop = true;
-      this.valueViewHost.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.valueViewHost.Caption = "View";
-      this.valueViewHost.Content = null;
-      this.valueViewHost.Enabled = false;
-      this.valueViewHost.Location = new System.Drawing.Point(6, 49);
-      this.valueViewHost.Name = "valueViewHost";
-      this.valueViewHost.ReadOnly = false;
-      this.valueViewHost.Size = new System.Drawing.Size(470, 219);
-      this.valueViewHost.TabIndex = 3;
-      this.valueViewHost.ViewType = null;
-      // 
-      // clearValueButton
-      // 
-      this.clearValueButton.Enabled = false;
-      this.clearValueButton.Image = ((System.Drawing.Image)(resources.GetObject("clearValueButton.Image")));
-      this.clearValueButton.Location = new System.Drawing.Point(36, 19);
-      this.clearValueButton.Name = "clearValueButton";
-      this.clearValueButton.Size = new System.Drawing.Size(24, 24);
-      this.clearValueButton.TabIndex = 1;
-      this.clearValueButton.UseVisualStyleBackColor = true;
-      this.clearValueButton.Click += new System.EventHandler(this.clearValueButton_Click);
-      // 
-      // setValueButton
-      // 
-      this.setValueButton.Image = ((System.Drawing.Image)(resources.GetObject("setValueButton.Image")));
-      this.setValueButton.Location = new System.Drawing.Point(6, 19);
-      this.setValueButton.Name = "setValueButton";
-      this.setValueButton.Size = new System.Drawing.Size(24, 24);
-      this.setValueButton.TabIndex = 0;
-      this.setValueButton.UseVisualStyleBackColor = true;
-      this.setValueButton.Click += new System.EventHandler(this.setValueButton_Click);
-      // 
-      // ValueView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.valueGroupBox);
-      this.Name = "ValueView";
-      this.Size = new System.Drawing.Size(482, 274);
-      this.valueGroupBox.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    protected System.Windows.Forms.GroupBox valueGroupBox;
-    protected MainForm.WindowsForms.ViewHost valueViewHost;
-    protected System.Windows.Forms.Button clearValueButton;
-    protected System.Windows.Forms.Button setValueButton;
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.cs	(revision 4838)
+++ 	(revision )
@@ -1,55 +1,0 @@
-﻿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.Views;
-using HeuristicLab.MainForm;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters.Views;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Problems.MetaOptimization.Views {
-  [View("Value View")]
-  [Content(typeof(IParameterConfiguration), false)]
-  public partial class ValueView : ItemView {
-
-    public new IParameterConfiguration Content {
-      get { return (IParameterConfiguration)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ValueView() {
-      InitializeComponent();
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      valueViewHost.Content = Content.Value;
-    }
-
-    private void setValueButton_Click(object sender, EventArgs e) {
-      var typeSelectorDialog = new TypeSelectorDialog();
-      typeSelectorDialog.Caption = "Select Value";
-      typeSelectorDialog.TypeSelector.Configure(Content.ValueType, false, true);
-
-      if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
-        try {
-          Content.Value = (IItem)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
-          valueViewHost.Content = Content.Value;
-        }
-        catch (Exception ex) {
-          ErrorHandling.ShowErrorDialog(this, ex);
-        }
-      }
-    }
-
-    private void clearValueButton_Click(object sender, EventArgs e) {
-      Content.Value = null;
-      valueViewHost.Content = null;
-    }
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.resx
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization.Views/3.3/ValueView.resx	(revision 4838)
+++ 	(revision )
@@ -1,190 +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>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="clearValueButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
-        DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
-        bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
-        sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
-        AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
-        JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
-        3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
-        li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
-        ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
-        wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
-        hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
-        4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
-        VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
-        5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
-        qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
-        j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
-        1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
-        rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
-        fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
-        B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
-        yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
-        YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
-        yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
-        vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
-        vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
-        Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
-        bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
-        llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
-        ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
-        xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
-        eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
-        YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
-        XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
-        WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
-        xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
-        dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
-        V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
-        Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
-        Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
-        PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
-        0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
-        /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
-        XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
-        fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
-        tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
-        6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALDgAACw4BQL7hQQAAAbVJREFUOE+lk7lLA0EU
-        xuMRcdeYyIBRQcmxURTiEXE8ECQqpAkpJJVNihSKjVjbW1lJChuxtBGUNGKRwj9AvA9QEMRGS01M4YYZ
-        v9nN5twgavGDt/tmvn3HtxbOueU/6JcpGQEpMAfqfyMoLjeAZbYU5iw2ryJe0N6ZVUZJI3JesGrkhYB4
-        GQdHLB7iIId4vUqEkmZRIYvNiY/sFAX0FrrApCYSHeNscZojToKWfIsSm/UkkROXN4GtXMAol5ImJNdY
-        qFcVQoj3wBBI5EUTiB2l7VVvgJI6HBoA51pLkaEvkMbzAZAqZ1N7hZQEWZSqLDIoKnkCxGyw5gKUuHHh
-        CrBsoI2nA3Yh8vCzgPAAJS5wy6c7c69+u/DGmBjum18TWQF1tWdASSefcp5nZt381ic/prqsQW0TOtsX
-        Xkm9ViRMt+jeYgtiz1Md+yBz5pE+Tl3N0cJB3QP2lwHb450iHyfbG3qMgZYKhLMTTn7plfi1Ih8WPFBc
-        sWjPd9Jt/UR144g1yxv/gtj/xnO/jd8o8j3iPuNA2eBg8fdhxy5ytFxAd+Mo2AIzoLVyWCXtCOvL5k78
-        w6/9DUORY3pvwx7IAAAAAElFTkSuQmCC
-</value>
-  </data>
-  <data name="setValueButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAABA0lEQVQ4T2P4//8/AyWYJM2H
-        6jI81+bE/QfhPZWpBiCLiTZg/bwKJ5DG1/Mb/18ogxhCtAEgzbs31P5fs+PU/4utxWDNE0xNiTMApHnn
-        muL/7x70/L95JOd/W1stWHOzpb4fQReANG9flgrWfH1/0v9Nszz/iwnx/U8L1QD7H68ByDYjay5N0rVG
-        jjWsgYjLZnTNWF0A0rx1QTiGs4GaNbGlFxQXgDRvnuNLtGYMF8yYu/j/8e0d/x+dK4EHWJCLqga+lAp3
-        AVBzGciAf//+/l85ORAc2ricjTUQGRgYyvIKS/8HhoQD0yfDf0I2Y0QjUNMDkCFAAzJIyVxE5wVchlJs
-        AACPTsHYUxl3NQAAAABJRU5ErkJggg==
-</value>
-  </data>
-</root>
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestParameterConfigurationAnalyzer.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestParameterConfigurationAnalyzer.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Analyzers/BestParameterConfigurationAnalyzer.cs	(revision 4839)
@@ -1,13 +1,10 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
 using HeuristicLab.Operators;
 using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Data;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.MetaOptimization {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Creators/RandomParameterConfigurationCreator.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Creators/RandomParameterConfigurationCreator.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Creators/RandomParameterConfigurationCreator.cs	(revision 4839)
@@ -1,12 +1,8 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿using HeuristicLab.Common;
 using HeuristicLab.Core;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Operators;
-using HeuristicLab.Parameters;
-using HeuristicLab.Common;
-using HeuristicLab.Optimization;
 
 namespace HeuristicLab.Problems.MetaOptimization {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterConfigurationCrossover.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterConfigurationCrossover.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/Crossovers/ParameterConfigurationCrossover.cs	(revision 4839)
@@ -1,17 +1,11 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+﻿using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+using HeuristicLab.Encodings.RealVectorEncoding;
 using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Encodings.RealVectorEncoding;
-using HeuristicLab.Encodings.BinaryVectorEncoding;
-using HeuristicLab.Encodings.IntegerVectorEncoding;
-using HeuristicLab.Collections;
-using HeuristicLab.Data;
-using HeuristicLab.Optimization;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.MetaOptimization.Encodings.Crossovers {
@@ -79,6 +73,6 @@
       IntegerVector integerChild = HeuristicLab.Encodings.IntegerVectorEncoding.DiscreteCrossover.Apply(
         RandomParameter.ActualValue,
-        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter1.Value).Value })),
-        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter2.Value).Value })));
+        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter1.ActualValueConfiguration).Value })),
+        new IntegerVector(new IntArray(new int[] { ((IntValue)parameter2.ActualValueConfiguration).Value })));
       return new IntValue(integerChild[0]);
     }
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/IntValueParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/IntValueParameterConfiguration.cs	(revision 4838)
+++ 	(revision )
@@ -1,25 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Data;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Problems.MetaOptimization {
-  [StorableClass]
-  public class IntValueParameterConfiguration : ValueTypeParameterConfiguration<IntValue> {
-
-    public IntValueParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IValueParameter valueParameter) : base(parentConfiguration, parameterName, valueParameter) {
-    }
-
-    protected IntValueParameterConfiguration() { }
-    [StorableConstructor]
-    protected IntValueParameterConfiguration(bool deserializing) : base(deserializing) { }
-    protected IntValueParameterConfiguration(IntValueParameterConfiguration original, Cloner cloner) : base(original, cloner) {    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new IntValueParameterConfiguration(this, cloner);
-    }
-  }
-}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfiguration.cs	(revision 4838)
+++ 	(revision )
@@ -1,228 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
-
-namespace HeuristicLab.Problems.MetaOptimization {
-  [StorableClass]
-  public class ParameterConfiguration : DeepCloneable, IParameterConfiguration, IStorableContent {
-    protected ParameterConfiguration parentConfiguration;
-
-    [Storable]
-    public string Filename { get; set; }
-
-    [Storable]
-    protected bool optimizationEnabled;
-    public bool OptimizationEnabled {
-      get { return optimizationEnabled; }
-      set {
-        if (optimizationEnabled != value) {
-          optimizationEnabled = value;
-          OnOptimizationEnabledChanged();
-        }
-      }
-    }
-
-    [Storable]
-    protected string parameterName;
-    public string ParameterName {
-      get { return parameterName; }
-      set {
-        if (parameterName != value) {
-          parameterName = value;
-        }
-      }
-    }
-
-    [Storable]
-    protected IItemList<IParameterConfiguration> childParameterConfigurations = new ItemList<IParameterConfiguration>();
-    public IItemList<IParameterConfiguration> ChildParameterConfigurations {
-      get { return childParameterConfigurations; }
-    }
-
-    //public virtual IParameter Parameter {
-    //  get {
-    //    return parentConfiguration.GetChildParameter(this.parameterName);
-    //  }
-    //}
-
-
-    protected Type parameterType;
-    public Type ParameterType {
-      get { return this.parameterType; }
-    }
-
-    protected Type valueType;
-    public Type ValueType {
-      get { return this.valueType; }
-    }
-
-    protected IItem value;
-    public IItem Value {
-      get { return value; }
-      set {
-        if (this.value != value) {
-          ClearChildParameterConfigurations();
-          OnValueChanging();
-          this.value = value;
-          if(this.value is IParameterizedNamedItem) AddChildParameterConfigurations(this.value as IParameterizedNamedItem);
-          OnValueChanged();
-        }
-      }
-    }
-
-    // store parameter reference only for name/description/image/...
-    private IValueParameter parameter;
-
-    public ParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IValueParameter valueParameter) {
-      this.parentConfiguration = parentConfiguration;
-      this.ParameterName = parameterName;
-      this.Value = valueParameter.Value;
-      this.parameterType = valueParameter.GetType();
-      this.valueType = valueParameter.DataType;
-
-      this.parameter = valueParameter;
-    }
-
-    public ParameterConfiguration() { }
-    [StorableConstructor]
-    protected ParameterConfiguration(bool deserializing) { }
-    protected ParameterConfiguration(ParameterConfiguration original, Cloner cloner)
-      : base(original, cloner) {
-      this.OptimizationEnabled = original.optimizationEnabled;
-      this.ParameterName = original.parameterName;
-      this.Value = cloner.Clone(original.Value);
-      this.childParameterConfigurations = cloner.Clone(original.childParameterConfigurations);
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new ParameterConfiguration(this, cloner);
-    }
-
-    protected virtual IValueParameter GetChildParameter(string childParameterName) {
-      return (IValueParameter)((IParameterizedItem)Value).Parameters[childParameterName];
-    }
-
-    protected virtual void AddChildParameterConfigurations(IParameterizedNamedItem parameterizedItem) {
-      foreach (var childParameter in parameterizedItem.Parameters) {
-        var pc = ParameterConfiguration.Create(this, parameterizedItem, childParameter);
-        if (pc != null) this.childParameterConfigurations.Add(pc);
-      }
-    }
-    protected virtual void ClearChildParameterConfigurations() {
-      childParameterConfigurations.Clear();
-    }
-
-    #region INamedItem Properties
-    public virtual string Name {
-      get { return ParameterName; }
-      set { throw new NotSupportedException(); }
-    }
-    public virtual string Description {
-      get { return parameter.Description; }
-      set { throw new NotSupportedException(); }
-    }
-    public virtual bool CanChangeDescription {
-      get { return false; }
-    }
-    public virtual bool CanChangeName {
-      get { return false; }
-    }
-    public virtual string ItemDescription {
-      get { return parameter.Description; }
-    }
-    public virtual System.Drawing.Image ItemImage {
-      get { return parameter.ItemImage; }
-    }
-    public virtual string ItemName {
-      get { return parameter.ItemName; }
-    }
-    public virtual Version ItemVersion {
-      get { return parameter.ItemVersion; }
-    }
-    #endregion
-
-    #region Events
-    public virtual event EventHandler NameChanged;
-    protected virtual void OnNameChanged(object sender, EventArgs e) {
-      var handler = NameChanged;
-      if (handler != null) handler(sender, e);
-    }
-
-    public virtual event EventHandler<CancelEventArgs<string>> NameChanging;
-    protected virtual void OnNameChanging(object sender, CancelEventArgs<string> e) {
-      var handler = NameChanging;
-      if (handler != null) handler(sender, e);
-    }
-
-    public virtual event EventHandler DescriptionChanged;
-    protected virtual void OnDescriptionChanged(object sender, EventArgs e) {
-      var handler = DescriptionChanged;
-      if (handler != null) handler(sender, e);
-    }
-
-    public virtual event EventHandler ItemImageChanged;
-    protected virtual void OnItemImageChanged(object sender, EventArgs e) {
-      var handler = ItemImageChanged;
-      if (handler != null) handler(sender, e);
-    }
-
-    public virtual event EventHandler ToStringChanged;
-    protected virtual void OnStringChanged(object sender, EventArgs e) {
-      var handler = ToStringChanged;
-      if (handler != null) handler(this, e); // important to set 'this' as sender
-    }
-
-    public virtual event EventHandler OptimizationEnabledChanged;
-    protected virtual void OnOptimizationEnabledChanged() {
-      var handler = OptimizationEnabledChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public virtual event EventHandler ValueChanging;
-    protected virtual void OnValueChanging() {
-      var handler = ValueChanging;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public virtual event EventHandler ValueChanged;
-    protected virtual void OnValueChanged() {
-      var handler = ValueChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-    #endregion
-
-    public override string ToString() {
-      return string.Format("{0} ({1})", ParameterName, Value);
-    }
-
-    public static IParameterConfiguration Create(IParameterizedNamedItem parent) {
-      return new RootParameterConfiguration(parent);
-    }
-
-    public static IParameterConfiguration Create(ParameterConfiguration parentConfiguration, IParameterizedNamedItem parent, IParameter parameter) {
-      if (parameter is IValueParameter) {
-        IValueParameter valueParameter = parameter as IValueParameter;
-
-        if (typeof(IntValue).IsAssignableFrom(parameter.DataType)) {
-          return new IntValueParameterConfiguration(parentConfiguration, parameter.Name, valueParameter);
-        } else if (typeof(IParameterizedItem).IsAssignableFrom(parameter.DataType)) {
-          return new ParameterConfiguration(parentConfiguration, parameter.Name, valueParameter);
-        } else {
-          // todo
-          return new IntValueParameterConfiguration(parentConfiguration, parameter.Name, valueParameter);
-        }
-      }
-      return null;
-    }
-
-    public void Parameterize(IParameterizedItem parameterizedItem) {
-      throw new NotImplementedException();
-    }
-
-  }
-}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfigurations/ParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfigurations/ParameterConfiguration.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ParameterConfigurations/ParameterConfiguration.cs	(revision 4839)
@@ -0,0 +1,221 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  [StorableClass]
+  public class ParameterConfiguration : DeepCloneable, IParameterConfiguration, IStorableContent {
+    [Storable]
+    public string Filename { get; set; }
+
+    [Storable]
+    protected bool optimizationEnabled;
+    public bool OptimizationEnabled {
+      get { return optimizationEnabled; }
+      set {
+        if (optimizationEnabled != value) {
+          optimizationEnabled = value;
+          if (optimizationEnabled) {
+            PopulateValueConfigurations();
+          } else {
+            this.ValueConfigurations.Clear();
+          }
+          OnOptimizationEnabledChanged();
+        }
+      }
+    }
+
+    [Storable]
+    protected string parameterName;
+    public string ParameterName {
+      get { return parameterName; }
+      set {
+        if (parameterName != value) {
+          parameterName = value;
+        }
+      }
+    }
+
+    protected Type parameterDataType;
+    public Type ParameterDataType {
+      get { return this.parameterDataType; }
+    }
+
+    protected IEnumerable<IItem> validValues;
+    public IEnumerable<IItem> ValidValues {
+      get { return validValues; }
+      protected set {
+        if (this.validValues != value) {
+          this.validValues = value;
+        }
+      }
+    }
+
+    protected Type valueDataType;
+    public Type ValueDataType {
+      get { return valueDataType; }
+      protected set { this.valueDataType = value; }
+    }
+
+    protected ICheckedItemList<IValueConfiguration> valueConfigurations;
+    public ICheckedItemList<IValueConfiguration> ValueConfigurations {
+      get { return this.valueConfigurations; }
+      protected set { this.valueConfigurations = value; }
+    }
+
+    // todo: chooses one of the parameter configurations as actual value
+    protected IValueConfiguration actualValueConfiguration;
+    public IValueConfiguration ActualValueConfiguration {
+      get { return this.actualValueConfiguration; }
+      set { this.actualValueConfiguration = value; }
+    }
+
+    // store parameter reference only for name/description/image/...
+    private IValueParameter parameter;
+
+    public ParameterConfiguration(string parameterName, IValueParameter valueParameter) {
+      this.ParameterName = parameterName;
+      this.parameterDataType = valueParameter.GetType();
+      this.parameter = valueParameter;
+      this.valueDataType = valueParameter.DataType;
+      this.validValues = GetValidValues();
+      this.ValueConfigurations = new CheckedItemList<IValueConfiguration>();
+      this.ActualValueConfiguration = new ValueConfiguration(valueParameter.Value, valueParameter.DataType);
+      if (OptimizationEnabled) {
+        PopulateValueConfigurations();
+      }
+    }
+
+    public ParameterConfiguration() { }
+    [StorableConstructor]
+    protected ParameterConfiguration(bool deserializing) { }
+    protected ParameterConfiguration(ParameterConfiguration original, Cloner cloner) : base(original, cloner) {
+      this.ParameterName = original.ParameterName;
+      this.parameterDataType = original.parameterDataType;
+      this.parameter = cloner.Clone(original.parameter);
+      this.ValueDataType = original.ValueDataType;
+      this.ValidValues = original.ValidValues.Select(x => cloner.Clone(x));
+      this.ValueConfigurations = cloner.Clone(original.ValueConfigurations);
+      this.ActualValueConfiguration = cloner.Clone(original.ActualValueConfiguration);
+      this.OptimizationEnabled = original.optimizationEnabled;
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ParameterConfiguration(this, cloner);
+    }
+
+    private void PopulateValueConfigurations() {
+      foreach (IItem item in this.validValues) {
+        this.ValueConfigurations.Add(new ValueConfiguration(item, item.GetType()), false);
+      }
+    }
+
+    private IEnumerable<IItem> GetValidValues() {
+      return ApplicationManager.Manager.GetInstances(valueDataType).Select(x => (IItem)x).OrderBy(x => x.ItemName).ToArray();
+    }
+
+    void ValidValues_CheckedItemsChanged(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<IItem>> e) {
+      var oldItems = e.OldItems.Select(x => x.Value);
+      var newItems = e.Items.Select(x => x.Value);
+      var intersection = oldItems.Intersect(newItems);
+      var removedItems = oldItems.Where(x => !intersection.Contains(x));
+      var addedItems = newItems.Where(x => !intersection.Contains(x));
+
+      foreach (var item in removedItems) {
+        RemoveValueConfiguration(item);
+      }
+      foreach (var item in addedItems) {
+        this.ValueConfigurations.Add(new ValueConfiguration(item, item.GetType()));
+      }
+    }
+
+    private void RemoveValueConfiguration(IItem item) {
+      IValueConfiguration vc = this.ValueConfigurations.Single(x => x.ValueDataType == item.GetType());
+      this.ValueConfigurations.Remove(vc);
+    }
+
+    #region INamedItem Properties
+    public virtual string Name {
+      get { return ParameterName; }
+      set { throw new NotSupportedException(); }
+    }
+    public virtual string Description {
+      get { return parameter.Description; }
+      set { throw new NotSupportedException(); }
+    }
+    public virtual bool CanChangeDescription {
+      get { return false; }
+    }
+    public virtual bool CanChangeName {
+      get { return false; }
+    }
+    public virtual string ItemDescription {
+      get { return parameter.Description; }
+    }
+    public virtual System.Drawing.Image ItemImage {
+      get { return parameter.ItemImage; }
+    }
+    public virtual string ItemName {
+      get { return parameter.ItemName; }
+    }
+    public virtual Version ItemVersion {
+      get { return parameter.ItemVersion; }
+    }
+    #endregion
+
+    #region Events
+    public virtual event EventHandler NameChanged;
+    protected virtual void OnNameChanged(object sender, EventArgs e) {
+      var handler = NameChanged;
+      if (handler != null) handler(sender, e);
+    }
+
+    public virtual event EventHandler<CancelEventArgs<string>> NameChanging;
+    protected virtual void OnNameChanging(object sender, CancelEventArgs<string> e) {
+      var handler = NameChanging;
+      if (handler != null) handler(sender, e);
+    }
+
+    public virtual event EventHandler DescriptionChanged;
+    protected virtual void OnDescriptionChanged(object sender, EventArgs e) {
+      var handler = DescriptionChanged;
+      if (handler != null) handler(sender, e);
+    }
+
+    public virtual event EventHandler ItemImageChanged;
+    protected virtual void OnItemImageChanged(object sender, EventArgs e) {
+      var handler = ItemImageChanged;
+      if (handler != null) handler(sender, e);
+    }
+
+    public virtual event EventHandler ToStringChanged;
+    protected virtual void OnStringChanged(object sender, EventArgs e) {
+      var handler = ToStringChanged;
+      if (handler != null) handler(this, e); // important to set 'this' as sender
+    }
+
+    public virtual event EventHandler OptimizationEnabledChanged;
+    protected virtual void OnOptimizationEnabledChanged() {
+      var handler = OptimizationEnabledChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
+    }
+    #endregion
+
+    public override string ToString() {
+      return string.Format("{0}", ParameterName);
+    }
+
+    public static IParameterConfiguration Create(IParameterizedNamedItem parent, IParameter parameter) {
+      if (parameter is IValueParameter) {
+        IValueParameter valueParameter = parameter as IValueParameter;
+
+        return new ParameterConfiguration(parameter.Name, valueParameter);
+      }
+      return null;
+    }
+
+  }
+}
Index: anches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/RootParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/RootParameterConfiguration.cs	(revision 4838)
+++ 	(revision )
@@ -1,69 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Common;
-
-namespace HeuristicLab.Problems.MetaOptimization {
-  /// <summary>
-  /// This class does not have a ParameterName, because its the root element of the ParameterConfiguration-Tree
-  /// It only deals with child-ParameterConfigurations
-  /// </summary>
-  [StorableClass]
-  public class RootParameterConfiguration : ParameterConfiguration {
-
-    public new IParameterizedNamedItem Value {
-      get { return (IParameterizedNamedItem)base.Value; }
-      set { base.Value = value; }
-    }
-
-    public RootParameterConfiguration(IParameterizedNamedItem rootItem) {
-      this.OptimizationEnabled = true;
-      this.Value = rootItem;
-    }
-
-    public RootParameterConfiguration() { }
-    [StorableConstructor]
-    protected RootParameterConfiguration(bool deserializing) { }
-    protected RootParameterConfiguration(RootParameterConfiguration original, Cloner cloner) : base(original, cloner) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new RootParameterConfiguration(this, cloner);
-    }
-
-    //public override IParameter Parameter {
-    //  get { return null; }
-    //}
-
-    #region INamedItem Properties
-    public override string Name {
-      get { return Value.Name; }
-      set { throw new NotSupportedException(); }
-    }
-    public override string Description {
-      get { return Value.Description; }
-      set { throw new NotSupportedException(); }
-    }
-    public override bool CanChangeDescription {
-      get { return false; }
-    }
-    public override bool CanChangeName {
-      get { return false; }
-    }
-    public override string ItemDescription {
-      get { return Value.ItemDescription; }
-    }
-    public override System.Drawing.Image ItemImage {
-      get { return Value.ItemImage; }
-    }
-    public override string ItemName {
-      get { return Value.ItemName; }
-    }
-    public override Version ItemVersion {
-      get { return Value.ItemVersion; }
-    }
-    #endregion
-  }
-}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueConfigurations/ValueConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueConfigurations/ValueConfiguration.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueConfigurations/ValueConfiguration.cs	(revision 4839)
@@ -0,0 +1,105 @@
+﻿using System;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  [StorableClass]
+  public class ValueConfiguration : DeepCloneable, IValueConfiguration {
+    [Storable]
+    protected IItemList<IParameterConfiguration> parameterConfigurations = new ItemList<IParameterConfiguration>();
+    public IItemList<IParameterConfiguration> ParameterConfigurations {
+      get { return this.parameterConfigurations; }
+      protected set { this.parameterConfigurations = value; }
+    }
+
+    protected IItem value;
+    public IItem Value {
+      get { return value; }
+      set {
+        if (this.value != value) {
+          ClearChildParameterConfigurations();
+          this.value = value;
+          if (this.value is IParameterizedNamedItem) AddChildParameterConfigurations(this.value as IParameterizedNamedItem);
+          OnValueChanged();
+        }
+      }
+    }
+
+    protected Type valueDataType;
+    public Type ValueDataType {
+      get { return this.valueDataType; }
+      protected set { this.valueDataType = value; }
+    }
+
+    public ValueConfiguration(IItem value, Type valueDataType) {
+      this.Value = value;
+      this.ValueDataType = valueDataType;
+    }
+
+    public ValueConfiguration() { }
+    [StorableConstructor]
+    protected ValueConfiguration(bool deserializing) { }
+    protected ValueConfiguration(ValueConfiguration original, Cloner cloner) : base(original, cloner) {
+      this.ParameterConfigurations = cloner.Clone(original.ParameterConfigurations);
+      this.Value = cloner.Clone(original.Value);
+      this.ValueDataType = original.ValueDataType;
+
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ValueConfiguration(this, cloner);
+    }
+
+    protected virtual void AddChildParameterConfigurations(IParameterizedNamedItem parameterizedItem) {
+      foreach (var childParameter in parameterizedItem.Parameters) {
+        var pc = ParameterConfiguration.Create(parameterizedItem, childParameter);
+        if (pc != null) this.ParameterConfigurations.Add(pc);
+      }
+    }
+    protected virtual void ClearChildParameterConfigurations() {
+      ParameterConfigurations.Clear();
+    }
+    
+    #region IItem Members
+    public string ItemDescription {
+      get { return value.ItemDescription; }
+    }
+
+    public System.Drawing.Image ItemImage {
+      get { return value.ItemImage; }
+    }
+
+    public string ItemName {
+      get { return value.ItemDescription; }
+    }
+
+    public Version ItemVersion {
+      get { return value.ItemVersion; }
+    }
+    #endregion
+
+    #region Events
+    public virtual event EventHandler ItemImageChanged;
+    protected virtual void OnItemImageChanged(object sender, EventArgs e) {
+      var handler = ItemImageChanged;
+      if (handler != null) handler(sender, e);
+    }
+
+    public virtual event EventHandler ToStringChanged;
+    protected virtual void OnStringChanged(object sender, EventArgs e) {
+      var handler = ToStringChanged;
+      if (handler != null) handler(this, e); // important to set 'this' as sender
+    }
+
+    public virtual event EventHandler ValueChanged;
+    protected virtual void OnValueChanged() {
+      var handler = ValueChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
+    }
+    #endregion
+
+    public override string ToString() {
+      return value.ItemName;
+    }
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueTypeParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueTypeParameterConfiguration.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encodings/ValueTypeParameterConfiguration.cs	(revision 4839)
@@ -18,5 +18,5 @@
     }
 
-    public ValueTypeParameterConfiguration(ParameterConfiguration parentConfiguration, string parameterName, IValueParameter valueParameter) : base(parentConfiguration, parameterName, valueParameter) {
+    public ValueTypeParameterConfiguration(string parameterName, IValueParameter valueParameter) : base(parameterName, valueParameter) {
       this.ranges = new ItemList<IRange<T>>();
       this.ranges.ItemsAdded += new CollectionItemsChangedEventHandler<IndexedItem<IRange<T>>>(ranges_ItemsAdded);
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/MetaOptimizationEvaluator.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/MetaOptimizationEvaluator.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Evaluators/MetaOptimizationEvaluator.cs	(revision 4839)
@@ -1,14 +1,11 @@
 ﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Operators;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
-using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Optimization;
 using System.Threading;
 using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Problems.MetaOptimization {
@@ -65,5 +62,5 @@
       AlgorithmParameter.ActualValue.Prepare();
       //ParameterizeAlgorithm();
-      ParameterConfigurationParameter.ActualValue.Parameterize(AlgorithmParameter.ActualValue);
+      //ParameterConfigurationParameter.ActualValue.Parameterize(AlgorithmParameter.ActualValue);
       algorithmStopped = false;
       AlgorithmParameter.ActualValue.Stopped += new EventHandler(ActualValue_Stopped);
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj	(revision 4839)
@@ -88,12 +88,8 @@
   <ItemGroup>
     <Compile Include="Analyzers\BestParameterConfigurationAnalyzer.cs" />
+    <Compile Include="Encodings\ValueConfigurations\ValueConfiguration.cs" />
     <Compile Include="Interfaces\IParameterConfigurationCreator.cs" />
     <Compile Include="Creators\RandomParameterConfigurationCreator.cs" />
     <Compile Include="Encodings\Crossovers\ParameterConfigurationCrossover.cs" />
-    <Compile Include="Encodings\IntValueParameterConfiguration.cs" />
-    <Compile Include="Encodings\ValueTypeParameterConfiguration.cs">
-      <SubType>Code</SubType>
-    </Compile>
-    <Compile Include="Encodings\RootParameterConfiguration.cs" />
     <Compile Include="Interfaces\IParameterConfigurationOperator.cs" />
     <Compile Include="Interfaces\IRange.cs" />
@@ -101,5 +97,6 @@
     <Compile Include="Interfaces\IMetaOptimizationEvaluator.cs" />
     <Compile Include="Interfaces\IParameterConfiguration.cs" />
-    <Compile Include="Encodings\ParameterConfiguration.cs" />
+    <Compile Include="Encodings\ParameterConfigurations\ParameterConfiguration.cs" />
+    <Compile Include="Interfaces\IValueConfiguration.cs" />
     <Compile Include="Range.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IMetaOptimizationEvaluator.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IMetaOptimizationEvaluator.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IMetaOptimizationEvaluator.cs	(revision 4839)
@@ -1,7 +1,3 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Optimization;
+﻿using HeuristicLab.Optimization;
 
 namespace HeuristicLab.Problems.MetaOptimization {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs	(revision 4839)
@@ -1,7 +1,5 @@
 ﻿using System;
+using HeuristicLab.Core;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.MetaOptimization {
@@ -9,15 +7,11 @@
     bool OptimizationEnabled { get; set; }
     string ParameterName { get; set; }
-    //IParameter Parameter { get; }
-    Type ParameterType { get; }
-    Type ValueType { get; }
-    IItem Value { get; set; }
-    IItemList<IParameterConfiguration> ChildParameterConfigurations { get; }
-
-    void Parameterize(IParameterizedItem parameterizedItem);
+    Type ParameterDataType { get; }
+    ICheckedItemList<IValueConfiguration> ValueConfigurations { get; }
+    IValueConfiguration ActualValueConfiguration { get; set; }
+    Type ValueDataType { get; }
+    IEnumerable<IItem> ValidValues { get; }
 
     event EventHandler OptimizationEnabledChanged;
-    event EventHandler ValueChanging;
-    event EventHandler ValueChanged;
   }
 }
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationCreator.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationCreator.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationCreator.cs	(revision 4839)
@@ -1,7 +1,3 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Optimization;
+﻿using HeuristicLab.Optimization;
 
 namespace HeuristicLab.Problems.MetaOptimization {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationOperator.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationOperator.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationOperator.cs	(revision 4839)
@@ -1,7 +1,3 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Core;
+﻿using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.MetaOptimization {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IRange.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IRange.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IRange.cs	(revision 4839)
@@ -1,9 +1,6 @@
 ﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using HeuristicLab.Common;
+using HeuristicLab.Core;
 using HeuristicLab.Data;
-using HeuristicLab.Core;
 
 namespace HeuristicLab.Problems.MetaOptimization {
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IValueConfiguration.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IValueConfiguration.cs	(revision 4839)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IValueConfiguration.cs	(revision 4839)
@@ -0,0 +1,12 @@
+﻿using System;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Problems.MetaOptimization {
+  public interface IValueConfiguration : IItem {
+    IItem Value { get; set; }
+    Type ValueDataType { get; }
+    IItemList<IParameterConfiguration> ParameterConfigurations { get; }
+
+    event EventHandler ValueChanged;
+  }
+}
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs	(revision 4839)
@@ -21,13 +21,11 @@
 
 using System;
-using System.Collections.Generic;
 using System.Linq;
-using System.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Optimization;
-using HeuristicLab.Common;
-using HeuristicLab.Parameters;
-using HeuristicLab.Data;
 using HeuristicLab.PluginInfrastructure;
 
@@ -49,6 +47,6 @@
       get { return (ValueParameter<IItemList<ISingleObjectiveProblem>>)Parameters[ProblemsParameterName]; }
     }
-    public ValueParameter<IParameterConfiguration> AlgorithmParameterConfigurationParameter {
-      get { return (ValueParameter<IParameterConfiguration>)Parameters[AlgorithmParameterConfigurationParameterName]; }
+    public ValueParameter<IValueConfiguration> AlgorithmParameterConfigurationParameter {
+      get { return (ValueParameter<IValueConfiguration>)Parameters[AlgorithmParameterConfigurationParameterName]; }
     }
     //public ValueParameter<IItemList<IParameterConfiguration>> ProblemParametersConfigurationParameter {
@@ -66,5 +64,5 @@
       set { ProblemsParameter.Value = value; }
     }
-    public IParameterConfiguration AlgorithmParameterConfiguration {
+    public IValueConfiguration AlgorithmParameterConfiguration {
       get { return AlgorithmParameterConfigurationParameter.Value; }
       set { AlgorithmParameterConfigurationParameter.Value = value; }
@@ -80,5 +78,5 @@
       Parameters.Add(new ValueParameter<IAlgorithm>(AlgorithmParameterName, "The algorithm which's parameters should be optimized."));
       Parameters.Add(new ValueParameter<IItemList<IProblem>>(ProblemsParameterName, "The problems that should be evaluated.", new ItemList<IProblem>()));
-      Parameters.Add(new ValueParameter<IParameterConfiguration>(AlgorithmParameterConfigurationParameterName, "List of algorithm parameters that should be optimized."));
+      Parameters.Add(new ValueParameter<IValueConfiguration>(AlgorithmParameterConfigurationParameterName, "List of algorithm parameters that should be optimized."));
       //Parameters.Add(new ValueParameter<IItemList<IParameterConfiguration>>(ProblemParametersConfigurationParameterName, "List of problem parameters that should be optimized.", new ItemList<IParameterConfiguration>()));
       
@@ -155,5 +153,5 @@
       if (Algorithm != null) {
         Algorithm.ProblemChanged += new EventHandler(BaseLevelAlgorithm_ProblemChanged);
-        AlgorithmParameterConfiguration = ParameterConfiguration.Create(Algorithm);
+        AlgorithmParameterConfiguration = new ValueConfiguration(Algorithm, Algorithm.GetType());
       }
       BaseLevelAlgorithm_ProblemChanged(sender, e);
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Properties/AssemblyInfo.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Properties/AssemblyInfo.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Properties/AssemblyInfo.cs	(revision 4839)
@@ -1,4 +1,3 @@
 ﻿using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
Index: /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Range.cs
===================================================================
--- /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Range.cs	(revision 4838)
+++ /branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Range.cs	(revision 4839)
@@ -1,10 +1,7 @@
 ﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Data;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
 
 namespace HeuristicLab.Problems.MetaOptimization {
