Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationMenuItem.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationMenuItem.cs	(revision 4425)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationMenuItem.cs	(revision 4426)
@@ -22,8 +22,11 @@
 using System.Collections.Generic;
 using System.Windows.Forms;
+using HeuristicLab.MainForm;
 using HeuristicLab.Optimizer;
 
 namespace HeuristicLab.Clients.OKB {
   internal class AdministrationMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
+    private Administrator administrator;
+
     private ToolStripMenuItem menuItem;
 
@@ -39,6 +42,6 @@
 
     public override void Execute() {
-      AdministrationView view = new AdministrationView();
-      view.Show();
+      if (administrator == null) administrator = new Administrator();
+      MainFormManager.MainForm.ShowContent(administrator);
     }
   }
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.Designer.cs	(revision 4425)
+++ 	(revision )
@@ -1,169 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Clients.OKB {
-  partial class AdministrationView {
-    /// <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) {
-        if (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.tabControl = new System.Windows.Forms.TabControl();
-      this.algorithmClassesTabPage = new System.Windows.Forms.TabPage();
-      this.refreshAlgorithmClassesButton = new System.Windows.Forms.Button();
-      this.algorithmsTabPage = new System.Windows.Forms.TabPage();
-      this.refreshAlgorithmsButton = new System.Windows.Forms.Button();
-      this.algorithmClassCollectionView = new HeuristicLab.Clients.OKB.AlgorithmClassCollectionView();
-      this.algorithmCollectionView = new HeuristicLab.Clients.OKB.AlgorithmCollectionView();
-      this.tabControl.SuspendLayout();
-      this.algorithmClassesTabPage.SuspendLayout();
-      this.algorithmsTabPage.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // 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.algorithmClassesTabPage);
-      this.tabControl.Controls.Add(this.algorithmsTabPage);
-      this.tabControl.Location = new System.Drawing.Point(0, 0);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(727, 435);
-      this.tabControl.TabIndex = 2;
-      // 
-      // algorithmClassesTabPage
-      // 
-      this.algorithmClassesTabPage.Controls.Add(this.algorithmClassCollectionView);
-      this.algorithmClassesTabPage.Controls.Add(this.refreshAlgorithmClassesButton);
-      this.algorithmClassesTabPage.Location = new System.Drawing.Point(4, 22);
-      this.algorithmClassesTabPage.Name = "algorithmClassesTabPage";
-      this.algorithmClassesTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.algorithmClassesTabPage.Size = new System.Drawing.Size(719, 409);
-      this.algorithmClassesTabPage.TabIndex = 0;
-      this.algorithmClassesTabPage.Text = "Algorithm Classes";
-      this.algorithmClassesTabPage.UseVisualStyleBackColor = true;
-      // 
-      // refreshAlgorithmClassesButton
-      // 
-      this.refreshAlgorithmClassesButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.refreshAlgorithmClassesButton.Location = new System.Drawing.Point(6, 380);
-      this.refreshAlgorithmClassesButton.Name = "refreshAlgorithmClassesButton";
-      this.refreshAlgorithmClassesButton.Size = new System.Drawing.Size(75, 23);
-      this.refreshAlgorithmClassesButton.TabIndex = 2;
-      this.refreshAlgorithmClassesButton.Text = "&Refresh";
-      this.refreshAlgorithmClassesButton.UseVisualStyleBackColor = true;
-      this.refreshAlgorithmClassesButton.Click += new System.EventHandler(this.refreshAlgorithmClassesButton_Click);
-      // 
-      // algorithmsTabPage
-      // 
-      this.algorithmsTabPage.Controls.Add(this.algorithmCollectionView);
-      this.algorithmsTabPage.Controls.Add(this.refreshAlgorithmsButton);
-      this.algorithmsTabPage.Location = new System.Drawing.Point(4, 22);
-      this.algorithmsTabPage.Name = "algorithmsTabPage";
-      this.algorithmsTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.algorithmsTabPage.Size = new System.Drawing.Size(719, 409);
-      this.algorithmsTabPage.TabIndex = 1;
-      this.algorithmsTabPage.Text = "Algorithms";
-      this.algorithmsTabPage.UseVisualStyleBackColor = true;
-      // 
-      // refreshAlgorithmsButton
-      // 
-      this.refreshAlgorithmsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.refreshAlgorithmsButton.Location = new System.Drawing.Point(6, 380);
-      this.refreshAlgorithmsButton.Name = "refreshAlgorithmsButton";
-      this.refreshAlgorithmsButton.Size = new System.Drawing.Size(75, 23);
-      this.refreshAlgorithmsButton.TabIndex = 1;
-      this.refreshAlgorithmsButton.Text = "&Refresh";
-      this.refreshAlgorithmsButton.UseVisualStyleBackColor = true;
-      this.refreshAlgorithmsButton.Click += new System.EventHandler(this.refreshAlgorithmsButton_Click);
-      // 
-      // algorithmClassCollectionView
-      // 
-      this.algorithmClassCollectionView.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.algorithmClassCollectionView.Caption = "AlgorithmClassCollection View";
-      this.algorithmClassCollectionView.Content = null;
-      this.algorithmClassCollectionView.Location = new System.Drawing.Point(6, 6);
-      this.algorithmClassCollectionView.Name = "algorithmClassCollectionView";
-      this.algorithmClassCollectionView.ReadOnly = false;
-      this.algorithmClassCollectionView.Size = new System.Drawing.Size(707, 368);
-      this.algorithmClassCollectionView.TabIndex = 3;
-      // 
-      // algorithmCollectionView
-      // 
-      this.algorithmCollectionView.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.algorithmCollectionView.Caption = "AlgorithmCollection View";
-      this.algorithmCollectionView.Content = null;
-      this.algorithmCollectionView.Location = new System.Drawing.Point(6, 6);
-      this.algorithmCollectionView.Name = "algorithmCollectionView";
-      this.algorithmCollectionView.ReadOnly = false;
-      this.algorithmCollectionView.Size = new System.Drawing.Size(707, 368);
-      this.algorithmCollectionView.TabIndex = 2;
-      // 
-      // AdministrationView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.tabControl);
-      this.Name = "AdministrationView";
-      this.Size = new System.Drawing.Size(727, 435);
-      this.tabControl.ResumeLayout(false);
-      this.algorithmClassesTabPage.ResumeLayout(false);
-      this.algorithmsTabPage.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage algorithmClassesTabPage;
-    private System.Windows.Forms.TabPage algorithmsTabPage;
-    private System.Windows.Forms.Button refreshAlgorithmsButton;
-    private System.Windows.Forms.Button refreshAlgorithmClassesButton;
-    private AlgorithmClassCollectionView algorithmClassCollectionView;
-    private AlgorithmCollectionView algorithmCollectionView;
-
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.cs	(revision 4425)
+++ 	(revision )
@@ -1,57 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Windows.Forms;
-using HeuristicLab.Clients.Common;
-using HeuristicLab.MainForm;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("OKB Administration")]
-  public partial class AdministrationView : HeuristicLab.MainForm.WindowsForms.View {
-    public AdministrationView() {
-      InitializeComponent();
-    }
-
-    private void refreshAlgorithmClassesButton_Click(object sender, EventArgs e) {
-      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
-        try {
-          algorithmClassCollectionView.Content = adminService.GetAlgorithmClasses();
-        }
-        catch (Exception ex) {
-          ErrorHandling.ShowErrorDialog(ex);
-        }
-      }
-    }
-
-    private void refreshAlgorithmsButton_Click(object sender, EventArgs e) {
-      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
-        try {
-          algorithmCollectionView.Content = adminService.GetAlgorithms();
-        }
-        catch (Exception ex) {
-          ErrorHandling.ShowErrorDialog(ex);
-        }
-      }
-    }
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Administrator.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Administrator.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Administrator.cs	(revision 4426)
@@ -0,0 +1,76 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using HeuristicLab.Clients.Common;
+using HeuristicLab.Collections;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.OKB {
+  [Item("Administrator", "OKB administrator front-end.")]
+  public sealed class Administrator : IContent {
+    private ItemCollection<AlgorithmClass> algorithmClasses;
+    public ItemCollection<AlgorithmClass> AlgorithmClasses {
+      get { return algorithmClasses; }
+    }
+    private ItemCollection<Algorithm> algorithms;
+    public ItemCollection<Algorithm> Algorithms {
+      get { return algorithms; }
+    }
+
+    public Administrator() {
+      algorithmClasses = new ItemCollection<AlgorithmClass>();
+      algorithms = new ItemCollection<Algorithm>();
+
+      algorithmClasses.ItemsRemoved += new CollectionItemsChangedEventHandler<AlgorithmClass>(algorithmClasses_ItemsRemoved);
+      algorithms.ItemsRemoved += new CollectionItemsChangedEventHandler<Algorithm>(algorithms_ItemsRemoved);
+    }
+
+    public void Refresh() {
+      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
+        try {
+          algorithmClasses.Clear();
+          algorithmClasses.AddRange(adminService.GetAlgorithmClasses());
+          algorithms.Clear();
+          algorithms.AddRange(adminService.GetAlgorithms());
+        }
+        catch (Exception ex) {
+          ErrorHandling.ShowErrorDialog(ex);
+        }
+      }
+    }
+
+    private void algorithmClasses_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<AlgorithmClass> e) {
+      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
+        foreach (AlgorithmClass ac in e.Items)
+          adminService.DeleteAlgorithmClass(ac.Id);
+      }
+    }
+    private void algorithms_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<Algorithm> e) {
+      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
+        foreach (Algorithm a in e.Items)
+          adminService.DeleteAlgorithm(a.Id);
+      }
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.Designer.cs	(revision 4425)
+++ 	(revision )
@@ -1,53 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Clients.OKB {
-  partial class AlgorithmClassCollectionView {
-    /// <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) {
-        if (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/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.cs	(revision 4425)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("AlgorithmClassCollection View")]
-  [Content(typeof(IItemCollection<AlgorithmClass>), true)]
-  public partial class AlgorithmClassCollectionView : ItemCollectionView<AlgorithmClass> {
-    public AlgorithmClassCollectionView() {
-      InitializeComponent();
-      itemsGroupBox.Text = "Algorithm Classes";
-    }
-
-    protected override AlgorithmClass CreateItem() {
-      return new AlgorithmClass();
-    }
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.Designer.cs	(revision 4425)
+++ 	(revision )
@@ -1,53 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Clients.OKB {
-  partial class AlgorithmCollectionView {
-    /// <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) {
-        if (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/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.cs	(revision 4425)
+++ 	(revision )
@@ -1,40 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.Windows.Forms;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("AlgorithmCollection View")]
-  [Content(typeof(IItemCollection<Algorithm>), true)]
-  public partial class AlgorithmCollectionView : ItemCollectionView<Algorithm> {
-    public AlgorithmCollectionView() {
-      InitializeComponent();
-      itemsGroupBox.Text = "Algorithms";
-    }
-
-    protected override Algorithm CreateItem() {
-      return new Algorithm();
-    }
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Extensions.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Extensions.cs	(revision 4425)
+++ 	(revision )
@@ -1,36 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System.ComponentModel;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Clients.OKB {
-  public interface INamedEntity : IItem, INotifyPropertyChanged {
-    string Name { get; set; }
-    string Description { get; set; }
-  }
-
-  [Item("AlgorithmClass", "An OKB algorithm class.")]
-  public sealed partial class AlgorithmClass : INamedEntity {
-  }
-  public partial class Algorithm : INamedEntity {
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/GenerateServiceClients.cmd
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/GenerateServiceClients.cmd	(revision 4425)
+++ 	(revision )
@@ -1,10 +1,0 @@
-svcutil.exe ^
-  http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService/mex ^
-  /out:ServiceClients ^
-  /namespace:*,HeuristicLab.Clients.OKB ^
-  /targetClientVersion:Version35 ^
-  /async ^
-  /enableDataBinding ^
-  /reference:"C:\Program Files\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll" ^
-  /collectionType:HeuristicLab.Core.ItemCollection`1 ^
-  /config:app.config
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLab.Clients.OKB-3.3.csproj
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLab.Clients.OKB-3.3.csproj	(revision 4425)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLab.Clients.OKB-3.3.csproj	(revision 4426)
@@ -71,37 +71,49 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Administrator.cs">
+      <SubType>Code</SubType>
+    </Compile>
     <Compile Include="AdministrationMenuItem.cs" />
-    <Compile Include="AlgorithmCollectionView.cs">
+    <Compile Include="HeuristicLabClientsOKBPlugin.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ServiceClients\AlgorithmClass.cs" />
+    <Compile Include="ServiceClients\IOKBItem.cs" />
+    <Compile Include="ServiceClients\INamedOKBItem.cs" />
+    <Compile Include="ServiceClients\OKBItem.cs" />
+    <Compile Include="ServiceClients\ServiceClients.cs" />
+    <Compile Include="ServiceClients\Algorithm.cs" />
+    <Compile Include="Views\AdministratorView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="AlgorithmCollectionView.Designer.cs">
+    <Compile Include="Views\AdministratorView.Designer.cs">
+      <DependentUpon>AdministratorView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\AlgorithmClassCollectionView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Views\AlgorithmClassCollectionView.Designer.cs">
+      <DependentUpon>AlgorithmClassCollectionView.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\AlgorithmCollectionView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Views\AlgorithmCollectionView.Designer.cs">
       <DependentUpon>AlgorithmCollectionView.cs</DependentUpon>
     </Compile>
-    <Compile Include="Extensions.cs" />
-    <Compile Include="HeuristicLabClientsOKBPlugin.cs" />
-    <Compile Include="AdministrationView.cs">
+    <Compile Include="Views\OKBItemView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="AdministrationView.Designer.cs">
-      <DependentUpon>AdministrationView.cs</DependentUpon>
+    <Compile Include="Views\OKBItemView.Designer.cs">
+      <DependentUpon>OKBItemView.cs</DependentUpon>
     </Compile>
-    <Compile Include="OKBItem.cs" />
-    <Compile Include="NamedEntityView.cs">
+    <Compile Include="Views\NamedOKBItemView.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="NamedEntityView.Designer.cs">
-      <DependentUpon>NamedEntityView.cs</DependentUpon>
+    <Compile Include="Views\NamedOKBItemView.Designer.cs">
+      <DependentUpon>NamedOKBItemView.cs</DependentUpon>
     </Compile>
-    <Compile Include="AlgorithmClassCollectionView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="AlgorithmClassCollectionView.Designer.cs">
-      <DependentUpon>AlgorithmClassCollectionView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ServiceClients.cs" />
     <None Include="app.config" />
-    <None Include="GenerateServiceClients.cmd" />
     <None Include="Properties\AssemblyInfo.frame" />
+    <None Include="ServiceClients\GenerateServiceClients.cmd" />
     <None Include="UpdateLocalInstallation.cmd" />
   </ItemGroup>
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.Designer.cs	(revision 4425)
+++ 	(revision )
@@ -1,119 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-namespace HeuristicLab.Clients.OKB {
-  partial class NamedEntityView {
-    /// <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) {
-        if (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.components = new System.ComponentModel.Container();
-      this.nameLabel = new System.Windows.Forms.Label();
-      this.nameTextBox = new System.Windows.Forms.TextBox();
-      this.descriptionLabel = new System.Windows.Forms.Label();
-      this.descriptionTextBox = new System.Windows.Forms.TextBox();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.SuspendLayout();
-      // 
-      // nameLabel
-      // 
-      this.nameLabel.AutoSize = true;
-      this.nameLabel.Location = new System.Drawing.Point(3, 3);
-      this.nameLabel.Name = "nameLabel";
-      this.nameLabel.Size = new System.Drawing.Size(38, 13);
-      this.nameLabel.TabIndex = 0;
-      this.nameLabel.Text = "&Name:";
-      // 
-      // nameTextBox
-      // 
-      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.nameTextBox.Location = new System.Drawing.Point(72, 0);
-      this.nameTextBox.Name = "nameTextBox";
-      this.nameTextBox.Size = new System.Drawing.Size(279, 20);
-      this.nameTextBox.TabIndex = 1;
-      this.nameTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.nameTextBox_KeyDown);
-      this.nameTextBox.Validated += new System.EventHandler(this.nameTextBox_Validated);
-      // 
-      // descriptionLabel
-      // 
-      this.descriptionLabel.AutoSize = true;
-      this.descriptionLabel.Location = new System.Drawing.Point(3, 29);
-      this.descriptionLabel.Name = "descriptionLabel";
-      this.descriptionLabel.Size = new System.Drawing.Size(63, 13);
-      this.descriptionLabel.TabIndex = 2;
-      this.descriptionLabel.Text = "&Description:";
-      // 
-      // descriptionTextBox
-      // 
-      this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.descriptionTextBox.Location = new System.Drawing.Point(72, 26);
-      this.descriptionTextBox.Name = "descriptionTextBox";
-      this.descriptionTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
-      this.descriptionTextBox.Size = new System.Drawing.Size(279, 20);
-      this.descriptionTextBox.TabIndex = 3;
-      this.descriptionTextBox.DoubleClick += new System.EventHandler(this.descriptionTextBox_DoubleClick);
-      this.descriptionTextBox.Validated += new System.EventHandler(this.descriptionTextBox_Validated);
-      // 
-      // NamedEntityView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.descriptionTextBox);
-      this.Controls.Add(this.nameTextBox);
-      this.Controls.Add(this.descriptionLabel);
-      this.Controls.Add(this.nameLabel);
-      this.Name = "NamedEntityView";
-      this.Size = new System.Drawing.Size(351, 52);
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    protected System.Windows.Forms.TextBox nameTextBox;
-    protected System.Windows.Forms.Label nameLabel;
-    protected System.Windows.Forms.Label descriptionLabel;
-    protected System.Windows.Forms.TextBox descriptionTextBox;
-    protected System.Windows.Forms.ToolTip toolTip;
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.cs	(revision 4425)
+++ 	(revision )
@@ -1,123 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.ComponentModel;
-using System.Windows.Forms;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("NamedEntoty View")]
-  [Content(typeof(INamedEntity), false)]
-  public partial class NamedEntityView : ItemView {
-    public new INamedEntity Content {
-      get { return (INamedEntity)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public NamedEntityView() {
-      InitializeComponent();
-    }
-
-    protected override void DeregisterContentEvents() {
-      Content.PropertyChanged -= new PropertyChangedEventHandler(Content_PropertyChanged);
-      base.DeregisterContentEvents();
-    }
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.PropertyChanged += new PropertyChangedEventHandler(Content_PropertyChanged);
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      if (Content == null) {
-        nameTextBox.Text = string.Empty;
-        descriptionTextBox.Text = string.Empty;
-        toolTip.SetToolTip(descriptionTextBox, string.Empty);
-        if (ViewAttribute.HasViewAttribute(this.GetType()))
-          this.Caption = ViewAttribute.GetViewName(this.GetType());
-        else
-          this.Caption = "NamedEntity View";
-      } else {
-        nameTextBox.Text = Content.Name;
-        descriptionTextBox.Text = Content.Description;
-        toolTip.SetToolTip(descriptionTextBox, Content.Description);
-        Caption = Content.Name;
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      if (Content == null) {
-        nameTextBox.Enabled = false;
-        descriptionTextBox.Enabled = false;
-      } else {
-        nameTextBox.Enabled = true;
-        nameTextBox.ReadOnly = ReadOnly;
-        descriptionTextBox.Enabled = true;
-        descriptionTextBox.ReadOnly = ReadOnly;
-      }
-    }
-
-    protected virtual void Content_PropertyChanged(object sender, PropertyChangedEventArgs e) {
-      if (InvokeRequired)
-        Invoke(new PropertyChangedEventHandler(Content_PropertyChanged), sender, e);
-      else {
-        switch (e.PropertyName) {
-          case "Name":
-            nameTextBox.Text = Content.Name;
-            Caption = Content.Name;
-            break;
-          case "Description":
-            descriptionTextBox.Text = Content.Description;
-            toolTip.SetToolTip(descriptionTextBox, Content.Description);
-            break;
-        }
-        nameTextBox.Text = Content.Name;
-        Caption = Content.Name;
-      }
-    }
-
-    protected virtual void nameTextBox_KeyDown(object sender, KeyEventArgs e) {
-      if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
-        nameLabel.Focus();  // set focus on label to validate data
-      if (e.KeyCode == Keys.Escape) {
-        nameTextBox.Text = Content.Name;
-        nameLabel.Focus();  // set focus on label to validate data
-      }
-    }
-    protected virtual void nameTextBox_Validated(object sender, EventArgs e) {
-      Content.Name = nameTextBox.Text;
-    }
-    protected virtual void descriptionTextBox_Validated(object sender, EventArgs e) {
-      Content.Description = descriptionTextBox.Text;
-    }
-
-    protected void descriptionTextBox_DoubleClick(object sender, EventArgs e) {
-      using (TextDialog dialog = new TextDialog("Description of " + Content.Name, descriptionTextBox.Text, ReadOnly)) {
-        if (dialog.ShowDialog(this) == DialogResult.OK)
-          Content.Description = dialog.Content;
-      }
-    }
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBItem.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBItem.cs	(revision 4425)
+++ 	(revision )
@@ -1,71 +1,0 @@
-#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Drawing;
-using System.Runtime.Serialization;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-
-namespace HeuristicLab.Clients.OKB {
-  [Item("OKBItem", "Base class for all OKB items.")]
-  [DataContract(IsReference = true)]
-  public abstract class OKBItem : IItem {
-    public virtual string ItemName {
-      get { return ItemAttribute.GetName(this.GetType()); }
-    }
-    public virtual string ItemDescription {
-      get { return ItemAttribute.GetDescription(this.GetType()); }
-    }
-    public Version ItemVersion {
-      get { return ItemAttribute.GetVersion(this.GetType()); }
-    }
-    public virtual Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
-    }
-
-    protected OKBItem() { }
-
-    public object Clone() {
-      return Clone(new Cloner());
-    }
-    public virtual IDeepCloneable Clone(Cloner cloner) {
-      OKBItem clone = (OKBItem)Activator.CreateInstance(this.GetType(), true);
-      cloner.RegisterClonedObject(this, clone);
-      return clone;
-    }
-
-    public override string ToString() {
-      return ItemName;
-    }
-
-    public event EventHandler ItemImageChanged;
-    protected virtual void OnItemImageChanged() {
-      EventHandler handler = ItemImageChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-    public event EventHandler ToStringChanged;
-    protected virtual void OnToStringChanged() {
-      EventHandler handler = ToStringChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients.cs	(revision 4425)
+++ 	(revision )
@@ -1,5713 +1,0 @@
-﻿//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//     Runtime Version:4.0.30319.1
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace HeuristicLab.Clients.OKB {
-
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmClass : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private string NameField;
-
-    private string DescriptionField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> AlgorithmsField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> Algorithms {
-      get {
-        return this.AlgorithmsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmsField, value) != true)) {
-          this.AlgorithmsField = value;
-          this.RaisePropertyChanged("Algorithms");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Algorithm", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Algorithm : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long AlgorithmClassIdField;
-
-    private long PlatformIdField;
-
-    private string NameField;
-
-    private string DescriptionField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> ExperimentsField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParametersField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmData AlgorithmDataField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsersField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> ResultsField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmClass AlgorithmClassField;
-
-    private HeuristicLab.Clients.OKB.Platform PlatformField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long AlgorithmClassId {
-      get {
-        return this.AlgorithmClassIdField;
-      }
-      set {
-        if ((this.AlgorithmClassIdField.Equals(value) != true)) {
-          this.AlgorithmClassIdField = value;
-          this.RaisePropertyChanged("AlgorithmClassId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long PlatformId {
-      get {
-        return this.PlatformIdField;
-      }
-      set {
-        if ((this.PlatformIdField.Equals(value) != true)) {
-          this.PlatformIdField = value;
-          this.RaisePropertyChanged("PlatformId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> Experiments {
-      get {
-        return this.ExperimentsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentsField, value) != true)) {
-          this.ExperimentsField = value;
-          this.RaisePropertyChanged("Experiments");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParameters {
-      get {
-        return this.AlgorithmParametersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParametersField, value) != true)) {
-          this.AlgorithmParametersField = value;
-          this.RaisePropertyChanged("AlgorithmParameters");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Clients.OKB.AlgorithmData AlgorithmData {
-      get {
-        return this.AlgorithmDataField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmDataField, value) != true)) {
-          this.AlgorithmDataField = value;
-          this.RaisePropertyChanged("AlgorithmData");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsers {
-      get {
-        return this.AlgorithmUsersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmUsersField, value) != true)) {
-          this.AlgorithmUsersField = value;
-          this.RaisePropertyChanged("AlgorithmUsers");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> Results {
-      get {
-        return this.ResultsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultsField, value) != true)) {
-          this.ResultsField = value;
-          this.RaisePropertyChanged("Results");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Clients.OKB.AlgorithmClass AlgorithmClass {
-      get {
-        return this.AlgorithmClassField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmClassField, value) != true)) {
-          this.AlgorithmClassField = value;
-          this.RaisePropertyChanged("AlgorithmClass");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Clients.OKB.Platform Platform {
-      get {
-        return this.PlatformField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.PlatformField, value) != true)) {
-          this.PlatformField = value;
-          this.RaisePropertyChanged("Platform");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmData", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmData : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmIdField;
-
-    private HeuristicLab.Clients.OKB.Binary DataField;
-
-    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmId {
-      get {
-        return this.AlgorithmIdField;
-      }
-      set {
-        if ((this.AlgorithmIdField.Equals(value) != true)) {
-          this.AlgorithmIdField = value;
-          this.RaisePropertyChanged("AlgorithmId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public HeuristicLab.Clients.OKB.Binary Data {
-      get {
-        return this.DataField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataField, value) != true)) {
-          this.DataField = value;
-          this.RaisePropertyChanged("Data");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
-    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
-      get {
-        return this.AlgorithmField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
-          this.AlgorithmField = value;
-          this.RaisePropertyChanged("Algorithm");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Platform", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Platform : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private string NameField;
-
-    private string DescriptionField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> AlgorithmsField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> ProblemsField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.DataType> DataTypesField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> Algorithms {
-      get {
-        return this.AlgorithmsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmsField, value) != true)) {
-          this.AlgorithmsField = value;
-          this.RaisePropertyChanged("Algorithms");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> Problems {
-      get {
-        return this.ProblemsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemsField, value) != true)) {
-          this.ProblemsField = value;
-          this.RaisePropertyChanged("Problems");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.DataType> DataTypes {
-      get {
-        return this.DataTypesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypesField, value) != true)) {
-          this.DataTypesField = value;
-          this.RaisePropertyChanged("DataTypes");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Experiment", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Experiment : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long AlgorithmIdField;
-
-    private long ProblemIdField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> RunsField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValuesField;
-
-    private HeuristicLab.Clients.OKB.Problem ProblemField;
-
-    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long AlgorithmId {
-      get {
-        return this.AlgorithmIdField;
-      }
-      set {
-        if ((this.AlgorithmIdField.Equals(value) != true)) {
-          this.AlgorithmIdField = value;
-          this.RaisePropertyChanged("AlgorithmId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long ProblemId {
-      get {
-        return this.ProblemIdField;
-      }
-      set {
-        if ((this.ProblemIdField.Equals(value) != true)) {
-          this.ProblemIdField = value;
-          this.RaisePropertyChanged("ProblemId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> Runs {
-      get {
-        return this.RunsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunsField, value) != true)) {
-          this.RunsField = value;
-          this.RaisePropertyChanged("Runs");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValues {
-      get {
-        return this.AlgorithmParameterBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterBlobValuesField, value) != true)) {
-          this.AlgorithmParameterBlobValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValues {
-      get {
-        return this.AlgorithmParameterBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterBoolValuesField, value) != true)) {
-          this.AlgorithmParameterBoolValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValues {
-      get {
-        return this.AlgorithmParameterFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterFloatValuesField, value) != true)) {
-          this.AlgorithmParameterFloatValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValues {
-      get {
-        return this.AlgorithmParameterIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterIntValuesField, value) != true)) {
-          this.AlgorithmParameterIntValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValues {
-      get {
-        return this.AlgorithmParameterStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterStringValuesField, value) != true)) {
-          this.AlgorithmParameterStringValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValues {
-      get {
-        return this.ProblemParameterBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterBlobValuesField, value) != true)) {
-          this.ProblemParameterBlobValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValues {
-      get {
-        return this.ProblemParameterBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterBoolValuesField, value) != true)) {
-          this.ProblemParameterBoolValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValues {
-      get {
-        return this.ProblemParameterFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterFloatValuesField, value) != true)) {
-          this.ProblemParameterFloatValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValues {
-      get {
-        return this.ProblemParameterIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterIntValuesField, value) != true)) {
-          this.ProblemParameterIntValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 13)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValues {
-      get {
-        return this.ProblemParameterStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterStringValuesField, value) != true)) {
-          this.ProblemParameterStringValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 14)]
-    public HeuristicLab.Clients.OKB.Problem Problem {
-      get {
-        return this.ProblemField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
-          this.ProblemField = value;
-          this.RaisePropertyChanged("Problem");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 15)]
-    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
-      get {
-        return this.AlgorithmField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
-          this.AlgorithmField = value;
-          this.RaisePropertyChanged("Algorithm");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmParameter : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long AlgorithmIdField;
-
-    private string NameField;
-
-    private string AliasField;
-
-    private string DescriptionField;
-
-    private long DataTypeIdField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValuesField;
-
-    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long AlgorithmId {
-      get {
-        return this.AlgorithmIdField;
-      }
-      set {
-        if ((this.AlgorithmIdField.Equals(value) != true)) {
-          this.AlgorithmIdField = value;
-          this.RaisePropertyChanged("AlgorithmId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Alias {
-      get {
-        return this.AliasField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AliasField, value) != true)) {
-          this.AliasField = value;
-          this.RaisePropertyChanged("Alias");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValues {
-      get {
-        return this.AlgorithmParameterBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterBlobValuesField, value) != true)) {
-          this.AlgorithmParameterBlobValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValues {
-      get {
-        return this.AlgorithmParameterBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterBoolValuesField, value) != true)) {
-          this.AlgorithmParameterBoolValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValues {
-      get {
-        return this.AlgorithmParameterFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterFloatValuesField, value) != true)) {
-          this.AlgorithmParameterFloatValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValues {
-      get {
-        return this.AlgorithmParameterIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterIntValuesField, value) != true)) {
-          this.AlgorithmParameterIntValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValues {
-      get {
-        return this.AlgorithmParameterStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterStringValuesField, value) != true)) {
-          this.AlgorithmParameterStringValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
-      get {
-        return this.AlgorithmField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
-          this.AlgorithmField = value;
-          this.RaisePropertyChanged("Algorithm");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmUser", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmUser : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmIdField;
-
-    private System.Guid UserIdField;
-
-    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
-
-    private HeuristicLab.Clients.OKB.User UserField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmId {
-      get {
-        return this.AlgorithmIdField;
-      }
-      set {
-        if ((this.AlgorithmIdField.Equals(value) != true)) {
-          this.AlgorithmIdField = value;
-          this.RaisePropertyChanged("AlgorithmId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid UserId {
-      get {
-        return this.UserIdField;
-      }
-      set {
-        if ((this.UserIdField.Equals(value) != true)) {
-          this.UserIdField = value;
-          this.RaisePropertyChanged("UserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
-    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
-      get {
-        return this.AlgorithmField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
-          this.AlgorithmField = value;
-          this.RaisePropertyChanged("Algorithm");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Clients.OKB.User User {
-      get {
-        return this.UserField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.UserField, value) != true)) {
-          this.UserField = value;
-          this.RaisePropertyChanged("User");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Result", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Result : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long AlgorithmIdField;
-
-    private string NameField;
-
-    private string AliasField;
-
-    private string DescriptionField;
-
-    private long DataTypeIdField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValuesField;
-
-    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long AlgorithmId {
-      get {
-        return this.AlgorithmIdField;
-      }
-      set {
-        if ((this.AlgorithmIdField.Equals(value) != true)) {
-          this.AlgorithmIdField = value;
-          this.RaisePropertyChanged("AlgorithmId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Alias {
-      get {
-        return this.AliasField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AliasField, value) != true)) {
-          this.AliasField = value;
-          this.RaisePropertyChanged("Alias");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValues {
-      get {
-        return this.ResultBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultBlobValuesField, value) != true)) {
-          this.ResultBlobValuesField = value;
-          this.RaisePropertyChanged("ResultBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValues {
-      get {
-        return this.ResultBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultBoolValuesField, value) != true)) {
-          this.ResultBoolValuesField = value;
-          this.RaisePropertyChanged("ResultBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValues {
-      get {
-        return this.ResultFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultFloatValuesField, value) != true)) {
-          this.ResultFloatValuesField = value;
-          this.RaisePropertyChanged("ResultFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValues {
-      get {
-        return this.ResultIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultIntValuesField, value) != true)) {
-          this.ResultIntValuesField = value;
-          this.RaisePropertyChanged("ResultIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValues {
-      get {
-        return this.ResultStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultStringValuesField, value) != true)) {
-          this.ResultStringValuesField = value;
-          this.RaisePropertyChanged("ResultStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
-      get {
-        return this.AlgorithmField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
-          this.AlgorithmField = value;
-          this.RaisePropertyChanged("Algorithm");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Problem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Problem : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long ProblemClassIdField;
-
-    private long PlatformIdField;
-
-    private long SolutionRepresentationIdField;
-
-    private string NameField;
-
-    private string DescriptionField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> ExperimentsField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParametersField;
-
-    private HeuristicLab.Clients.OKB.ProblemData ProblemDataField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsersField;
-
-    private HeuristicLab.Clients.OKB.ProblemClass ProblemClassField;
-
-    private HeuristicLab.Clients.OKB.Platform PlatformField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemClassId {
-      get {
-        return this.ProblemClassIdField;
-      }
-      set {
-        if ((this.ProblemClassIdField.Equals(value) != true)) {
-          this.ProblemClassIdField = value;
-          this.RaisePropertyChanged("ProblemClassId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long PlatformId {
-      get {
-        return this.PlatformIdField;
-      }
-      set {
-        if ((this.PlatformIdField.Equals(value) != true)) {
-          this.PlatformIdField = value;
-          this.RaisePropertyChanged("PlatformId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public long SolutionRepresentationId {
-      get {
-        return this.SolutionRepresentationIdField;
-      }
-      set {
-        if ((this.SolutionRepresentationIdField.Equals(value) != true)) {
-          this.SolutionRepresentationIdField = value;
-          this.RaisePropertyChanged("SolutionRepresentationId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> Experiments {
-      get {
-        return this.ExperimentsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentsField, value) != true)) {
-          this.ExperimentsField = value;
-          this.RaisePropertyChanged("Experiments");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParameters {
-      get {
-        return this.ProblemParametersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParametersField, value) != true)) {
-          this.ProblemParametersField = value;
-          this.RaisePropertyChanged("ProblemParameters");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Clients.OKB.ProblemData ProblemData {
-      get {
-        return this.ProblemDataField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemDataField, value) != true)) {
-          this.ProblemDataField = value;
-          this.RaisePropertyChanged("ProblemData");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsers {
-      get {
-        return this.ProblemUsersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemUsersField, value) != true)) {
-          this.ProblemUsersField = value;
-          this.RaisePropertyChanged("ProblemUsers");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Clients.OKB.ProblemClass ProblemClass {
-      get {
-        return this.ProblemClassField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemClassField, value) != true)) {
-          this.ProblemClassField = value;
-          this.RaisePropertyChanged("ProblemClass");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Clients.OKB.Platform Platform {
-      get {
-        return this.PlatformField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.PlatformField, value) != true)) {
-          this.PlatformField = value;
-          this.RaisePropertyChanged("Platform");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Run", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Run : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long ExperimentIdField;
-
-    private int RandomSeedField;
-
-    private System.Nullable<System.DateTime> FinishedDateField;
-
-    private System.Guid UserIdField;
-
-    private System.Guid ClientIdField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValuesField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.User UserField;
-
-    private HeuristicLab.Clients.OKB.Client ClientField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public int RandomSeed {
-      get {
-        return this.RandomSeedField;
-      }
-      set {
-        if ((this.RandomSeedField.Equals(value) != true)) {
-          this.RandomSeedField = value;
-          this.RaisePropertyChanged("RandomSeed");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public System.Nullable<System.DateTime> FinishedDate {
-      get {
-        return this.FinishedDateField;
-      }
-      set {
-        if ((this.FinishedDateField.Equals(value) != true)) {
-          this.FinishedDateField = value;
-          this.RaisePropertyChanged("FinishedDate");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
-    public System.Guid UserId {
-      get {
-        return this.UserIdField;
-      }
-      set {
-        if ((this.UserIdField.Equals(value) != true)) {
-          this.UserIdField = value;
-          this.RaisePropertyChanged("UserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
-    public System.Guid ClientId {
-      get {
-        return this.ClientIdField;
-      }
-      set {
-        if ((this.ClientIdField.Equals(value) != true)) {
-          this.ClientIdField = value;
-          this.RaisePropertyChanged("ClientId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValues {
-      get {
-        return this.ResultBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultBlobValuesField, value) != true)) {
-          this.ResultBlobValuesField = value;
-          this.RaisePropertyChanged("ResultBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValues {
-      get {
-        return this.ResultBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultBoolValuesField, value) != true)) {
-          this.ResultBoolValuesField = value;
-          this.RaisePropertyChanged("ResultBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValues {
-      get {
-        return this.ResultFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultFloatValuesField, value) != true)) {
-          this.ResultFloatValuesField = value;
-          this.RaisePropertyChanged("ResultFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValues {
-      get {
-        return this.ResultIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultIntValuesField, value) != true)) {
-          this.ResultIntValuesField = value;
-          this.RaisePropertyChanged("ResultIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValues {
-      get {
-        return this.ResultStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultStringValuesField, value) != true)) {
-          this.ResultStringValuesField = value;
-          this.RaisePropertyChanged("ResultStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
-    public HeuristicLab.Clients.OKB.User User {
-      get {
-        return this.UserField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.UserField, value) != true)) {
-          this.UserField = value;
-          this.RaisePropertyChanged("User");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 13)]
-    public HeuristicLab.Clients.OKB.Client Client {
-      get {
-        return this.ClientField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ClientField, value) != true)) {
-          this.ClientField = value;
-          this.RaisePropertyChanged("Client");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmParameterBlobValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private HeuristicLab.Clients.OKB.Binary ValueField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmParameterId {
-      get {
-        return this.AlgorithmParameterIdField;
-      }
-      set {
-        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
-          this.AlgorithmParameterIdField = value;
-          this.RaisePropertyChanged("AlgorithmParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public HeuristicLab.Clients.OKB.Binary Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
-      get {
-        return this.AlgorithmParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
-          this.AlgorithmParameterField = value;
-          this.RaisePropertyChanged("AlgorithmParameter");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmParameterBoolValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private bool ValueField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmParameterId {
-      get {
-        return this.AlgorithmParameterIdField;
-      }
-      set {
-        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
-          this.AlgorithmParameterIdField = value;
-          this.RaisePropertyChanged("AlgorithmParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public bool Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
-      get {
-        return this.AlgorithmParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
-          this.AlgorithmParameterField = value;
-          this.RaisePropertyChanged("AlgorithmParameter");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmParameterFloatValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private double ValueField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmParameterId {
-      get {
-        return this.AlgorithmParameterIdField;
-      }
-      set {
-        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
-          this.AlgorithmParameterIdField = value;
-          this.RaisePropertyChanged("AlgorithmParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public double Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
-      get {
-        return this.AlgorithmParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
-          this.AlgorithmParameterField = value;
-          this.RaisePropertyChanged("AlgorithmParameter");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmParameterIntValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private long ValueField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmParameterId {
-      get {
-        return this.AlgorithmParameterIdField;
-      }
-      set {
-        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
-          this.AlgorithmParameterIdField = value;
-          this.RaisePropertyChanged("AlgorithmParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public long Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
-      get {
-        return this.AlgorithmParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
-          this.AlgorithmParameterField = value;
-          this.RaisePropertyChanged("AlgorithmParameter");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class AlgorithmParameterStringValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long AlgorithmParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private string ValueField;
-
-    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long AlgorithmParameterId {
-      get {
-        return this.AlgorithmParameterIdField;
-      }
-      set {
-        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
-          this.AlgorithmParameterIdField = value;
-          this.RaisePropertyChanged("AlgorithmParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
-      get {
-        return this.AlgorithmParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
-          this.AlgorithmParameterField = value;
-          this.RaisePropertyChanged("AlgorithmParameter");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemParameterBlobValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private HeuristicLab.Clients.OKB.Binary ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemParameterId {
-      get {
-        return this.ProblemParameterIdField;
-      }
-      set {
-        if ((this.ProblemParameterIdField.Equals(value) != true)) {
-          this.ProblemParameterIdField = value;
-          this.RaisePropertyChanged("ProblemParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public HeuristicLab.Clients.OKB.Binary Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
-      get {
-        return this.ProblemParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
-          this.ProblemParameterField = value;
-          this.RaisePropertyChanged("ProblemParameter");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemParameterBoolValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private bool ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemParameterId {
-      get {
-        return this.ProblemParameterIdField;
-      }
-      set {
-        if ((this.ProblemParameterIdField.Equals(value) != true)) {
-          this.ProblemParameterIdField = value;
-          this.RaisePropertyChanged("ProblemParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public bool Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
-      get {
-        return this.ProblemParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
-          this.ProblemParameterField = value;
-          this.RaisePropertyChanged("ProblemParameter");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemParameterFloatValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private double ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemParameterId {
-      get {
-        return this.ProblemParameterIdField;
-      }
-      set {
-        if ((this.ProblemParameterIdField.Equals(value) != true)) {
-          this.ProblemParameterIdField = value;
-          this.RaisePropertyChanged("ProblemParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public double Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
-      get {
-        return this.ProblemParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
-          this.ProblemParameterField = value;
-          this.RaisePropertyChanged("ProblemParameter");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemParameterIntValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private long ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemParameterId {
-      get {
-        return this.ProblemParameterIdField;
-      }
-      set {
-        if ((this.ProblemParameterIdField.Equals(value) != true)) {
-          this.ProblemParameterIdField = value;
-          this.RaisePropertyChanged("ProblemParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public long Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
-      get {
-        return this.ProblemParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
-          this.ProblemParameterField = value;
-          this.RaisePropertyChanged("ProblemParameter");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemParameterStringValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemParameterIdField;
-
-    private long ExperimentIdField;
-
-    private long DataTypeIdField;
-
-    private string ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
-
-    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemParameterId {
-      get {
-        return this.ProblemParameterIdField;
-      }
-      set {
-        if ((this.ProblemParameterIdField.Equals(value) != true)) {
-          this.ProblemParameterIdField = value;
-          this.RaisePropertyChanged("ProblemParameterId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public long ExperimentId {
-      get {
-        return this.ExperimentIdField;
-      }
-      set {
-        if ((this.ExperimentIdField.Equals(value) != true)) {
-          this.ExperimentIdField = value;
-          this.RaisePropertyChanged("ExperimentId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Experiment Experiment {
-      get {
-        return this.ExperimentField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
-          this.ExperimentField = value;
-          this.RaisePropertyChanged("Experiment");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
-      get {
-        return this.ProblemParameterField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
-          this.ProblemParameterField = value;
-          this.RaisePropertyChanged("ProblemParameter");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "User", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class User : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private System.Guid IdField;
-
-    private string NameField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsersField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsersField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> RunsField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsers {
-      get {
-        return this.AlgorithmUsersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmUsersField, value) != true)) {
-          this.AlgorithmUsersField = value;
-          this.RaisePropertyChanged("AlgorithmUsers");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsers {
-      get {
-        return this.ProblemUsersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemUsersField, value) != true)) {
-          this.ProblemUsersField = value;
-          this.RaisePropertyChanged("ProblemUsers");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> Runs {
-      get {
-        return this.RunsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunsField, value) != true)) {
-          this.RunsField = value;
-          this.RaisePropertyChanged("Runs");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Client", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class Client : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private System.Guid IdField;
-
-    private string NameField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> RunsField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> Runs {
-      get {
-        return this.RunsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunsField, value) != true)) {
-          this.RunsField = value;
-          this.RaisePropertyChanged("Runs");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ResultBlobValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ResultIdField;
-
-    private long RunIdField;
-
-    private long DataTypeIdField;
-
-    private HeuristicLab.Clients.OKB.Binary ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Result ResultField;
-
-    private HeuristicLab.Clients.OKB.Run RunField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ResultId {
-      get {
-        return this.ResultIdField;
-      }
-      set {
-        if ((this.ResultIdField.Equals(value) != true)) {
-          this.ResultIdField = value;
-          this.RaisePropertyChanged("ResultId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long RunId {
-      get {
-        return this.RunIdField;
-      }
-      set {
-        if ((this.RunIdField.Equals(value) != true)) {
-          this.RunIdField = value;
-          this.RaisePropertyChanged("RunId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public HeuristicLab.Clients.OKB.Binary Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Result Result {
-      get {
-        return this.ResultField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
-          this.ResultField = value;
-          this.RaisePropertyChanged("Result");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Run Run {
-      get {
-        return this.RunField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunField, value) != true)) {
-          this.RunField = value;
-          this.RaisePropertyChanged("Run");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ResultBoolValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ResultIdField;
-
-    private long RunIdField;
-
-    private long DataTypeIdField;
-
-    private bool ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Result ResultField;
-
-    private HeuristicLab.Clients.OKB.Run RunField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ResultId {
-      get {
-        return this.ResultIdField;
-      }
-      set {
-        if ((this.ResultIdField.Equals(value) != true)) {
-          this.ResultIdField = value;
-          this.RaisePropertyChanged("ResultId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long RunId {
-      get {
-        return this.RunIdField;
-      }
-      set {
-        if ((this.RunIdField.Equals(value) != true)) {
-          this.RunIdField = value;
-          this.RaisePropertyChanged("RunId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public bool Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Result Result {
-      get {
-        return this.ResultField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
-          this.ResultField = value;
-          this.RaisePropertyChanged("Result");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Run Run {
-      get {
-        return this.RunField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunField, value) != true)) {
-          this.RunField = value;
-          this.RaisePropertyChanged("Run");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ResultFloatValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ResultIdField;
-
-    private long RunIdField;
-
-    private long DataTypeIdField;
-
-    private double ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Result ResultField;
-
-    private HeuristicLab.Clients.OKB.Run RunField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ResultId {
-      get {
-        return this.ResultIdField;
-      }
-      set {
-        if ((this.ResultIdField.Equals(value) != true)) {
-          this.ResultIdField = value;
-          this.RaisePropertyChanged("ResultId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long RunId {
-      get {
-        return this.RunIdField;
-      }
-      set {
-        if ((this.RunIdField.Equals(value) != true)) {
-          this.RunIdField = value;
-          this.RaisePropertyChanged("RunId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public double Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Result Result {
-      get {
-        return this.ResultField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
-          this.ResultField = value;
-          this.RaisePropertyChanged("Result");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Run Run {
-      get {
-        return this.RunField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunField, value) != true)) {
-          this.RunField = value;
-          this.RaisePropertyChanged("Run");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ResultIntValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ResultIdField;
-
-    private long RunIdField;
-
-    private long DataTypeIdField;
-
-    private long ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Result ResultField;
-
-    private HeuristicLab.Clients.OKB.Run RunField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ResultId {
-      get {
-        return this.ResultIdField;
-      }
-      set {
-        if ((this.ResultIdField.Equals(value) != true)) {
-          this.ResultIdField = value;
-          this.RaisePropertyChanged("ResultId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long RunId {
-      get {
-        return this.RunIdField;
-      }
-      set {
-        if ((this.RunIdField.Equals(value) != true)) {
-          this.RunIdField = value;
-          this.RaisePropertyChanged("RunId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public long Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((this.ValueField.Equals(value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Result Result {
-      get {
-        return this.ResultField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
-          this.ResultField = value;
-          this.RaisePropertyChanged("Result");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Run Run {
-      get {
-        return this.RunField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunField, value) != true)) {
-          this.RunField = value;
-          this.RaisePropertyChanged("Run");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ResultStringValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ResultIdField;
-
-    private long RunIdField;
-
-    private long DataTypeIdField;
-
-    private string ValueField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    private HeuristicLab.Clients.OKB.Result ResultField;
-
-    private HeuristicLab.Clients.OKB.Run RunField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ResultId {
-      get {
-        return this.ResultIdField;
-      }
-      set {
-        if ((this.ResultIdField.Equals(value) != true)) {
-          this.ResultIdField = value;
-          this.RaisePropertyChanged("ResultId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long RunId {
-      get {
-        return this.RunIdField;
-      }
-      set {
-        if ((this.RunIdField.Equals(value) != true)) {
-          this.RunIdField = value;
-          this.RaisePropertyChanged("RunId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Value {
-      get {
-        return this.ValueField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
-          this.ValueField = value;
-          this.RaisePropertyChanged("Value");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Clients.OKB.Result Result {
-      get {
-        return this.ResultField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
-          this.ResultField = value;
-          this.RaisePropertyChanged("Result");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Clients.OKB.Run Run {
-      get {
-        return this.RunField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.RunField, value) != true)) {
-          this.RunField = value;
-          this.RaisePropertyChanged("Run");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "Binary", Namespace = "http://schemas.datacontract.org/2004/07/System.Data.Linq")]
-  public partial class Binary : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private byte[] BytesField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public byte[] Bytes {
-      get {
-        return this.BytesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.BytesField, value) != true)) {
-          this.BytesField = value;
-          this.RaisePropertyChanged("Bytes");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "DataType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class DataType : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long PlatformIdField;
-
-    private string NameField;
-
-    private string SqlNameField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParametersField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParametersField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> ResultsField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValuesField;
-
-    private HeuristicLab.Clients.OKB.Platform PlatformField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long PlatformId {
-      get {
-        return this.PlatformIdField;
-      }
-      set {
-        if ((this.PlatformIdField.Equals(value) != true)) {
-          this.PlatformIdField = value;
-          this.RaisePropertyChanged("PlatformId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string SqlName {
-      get {
-        return this.SqlNameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.SqlNameField, value) != true)) {
-          this.SqlNameField = value;
-          this.RaisePropertyChanged("SqlName");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParameters {
-      get {
-        return this.AlgorithmParametersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParametersField, value) != true)) {
-          this.AlgorithmParametersField = value;
-          this.RaisePropertyChanged("AlgorithmParameters");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParameters {
-      get {
-        return this.ProblemParametersField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParametersField, value) != true)) {
-          this.ProblemParametersField = value;
-          this.RaisePropertyChanged("ProblemParameters");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> Results {
-      get {
-        return this.ResultsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultsField, value) != true)) {
-          this.ResultsField = value;
-          this.RaisePropertyChanged("Results");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValues {
-      get {
-        return this.AlgorithmParameterBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterBlobValuesField, value) != true)) {
-          this.AlgorithmParameterBlobValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValues {
-      get {
-        return this.AlgorithmParameterBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterBoolValuesField, value) != true)) {
-          this.AlgorithmParameterBoolValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValues {
-      get {
-        return this.AlgorithmParameterFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterFloatValuesField, value) != true)) {
-          this.AlgorithmParameterFloatValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValues {
-      get {
-        return this.AlgorithmParameterIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterIntValuesField, value) != true)) {
-          this.AlgorithmParameterIntValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValues {
-      get {
-        return this.AlgorithmParameterStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AlgorithmParameterStringValuesField, value) != true)) {
-          this.AlgorithmParameterStringValuesField = value;
-          this.RaisePropertyChanged("AlgorithmParameterStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValues {
-      get {
-        return this.ProblemParameterBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterBlobValuesField, value) != true)) {
-          this.ProblemParameterBlobValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 13)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValues {
-      get {
-        return this.ProblemParameterBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterBoolValuesField, value) != true)) {
-          this.ProblemParameterBoolValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 14)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValues {
-      get {
-        return this.ProblemParameterFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterFloatValuesField, value) != true)) {
-          this.ProblemParameterFloatValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 15)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValues {
-      get {
-        return this.ProblemParameterIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterIntValuesField, value) != true)) {
-          this.ProblemParameterIntValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 16)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValues {
-      get {
-        return this.ProblemParameterStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterStringValuesField, value) != true)) {
-          this.ProblemParameterStringValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 17)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValues {
-      get {
-        return this.ResultBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultBlobValuesField, value) != true)) {
-          this.ResultBlobValuesField = value;
-          this.RaisePropertyChanged("ResultBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 18)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValues {
-      get {
-        return this.ResultBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultBoolValuesField, value) != true)) {
-          this.ResultBoolValuesField = value;
-          this.RaisePropertyChanged("ResultBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 19)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValues {
-      get {
-        return this.ResultFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultFloatValuesField, value) != true)) {
-          this.ResultFloatValuesField = value;
-          this.RaisePropertyChanged("ResultFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 20)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValues {
-      get {
-        return this.ResultIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultIntValuesField, value) != true)) {
-          this.ResultIntValuesField = value;
-          this.RaisePropertyChanged("ResultIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 21)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValues {
-      get {
-        return this.ResultStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ResultStringValuesField, value) != true)) {
-          this.ResultStringValuesField = value;
-          this.RaisePropertyChanged("ResultStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 22)]
-    public HeuristicLab.Clients.OKB.Platform Platform {
-      get {
-        return this.PlatformField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.PlatformField, value) != true)) {
-          this.PlatformField = value;
-          this.RaisePropertyChanged("Platform");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemParameter : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private long ProblemIdField;
-
-    private string NameField;
-
-    private string AliasField;
-
-    private string DescriptionField;
-
-    private long DataTypeIdField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValuesField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValuesField;
-
-    private HeuristicLab.Clients.OKB.Problem ProblemField;
-
-    private HeuristicLab.Clients.OKB.DataType DataTypeField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemId {
-      get {
-        return this.ProblemIdField;
-      }
-      set {
-        if ((this.ProblemIdField.Equals(value) != true)) {
-          this.ProblemIdField = value;
-          this.RaisePropertyChanged("ProblemId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
-    public string Alias {
-      get {
-        return this.AliasField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.AliasField, value) != true)) {
-          this.AliasField = value;
-          this.RaisePropertyChanged("Alias");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
-    public long DataTypeId {
-      get {
-        return this.DataTypeIdField;
-      }
-      set {
-        if ((this.DataTypeIdField.Equals(value) != true)) {
-          this.DataTypeIdField = value;
-          this.RaisePropertyChanged("DataTypeId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValues {
-      get {
-        return this.ProblemParameterBlobValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterBlobValuesField, value) != true)) {
-          this.ProblemParameterBlobValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterBlobValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValues {
-      get {
-        return this.ProblemParameterBoolValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterBoolValuesField, value) != true)) {
-          this.ProblemParameterBoolValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterBoolValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValues {
-      get {
-        return this.ProblemParameterFloatValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterFloatValuesField, value) != true)) {
-          this.ProblemParameterFloatValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterFloatValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValues {
-      get {
-        return this.ProblemParameterIntValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterIntValuesField, value) != true)) {
-          this.ProblemParameterIntValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterIntValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValues {
-      get {
-        return this.ProblemParameterStringValuesField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemParameterStringValuesField, value) != true)) {
-          this.ProblemParameterStringValuesField = value;
-          this.RaisePropertyChanged("ProblemParameterStringValues");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
-    public HeuristicLab.Clients.OKB.Problem Problem {
-      get {
-        return this.ProblemField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
-          this.ProblemField = value;
-          this.RaisePropertyChanged("Problem");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
-    public HeuristicLab.Clients.OKB.DataType DataType {
-      get {
-        return this.DataTypeField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
-          this.DataTypeField = value;
-          this.RaisePropertyChanged("DataType");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemData", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemData : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemIdField;
-
-    private HeuristicLab.Clients.OKB.Binary DataField;
-
-    private HeuristicLab.Clients.OKB.Problem ProblemField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemId {
-      get {
-        return this.ProblemIdField;
-      }
-      set {
-        if ((this.ProblemIdField.Equals(value) != true)) {
-          this.ProblemIdField = value;
-          this.RaisePropertyChanged("ProblemId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
-    public HeuristicLab.Clients.OKB.Binary Data {
-      get {
-        return this.DataField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DataField, value) != true)) {
-          this.DataField = value;
-          this.RaisePropertyChanged("Data");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
-    public HeuristicLab.Clients.OKB.Problem Problem {
-      get {
-        return this.ProblemField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
-          this.ProblemField = value;
-          this.RaisePropertyChanged("Problem");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemClass : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long IdField;
-
-    private string NameField;
-
-    private string DescriptionField;
-
-    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> ProblemsField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long Id {
-      get {
-        return this.IdField;
-      }
-      set {
-        if ((this.IdField.Equals(value) != true)) {
-          this.IdField = value;
-          this.RaisePropertyChanged("Id");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public string Name {
-      get {
-        return this.NameField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.NameField, value) != true)) {
-          this.NameField = value;
-          this.RaisePropertyChanged("Name");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
-    public string Description {
-      get {
-        return this.DescriptionField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
-          this.DescriptionField = value;
-          this.RaisePropertyChanged("Description");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> Problems {
-      get {
-        return this.ProblemsField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemsField, value) != true)) {
-          this.ProblemsField = value;
-          this.RaisePropertyChanged("Problems");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
-  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemUser", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
-  public partial class ProblemUser : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
-
-    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
-
-    private long ProblemIdField;
-
-    private System.Guid UserIdField;
-
-    private HeuristicLab.Clients.OKB.Problem ProblemField;
-
-    private HeuristicLab.Clients.OKB.User UserField;
-
-    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
-      get {
-        return this.extensionDataField;
-      }
-      set {
-        this.extensionDataField = value;
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public long ProblemId {
-      get {
-        return this.ProblemIdField;
-      }
-      set {
-        if ((this.ProblemIdField.Equals(value) != true)) {
-          this.ProblemIdField = value;
-          this.RaisePropertyChanged("ProblemId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute()]
-    public System.Guid UserId {
-      get {
-        return this.UserIdField;
-      }
-      set {
-        if ((this.UserIdField.Equals(value) != true)) {
-          this.UserIdField = value;
-          this.RaisePropertyChanged("UserId");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
-    public HeuristicLab.Clients.OKB.Problem Problem {
-      get {
-        return this.ProblemField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
-          this.ProblemField = value;
-          this.RaisePropertyChanged("Problem");
-        }
-      }
-    }
-
-    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
-    public HeuristicLab.Clients.OKB.User User {
-      get {
-        return this.UserField;
-      }
-      set {
-        if ((object.ReferenceEquals(this.UserField, value) != true)) {
-          this.UserField = value;
-          this.RaisePropertyChanged("User");
-        }
-      }
-    }
-
-    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
-
-    protected void RaisePropertyChanged(string propertyName) {
-      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-      if ((propertyChanged != null)) {
-        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
-      }
-    }
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "HeuristicLab.Clients.OKB.IAdminService")]
-  public interface IAdminService {
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/AddAlgorithmClassResponse")]
-    void AddAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/AddAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/AddAlgorithmClassResponse")]
-    System.IAsyncResult BeginAddAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, System.AsyncCallback callback, object asyncState);
-
-    void EndAddAlgorithmClass(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassesResponse")]
-    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> GetAlgorithmClasses();
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassesResponse")]
-    System.IAsyncResult BeginGetAlgorithmClasses(System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> EndGetAlgorithmClasses(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmClassResponse")]
-    void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/UpdateAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmClassResponse")]
-    System.IAsyncResult BeginUpdateAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, System.AsyncCallback callback, object asyncState);
-
-    void EndUpdateAlgorithmClass(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmClassResponse")]
-    void DeleteAlgorithmClass(long algorithmClassId);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/DeleteAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmClassResponse")]
-    System.IAsyncResult BeginDeleteAlgorithmClass(long algorithmClassId, System.AsyncCallback callback, object asyncState);
-
-    void EndDeleteAlgorithmClass(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/AddAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/AddAlgorithmResponse")]
-    void AddAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/AddAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/AddAlgorithmResponse")]
-    System.IAsyncResult BeginAddAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState);
-
-    void EndAddAlgorithm(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithms", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmsResponse")]
-    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> GetAlgorithms();
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetAlgorithms", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmsResponse")]
-    System.IAsyncResult BeginGetAlgorithms(System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> EndGetAlgorithms(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmResponse")]
-    void UpdateAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/UpdateAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateAlgorithmResponse")]
-    System.IAsyncResult BeginUpdateAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState);
-
-    void EndUpdateAlgorithm(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmResponse")]
-    void DeleteAlgorithm(long algorithmId);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/DeleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmResponse")]
-    System.IAsyncResult BeginDeleteAlgorithm(long algorithmId, System.AsyncCallback callback, object asyncState);
-
-    void EndDeleteAlgorithm(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetPlatforms", ReplyAction = "http://tempuri.org/IAdminService/GetPlatformsResponse")]
-    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> GetPlatforms();
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetPlatforms", ReplyAction = "http://tempuri.org/IAdminService/GetPlatformsResponse")]
-    System.IAsyncResult BeginGetPlatforms(System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> EndGetPlatforms(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteAlgorithmResponse")]
-    HeuristicLab.Clients.OKB.Algorithm GetCompleteAlgorithm(int id);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteAlgorithmResponse")]
-    System.IAsyncResult BeginGetCompleteAlgorithm(int id, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Clients.OKB.Algorithm EndGetCompleteAlgorithm(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteProblemResponse")]
-    HeuristicLab.Clients.OKB.Problem GetCompleteProblem(int id);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteProblemResponse")]
-    System.IAsyncResult BeginGetCompleteProblem(int id, System.AsyncCallback callback, object asyncState);
-
-    HeuristicLab.Clients.OKB.Problem EndGetCompleteProblem(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithmResponse")]
-    void UpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithmResponse")]
-    System.IAsyncResult BeginUpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState);
-
-    void EndUpdateCompleteAlgorithm(System.IAsyncResult result);
-
-    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteProblemResponse")]
-    void UpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem);
-
-    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/UpdateCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteProblemResponse")]
-    System.IAsyncResult BeginUpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem, System.AsyncCallback callback, object asyncState);
-
-    void EndUpdateCompleteProblem(System.IAsyncResult result);
-  }
-
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public interface IAdminServiceChannel : HeuristicLab.Clients.OKB.IAdminService, System.ServiceModel.IClientChannel {
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class GetAlgorithmClassesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public GetAlgorithmClassesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass>)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class GetAlgorithmsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public GetAlgorithmsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm>)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class GetPlatformsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public GetPlatformsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform>)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class GetCompleteAlgorithmCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public GetCompleteAlgorithmCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Clients.OKB.Algorithm Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Clients.OKB.Algorithm)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class GetCompleteProblemCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
-
-    private object[] results;
-
-    public GetCompleteProblemCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
-      base(exception, cancelled, userState) {
-      this.results = results;
-    }
-
-    public HeuristicLab.Clients.OKB.Problem Result {
-      get {
-        base.RaiseExceptionIfNecessary();
-        return ((HeuristicLab.Clients.OKB.Problem)(this.results[0]));
-      }
-    }
-  }
-
-  [System.Diagnostics.DebuggerStepThroughAttribute()]
-  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
-  public partial class AdminServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.IAdminService>, HeuristicLab.Clients.OKB.IAdminService {
-
-    private BeginOperationDelegate onBeginAddAlgorithmClassDelegate;
-
-    private EndOperationDelegate onEndAddAlgorithmClassDelegate;
-
-    private System.Threading.SendOrPostCallback onAddAlgorithmClassCompletedDelegate;
-
-    private BeginOperationDelegate onBeginGetAlgorithmClassesDelegate;
-
-    private EndOperationDelegate onEndGetAlgorithmClassesDelegate;
-
-    private System.Threading.SendOrPostCallback onGetAlgorithmClassesCompletedDelegate;
-
-    private BeginOperationDelegate onBeginUpdateAlgorithmClassDelegate;
-
-    private EndOperationDelegate onEndUpdateAlgorithmClassDelegate;
-
-    private System.Threading.SendOrPostCallback onUpdateAlgorithmClassCompletedDelegate;
-
-    private BeginOperationDelegate onBeginDeleteAlgorithmClassDelegate;
-
-    private EndOperationDelegate onEndDeleteAlgorithmClassDelegate;
-
-    private System.Threading.SendOrPostCallback onDeleteAlgorithmClassCompletedDelegate;
-
-    private BeginOperationDelegate onBeginAddAlgorithmDelegate;
-
-    private EndOperationDelegate onEndAddAlgorithmDelegate;
-
-    private System.Threading.SendOrPostCallback onAddAlgorithmCompletedDelegate;
-
-    private BeginOperationDelegate onBeginGetAlgorithmsDelegate;
-
-    private EndOperationDelegate onEndGetAlgorithmsDelegate;
-
-    private System.Threading.SendOrPostCallback onGetAlgorithmsCompletedDelegate;
-
-    private BeginOperationDelegate onBeginUpdateAlgorithmDelegate;
-
-    private EndOperationDelegate onEndUpdateAlgorithmDelegate;
-
-    private System.Threading.SendOrPostCallback onUpdateAlgorithmCompletedDelegate;
-
-    private BeginOperationDelegate onBeginDeleteAlgorithmDelegate;
-
-    private EndOperationDelegate onEndDeleteAlgorithmDelegate;
-
-    private System.Threading.SendOrPostCallback onDeleteAlgorithmCompletedDelegate;
-
-    private BeginOperationDelegate onBeginGetPlatformsDelegate;
-
-    private EndOperationDelegate onEndGetPlatformsDelegate;
-
-    private System.Threading.SendOrPostCallback onGetPlatformsCompletedDelegate;
-
-    private BeginOperationDelegate onBeginGetCompleteAlgorithmDelegate;
-
-    private EndOperationDelegate onEndGetCompleteAlgorithmDelegate;
-
-    private System.Threading.SendOrPostCallback onGetCompleteAlgorithmCompletedDelegate;
-
-    private BeginOperationDelegate onBeginGetCompleteProblemDelegate;
-
-    private EndOperationDelegate onEndGetCompleteProblemDelegate;
-
-    private System.Threading.SendOrPostCallback onGetCompleteProblemCompletedDelegate;
-
-    private BeginOperationDelegate onBeginUpdateCompleteAlgorithmDelegate;
-
-    private EndOperationDelegate onEndUpdateCompleteAlgorithmDelegate;
-
-    private System.Threading.SendOrPostCallback onUpdateCompleteAlgorithmCompletedDelegate;
-
-    private BeginOperationDelegate onBeginUpdateCompleteProblemDelegate;
-
-    private EndOperationDelegate onEndUpdateCompleteProblemDelegate;
-
-    private System.Threading.SendOrPostCallback onUpdateCompleteProblemCompletedDelegate;
-
-    public AdminServiceClient() {
-    }
-
-    public AdminServiceClient(string endpointConfigurationName) :
-      base(endpointConfigurationName) {
-    }
-
-    public AdminServiceClient(string endpointConfigurationName, string remoteAddress) :
-      base(endpointConfigurationName, remoteAddress) {
-    }
-
-    public AdminServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
-      base(endpointConfigurationName, remoteAddress) {
-    }
-
-    public AdminServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
-      base(binding, remoteAddress) {
-    }
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> AddAlgorithmClassCompleted;
-
-    public event System.EventHandler<GetAlgorithmClassesCompletedEventArgs> GetAlgorithmClassesCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> UpdateAlgorithmClassCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> DeleteAlgorithmClassCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> AddAlgorithmCompleted;
-
-    public event System.EventHandler<GetAlgorithmsCompletedEventArgs> GetAlgorithmsCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> UpdateAlgorithmCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> DeleteAlgorithmCompleted;
-
-    public event System.EventHandler<GetPlatformsCompletedEventArgs> GetPlatformsCompleted;
-
-    public event System.EventHandler<GetCompleteAlgorithmCompletedEventArgs> GetCompleteAlgorithmCompleted;
-
-    public event System.EventHandler<GetCompleteProblemCompletedEventArgs> GetCompleteProblemCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> UpdateCompleteAlgorithmCompleted;
-
-    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> UpdateCompleteProblemCompleted;
-
-    public void AddAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass) {
-      base.Channel.AddAlgorithmClass(algorithmClass);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginAddAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginAddAlgorithmClass(algorithmClass, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndAddAlgorithmClass(System.IAsyncResult result) {
-      base.Channel.EndAddAlgorithmClass(result);
-    }
-
-    private System.IAsyncResult OnBeginAddAlgorithmClass(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass = ((HeuristicLab.Clients.OKB.AlgorithmClass)(inValues[0]));
-      return this.BeginAddAlgorithmClass(algorithmClass, callback, asyncState);
-    }
-
-    private object[] OnEndAddAlgorithmClass(System.IAsyncResult result) {
-      this.EndAddAlgorithmClass(result);
-      return null;
-    }
-
-    private void OnAddAlgorithmClassCompleted(object state) {
-      if ((this.AddAlgorithmClassCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.AddAlgorithmClassCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void AddAlgorithmClassAsync(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass) {
-      this.AddAlgorithmClassAsync(algorithmClass, null);
-    }
-
-    public void AddAlgorithmClassAsync(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, object userState) {
-      if ((this.onBeginAddAlgorithmClassDelegate == null)) {
-        this.onBeginAddAlgorithmClassDelegate = new BeginOperationDelegate(this.OnBeginAddAlgorithmClass);
-      }
-      if ((this.onEndAddAlgorithmClassDelegate == null)) {
-        this.onEndAddAlgorithmClassDelegate = new EndOperationDelegate(this.OnEndAddAlgorithmClass);
-      }
-      if ((this.onAddAlgorithmClassCompletedDelegate == null)) {
-        this.onAddAlgorithmClassCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnAddAlgorithmClassCompleted);
-      }
-      base.InvokeAsync(this.onBeginAddAlgorithmClassDelegate, new object[] {
-                        algorithmClass}, this.onEndAddAlgorithmClassDelegate, this.onAddAlgorithmClassCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> GetAlgorithmClasses() {
-      return base.Channel.GetAlgorithmClasses();
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginGetAlgorithmClasses(System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginGetAlgorithmClasses(callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> EndGetAlgorithmClasses(System.IAsyncResult result) {
-      return base.Channel.EndGetAlgorithmClasses(result);
-    }
-
-    private System.IAsyncResult OnBeginGetAlgorithmClasses(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      return this.BeginGetAlgorithmClasses(callback, asyncState);
-    }
-
-    private object[] OnEndGetAlgorithmClasses(System.IAsyncResult result) {
-      HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> retVal = this.EndGetAlgorithmClasses(result);
-      return new object[] {
-                    retVal};
-    }
-
-    private void OnGetAlgorithmClassesCompleted(object state) {
-      if ((this.GetAlgorithmClassesCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.GetAlgorithmClassesCompleted(this, new GetAlgorithmClassesCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void GetAlgorithmClassesAsync() {
-      this.GetAlgorithmClassesAsync(null);
-    }
-
-    public void GetAlgorithmClassesAsync(object userState) {
-      if ((this.onBeginGetAlgorithmClassesDelegate == null)) {
-        this.onBeginGetAlgorithmClassesDelegate = new BeginOperationDelegate(this.OnBeginGetAlgorithmClasses);
-      }
-      if ((this.onEndGetAlgorithmClassesDelegate == null)) {
-        this.onEndGetAlgorithmClassesDelegate = new EndOperationDelegate(this.OnEndGetAlgorithmClasses);
-      }
-      if ((this.onGetAlgorithmClassesCompletedDelegate == null)) {
-        this.onGetAlgorithmClassesCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAlgorithmClassesCompleted);
-      }
-      base.InvokeAsync(this.onBeginGetAlgorithmClassesDelegate, null, this.onEndGetAlgorithmClassesDelegate, this.onGetAlgorithmClassesCompletedDelegate, userState);
-    }
-
-    public void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass) {
-      base.Channel.UpdateAlgorithmClass(algorithmClass);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginUpdateAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginUpdateAlgorithmClass(algorithmClass, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndUpdateAlgorithmClass(System.IAsyncResult result) {
-      base.Channel.EndUpdateAlgorithmClass(result);
-    }
-
-    private System.IAsyncResult OnBeginUpdateAlgorithmClass(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass = ((HeuristicLab.Clients.OKB.AlgorithmClass)(inValues[0]));
-      return this.BeginUpdateAlgorithmClass(algorithmClass, callback, asyncState);
-    }
-
-    private object[] OnEndUpdateAlgorithmClass(System.IAsyncResult result) {
-      this.EndUpdateAlgorithmClass(result);
-      return null;
-    }
-
-    private void OnUpdateAlgorithmClassCompleted(object state) {
-      if ((this.UpdateAlgorithmClassCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.UpdateAlgorithmClassCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void UpdateAlgorithmClassAsync(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass) {
-      this.UpdateAlgorithmClassAsync(algorithmClass, null);
-    }
-
-    public void UpdateAlgorithmClassAsync(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, object userState) {
-      if ((this.onBeginUpdateAlgorithmClassDelegate == null)) {
-        this.onBeginUpdateAlgorithmClassDelegate = new BeginOperationDelegate(this.OnBeginUpdateAlgorithmClass);
-      }
-      if ((this.onEndUpdateAlgorithmClassDelegate == null)) {
-        this.onEndUpdateAlgorithmClassDelegate = new EndOperationDelegate(this.OnEndUpdateAlgorithmClass);
-      }
-      if ((this.onUpdateAlgorithmClassCompletedDelegate == null)) {
-        this.onUpdateAlgorithmClassCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnUpdateAlgorithmClassCompleted);
-      }
-      base.InvokeAsync(this.onBeginUpdateAlgorithmClassDelegate, new object[] {
-                        algorithmClass}, this.onEndUpdateAlgorithmClassDelegate, this.onUpdateAlgorithmClassCompletedDelegate, userState);
-    }
-
-    public void DeleteAlgorithmClass(long algorithmClassId) {
-      base.Channel.DeleteAlgorithmClass(algorithmClassId);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginDeleteAlgorithmClass(long algorithmClassId, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginDeleteAlgorithmClass(algorithmClassId, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndDeleteAlgorithmClass(System.IAsyncResult result) {
-      base.Channel.EndDeleteAlgorithmClass(result);
-    }
-
-    private System.IAsyncResult OnBeginDeleteAlgorithmClass(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      long algorithmClassId = ((long)(inValues[0]));
-      return this.BeginDeleteAlgorithmClass(algorithmClassId, callback, asyncState);
-    }
-
-    private object[] OnEndDeleteAlgorithmClass(System.IAsyncResult result) {
-      this.EndDeleteAlgorithmClass(result);
-      return null;
-    }
-
-    private void OnDeleteAlgorithmClassCompleted(object state) {
-      if ((this.DeleteAlgorithmClassCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.DeleteAlgorithmClassCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void DeleteAlgorithmClassAsync(long algorithmClassId) {
-      this.DeleteAlgorithmClassAsync(algorithmClassId, null);
-    }
-
-    public void DeleteAlgorithmClassAsync(long algorithmClassId, object userState) {
-      if ((this.onBeginDeleteAlgorithmClassDelegate == null)) {
-        this.onBeginDeleteAlgorithmClassDelegate = new BeginOperationDelegate(this.OnBeginDeleteAlgorithmClass);
-      }
-      if ((this.onEndDeleteAlgorithmClassDelegate == null)) {
-        this.onEndDeleteAlgorithmClassDelegate = new EndOperationDelegate(this.OnEndDeleteAlgorithmClass);
-      }
-      if ((this.onDeleteAlgorithmClassCompletedDelegate == null)) {
-        this.onDeleteAlgorithmClassCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDeleteAlgorithmClassCompleted);
-      }
-      base.InvokeAsync(this.onBeginDeleteAlgorithmClassDelegate, new object[] {
-                        algorithmClassId}, this.onEndDeleteAlgorithmClassDelegate, this.onDeleteAlgorithmClassCompletedDelegate, userState);
-    }
-
-    public void AddAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm) {
-      base.Channel.AddAlgorithm(algorithm);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginAddAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginAddAlgorithm(algorithm, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndAddAlgorithm(System.IAsyncResult result) {
-      base.Channel.EndAddAlgorithm(result);
-    }
-
-    private System.IAsyncResult OnBeginAddAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Clients.OKB.Algorithm algorithm = ((HeuristicLab.Clients.OKB.Algorithm)(inValues[0]));
-      return this.BeginAddAlgorithm(algorithm, callback, asyncState);
-    }
-
-    private object[] OnEndAddAlgorithm(System.IAsyncResult result) {
-      this.EndAddAlgorithm(result);
-      return null;
-    }
-
-    private void OnAddAlgorithmCompleted(object state) {
-      if ((this.AddAlgorithmCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.AddAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void AddAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm) {
-      this.AddAlgorithmAsync(algorithm, null);
-    }
-
-    public void AddAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm, object userState) {
-      if ((this.onBeginAddAlgorithmDelegate == null)) {
-        this.onBeginAddAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginAddAlgorithm);
-      }
-      if ((this.onEndAddAlgorithmDelegate == null)) {
-        this.onEndAddAlgorithmDelegate = new EndOperationDelegate(this.OnEndAddAlgorithm);
-      }
-      if ((this.onAddAlgorithmCompletedDelegate == null)) {
-        this.onAddAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnAddAlgorithmCompleted);
-      }
-      base.InvokeAsync(this.onBeginAddAlgorithmDelegate, new object[] {
-                        algorithm}, this.onEndAddAlgorithmDelegate, this.onAddAlgorithmCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> GetAlgorithms() {
-      return base.Channel.GetAlgorithms();
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginGetAlgorithms(System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginGetAlgorithms(callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> EndGetAlgorithms(System.IAsyncResult result) {
-      return base.Channel.EndGetAlgorithms(result);
-    }
-
-    private System.IAsyncResult OnBeginGetAlgorithms(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      return this.BeginGetAlgorithms(callback, asyncState);
-    }
-
-    private object[] OnEndGetAlgorithms(System.IAsyncResult result) {
-      HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> retVal = this.EndGetAlgorithms(result);
-      return new object[] {
-                    retVal};
-    }
-
-    private void OnGetAlgorithmsCompleted(object state) {
-      if ((this.GetAlgorithmsCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.GetAlgorithmsCompleted(this, new GetAlgorithmsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void GetAlgorithmsAsync() {
-      this.GetAlgorithmsAsync(null);
-    }
-
-    public void GetAlgorithmsAsync(object userState) {
-      if ((this.onBeginGetAlgorithmsDelegate == null)) {
-        this.onBeginGetAlgorithmsDelegate = new BeginOperationDelegate(this.OnBeginGetAlgorithms);
-      }
-      if ((this.onEndGetAlgorithmsDelegate == null)) {
-        this.onEndGetAlgorithmsDelegate = new EndOperationDelegate(this.OnEndGetAlgorithms);
-      }
-      if ((this.onGetAlgorithmsCompletedDelegate == null)) {
-        this.onGetAlgorithmsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAlgorithmsCompleted);
-      }
-      base.InvokeAsync(this.onBeginGetAlgorithmsDelegate, null, this.onEndGetAlgorithmsDelegate, this.onGetAlgorithmsCompletedDelegate, userState);
-    }
-
-    public void UpdateAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm) {
-      base.Channel.UpdateAlgorithm(algorithm);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginUpdateAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginUpdateAlgorithm(algorithm, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndUpdateAlgorithm(System.IAsyncResult result) {
-      base.Channel.EndUpdateAlgorithm(result);
-    }
-
-    private System.IAsyncResult OnBeginUpdateAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Clients.OKB.Algorithm algorithm = ((HeuristicLab.Clients.OKB.Algorithm)(inValues[0]));
-      return this.BeginUpdateAlgorithm(algorithm, callback, asyncState);
-    }
-
-    private object[] OnEndUpdateAlgorithm(System.IAsyncResult result) {
-      this.EndUpdateAlgorithm(result);
-      return null;
-    }
-
-    private void OnUpdateAlgorithmCompleted(object state) {
-      if ((this.UpdateAlgorithmCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.UpdateAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void UpdateAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm) {
-      this.UpdateAlgorithmAsync(algorithm, null);
-    }
-
-    public void UpdateAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm, object userState) {
-      if ((this.onBeginUpdateAlgorithmDelegate == null)) {
-        this.onBeginUpdateAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginUpdateAlgorithm);
-      }
-      if ((this.onEndUpdateAlgorithmDelegate == null)) {
-        this.onEndUpdateAlgorithmDelegate = new EndOperationDelegate(this.OnEndUpdateAlgorithm);
-      }
-      if ((this.onUpdateAlgorithmCompletedDelegate == null)) {
-        this.onUpdateAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnUpdateAlgorithmCompleted);
-      }
-      base.InvokeAsync(this.onBeginUpdateAlgorithmDelegate, new object[] {
-                        algorithm}, this.onEndUpdateAlgorithmDelegate, this.onUpdateAlgorithmCompletedDelegate, userState);
-    }
-
-    public void DeleteAlgorithm(long algorithmId) {
-      base.Channel.DeleteAlgorithm(algorithmId);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginDeleteAlgorithm(long algorithmId, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginDeleteAlgorithm(algorithmId, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndDeleteAlgorithm(System.IAsyncResult result) {
-      base.Channel.EndDeleteAlgorithm(result);
-    }
-
-    private System.IAsyncResult OnBeginDeleteAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      long algorithmId = ((long)(inValues[0]));
-      return this.BeginDeleteAlgorithm(algorithmId, callback, asyncState);
-    }
-
-    private object[] OnEndDeleteAlgorithm(System.IAsyncResult result) {
-      this.EndDeleteAlgorithm(result);
-      return null;
-    }
-
-    private void OnDeleteAlgorithmCompleted(object state) {
-      if ((this.DeleteAlgorithmCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.DeleteAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void DeleteAlgorithmAsync(long algorithmId) {
-      this.DeleteAlgorithmAsync(algorithmId, null);
-    }
-
-    public void DeleteAlgorithmAsync(long algorithmId, object userState) {
-      if ((this.onBeginDeleteAlgorithmDelegate == null)) {
-        this.onBeginDeleteAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginDeleteAlgorithm);
-      }
-      if ((this.onEndDeleteAlgorithmDelegate == null)) {
-        this.onEndDeleteAlgorithmDelegate = new EndOperationDelegate(this.OnEndDeleteAlgorithm);
-      }
-      if ((this.onDeleteAlgorithmCompletedDelegate == null)) {
-        this.onDeleteAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDeleteAlgorithmCompleted);
-      }
-      base.InvokeAsync(this.onBeginDeleteAlgorithmDelegate, new object[] {
-                        algorithmId}, this.onEndDeleteAlgorithmDelegate, this.onDeleteAlgorithmCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> GetPlatforms() {
-      return base.Channel.GetPlatforms();
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginGetPlatforms(System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginGetPlatforms(callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> EndGetPlatforms(System.IAsyncResult result) {
-      return base.Channel.EndGetPlatforms(result);
-    }
-
-    private System.IAsyncResult OnBeginGetPlatforms(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      return this.BeginGetPlatforms(callback, asyncState);
-    }
-
-    private object[] OnEndGetPlatforms(System.IAsyncResult result) {
-      HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> retVal = this.EndGetPlatforms(result);
-      return new object[] {
-                    retVal};
-    }
-
-    private void OnGetPlatformsCompleted(object state) {
-      if ((this.GetPlatformsCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.GetPlatformsCompleted(this, new GetPlatformsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void GetPlatformsAsync() {
-      this.GetPlatformsAsync(null);
-    }
-
-    public void GetPlatformsAsync(object userState) {
-      if ((this.onBeginGetPlatformsDelegate == null)) {
-        this.onBeginGetPlatformsDelegate = new BeginOperationDelegate(this.OnBeginGetPlatforms);
-      }
-      if ((this.onEndGetPlatformsDelegate == null)) {
-        this.onEndGetPlatformsDelegate = new EndOperationDelegate(this.OnEndGetPlatforms);
-      }
-      if ((this.onGetPlatformsCompletedDelegate == null)) {
-        this.onGetPlatformsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetPlatformsCompleted);
-      }
-      base.InvokeAsync(this.onBeginGetPlatformsDelegate, null, this.onEndGetPlatformsDelegate, this.onGetPlatformsCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Clients.OKB.Algorithm GetCompleteAlgorithm(int id) {
-      return base.Channel.GetCompleteAlgorithm(id);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginGetCompleteAlgorithm(int id, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginGetCompleteAlgorithm(id, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Clients.OKB.Algorithm EndGetCompleteAlgorithm(System.IAsyncResult result) {
-      return base.Channel.EndGetCompleteAlgorithm(result);
-    }
-
-    private System.IAsyncResult OnBeginGetCompleteAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      int id = ((int)(inValues[0]));
-      return this.BeginGetCompleteAlgorithm(id, callback, asyncState);
-    }
-
-    private object[] OnEndGetCompleteAlgorithm(System.IAsyncResult result) {
-      HeuristicLab.Clients.OKB.Algorithm retVal = this.EndGetCompleteAlgorithm(result);
-      return new object[] {
-                    retVal};
-    }
-
-    private void OnGetCompleteAlgorithmCompleted(object state) {
-      if ((this.GetCompleteAlgorithmCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.GetCompleteAlgorithmCompleted(this, new GetCompleteAlgorithmCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void GetCompleteAlgorithmAsync(int id) {
-      this.GetCompleteAlgorithmAsync(id, null);
-    }
-
-    public void GetCompleteAlgorithmAsync(int id, object userState) {
-      if ((this.onBeginGetCompleteAlgorithmDelegate == null)) {
-        this.onBeginGetCompleteAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginGetCompleteAlgorithm);
-      }
-      if ((this.onEndGetCompleteAlgorithmDelegate == null)) {
-        this.onEndGetCompleteAlgorithmDelegate = new EndOperationDelegate(this.OnEndGetCompleteAlgorithm);
-      }
-      if ((this.onGetCompleteAlgorithmCompletedDelegate == null)) {
-        this.onGetCompleteAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetCompleteAlgorithmCompleted);
-      }
-      base.InvokeAsync(this.onBeginGetCompleteAlgorithmDelegate, new object[] {
-                        id}, this.onEndGetCompleteAlgorithmDelegate, this.onGetCompleteAlgorithmCompletedDelegate, userState);
-    }
-
-    public HeuristicLab.Clients.OKB.Problem GetCompleteProblem(int id) {
-      return base.Channel.GetCompleteProblem(id);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginGetCompleteProblem(int id, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginGetCompleteProblem(id, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public HeuristicLab.Clients.OKB.Problem EndGetCompleteProblem(System.IAsyncResult result) {
-      return base.Channel.EndGetCompleteProblem(result);
-    }
-
-    private System.IAsyncResult OnBeginGetCompleteProblem(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      int id = ((int)(inValues[0]));
-      return this.BeginGetCompleteProblem(id, callback, asyncState);
-    }
-
-    private object[] OnEndGetCompleteProblem(System.IAsyncResult result) {
-      HeuristicLab.Clients.OKB.Problem retVal = this.EndGetCompleteProblem(result);
-      return new object[] {
-                    retVal};
-    }
-
-    private void OnGetCompleteProblemCompleted(object state) {
-      if ((this.GetCompleteProblemCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.GetCompleteProblemCompleted(this, new GetCompleteProblemCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void GetCompleteProblemAsync(int id) {
-      this.GetCompleteProblemAsync(id, null);
-    }
-
-    public void GetCompleteProblemAsync(int id, object userState) {
-      if ((this.onBeginGetCompleteProblemDelegate == null)) {
-        this.onBeginGetCompleteProblemDelegate = new BeginOperationDelegate(this.OnBeginGetCompleteProblem);
-      }
-      if ((this.onEndGetCompleteProblemDelegate == null)) {
-        this.onEndGetCompleteProblemDelegate = new EndOperationDelegate(this.OnEndGetCompleteProblem);
-      }
-      if ((this.onGetCompleteProblemCompletedDelegate == null)) {
-        this.onGetCompleteProblemCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetCompleteProblemCompleted);
-      }
-      base.InvokeAsync(this.onBeginGetCompleteProblemDelegate, new object[] {
-                        id}, this.onEndGetCompleteProblemDelegate, this.onGetCompleteProblemCompletedDelegate, userState);
-    }
-
-    public void UpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm) {
-      base.Channel.UpdateCompleteAlgorithm(algorithm);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginUpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginUpdateCompleteAlgorithm(algorithm, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndUpdateCompleteAlgorithm(System.IAsyncResult result) {
-      base.Channel.EndUpdateCompleteAlgorithm(result);
-    }
-
-    private System.IAsyncResult OnBeginUpdateCompleteAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Clients.OKB.Algorithm algorithm = ((HeuristicLab.Clients.OKB.Algorithm)(inValues[0]));
-      return this.BeginUpdateCompleteAlgorithm(algorithm, callback, asyncState);
-    }
-
-    private object[] OnEndUpdateCompleteAlgorithm(System.IAsyncResult result) {
-      this.EndUpdateCompleteAlgorithm(result);
-      return null;
-    }
-
-    private void OnUpdateCompleteAlgorithmCompleted(object state) {
-      if ((this.UpdateCompleteAlgorithmCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.UpdateCompleteAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void UpdateCompleteAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm) {
-      this.UpdateCompleteAlgorithmAsync(algorithm, null);
-    }
-
-    public void UpdateCompleteAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm, object userState) {
-      if ((this.onBeginUpdateCompleteAlgorithmDelegate == null)) {
-        this.onBeginUpdateCompleteAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginUpdateCompleteAlgorithm);
-      }
-      if ((this.onEndUpdateCompleteAlgorithmDelegate == null)) {
-        this.onEndUpdateCompleteAlgorithmDelegate = new EndOperationDelegate(this.OnEndUpdateCompleteAlgorithm);
-      }
-      if ((this.onUpdateCompleteAlgorithmCompletedDelegate == null)) {
-        this.onUpdateCompleteAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnUpdateCompleteAlgorithmCompleted);
-      }
-      base.InvokeAsync(this.onBeginUpdateCompleteAlgorithmDelegate, new object[] {
-                        algorithm}, this.onEndUpdateCompleteAlgorithmDelegate, this.onUpdateCompleteAlgorithmCompletedDelegate, userState);
-    }
-
-    public void UpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem) {
-      base.Channel.UpdateCompleteProblem(problem);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public System.IAsyncResult BeginUpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem, System.AsyncCallback callback, object asyncState) {
-      return base.Channel.BeginUpdateCompleteProblem(problem, callback, asyncState);
-    }
-
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
-    public void EndUpdateCompleteProblem(System.IAsyncResult result) {
-      base.Channel.EndUpdateCompleteProblem(result);
-    }
-
-    private System.IAsyncResult OnBeginUpdateCompleteProblem(object[] inValues, System.AsyncCallback callback, object asyncState) {
-      HeuristicLab.Clients.OKB.Problem problem = ((HeuristicLab.Clients.OKB.Problem)(inValues[0]));
-      return this.BeginUpdateCompleteProblem(problem, callback, asyncState);
-    }
-
-    private object[] OnEndUpdateCompleteProblem(System.IAsyncResult result) {
-      this.EndUpdateCompleteProblem(result);
-      return null;
-    }
-
-    private void OnUpdateCompleteProblemCompleted(object state) {
-      if ((this.UpdateCompleteProblemCompleted != null)) {
-        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
-        this.UpdateCompleteProblemCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
-      }
-    }
-
-    public void UpdateCompleteProblemAsync(HeuristicLab.Clients.OKB.Problem problem) {
-      this.UpdateCompleteProblemAsync(problem, null);
-    }
-
-    public void UpdateCompleteProblemAsync(HeuristicLab.Clients.OKB.Problem problem, object userState) {
-      if ((this.onBeginUpdateCompleteProblemDelegate == null)) {
-        this.onBeginUpdateCompleteProblemDelegate = new BeginOperationDelegate(this.OnBeginUpdateCompleteProblem);
-      }
-      if ((this.onEndUpdateCompleteProblemDelegate == null)) {
-        this.onEndUpdateCompleteProblemDelegate = new EndOperationDelegate(this.OnEndUpdateCompleteProblem);
-      }
-      if ((this.onUpdateCompleteProblemCompletedDelegate == null)) {
-        this.onUpdateCompleteProblemCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnUpdateCompleteProblemCompleted);
-      }
-      base.InvokeAsync(this.onBeginUpdateCompleteProblemDelegate, new object[] {
-                        problem}, this.onEndUpdateCompleteProblemDelegate, this.onUpdateCompleteProblemCompletedDelegate, userState);
-    }
-  }
-}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Algorithm.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Algorithm.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Algorithm.cs	(revision 4426)
@@ -0,0 +1,65 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ComponentModel;
+using HeuristicLab.Clients.Common;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.OKB {
+  [Item("Algorithm", "An OKB algorithm.")]
+  public partial class Algorithm : OKBItem, INamedOKBItem {
+    public Algorithm() {
+      Name = "New Algorithm";
+      PropertyChanged += new PropertyChangedEventHandler(OnPropertyChanged);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      Algorithm clone = new Algorithm();
+      cloner.RegisterClonedObject(this, clone);
+      clone.Name = Name;
+      clone.Description = Description;
+      return clone;
+    }
+
+    public override string ToString() {
+      return Name;
+    }
+
+    public override void Store() {
+      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
+        try {
+          adminService.StoreAlgorithm(this);
+        }
+        catch (Exception ex) {
+          ErrorHandling.ShowErrorDialog(ex);
+        }
+      }
+    }
+
+    private void OnPropertyChanged(object sender, PropertyChangedEventArgs e) {
+      if (e.PropertyName.Equals("Name"))
+        OnToStringChanged();
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AlgorithmClass.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AlgorithmClass.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AlgorithmClass.cs	(revision 4426)
@@ -0,0 +1,66 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ComponentModel;
+using HeuristicLab.Clients.Common;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.PluginInfrastructure;
+
+namespace HeuristicLab.Clients.OKB {
+  [Item("AlgorithmClass", "An OKB algorithm class.")]
+  public partial class AlgorithmClass : OKBItem, INamedOKBItem {
+    public AlgorithmClass() {
+      Name = "New Algorithm Class";
+      PropertyChanged += new PropertyChangedEventHandler(OnPropertyChanged);
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      AlgorithmClass clone = new AlgorithmClass();
+      cloner.RegisterClonedObject(this, clone);
+      clone.Name = Name;
+      clone.Description = Description;
+      clone.Algorithms = (ItemCollection<Algorithm>)cloner.Clone(Algorithms);
+      return clone;
+    }
+
+    public override string ToString() {
+      return Name;
+    }
+
+    public override void Store() {
+      using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
+        try {
+          adminService.StoreAlgorithmClass(this);
+        }
+        catch (Exception ex) {
+          ErrorHandling.ShowErrorDialog(ex);
+        }
+      }
+    }
+
+    private void OnPropertyChanged(object sender, PropertyChangedEventArgs e) {
+      if (e.PropertyName.Equals("Name"))
+        OnToStringChanged();
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/GenerateServiceClients.cmd
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/GenerateServiceClients.cmd	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/GenerateServiceClients.cmd	(revision 4426)
@@ -0,0 +1,10 @@
+svcutil.exe ^
+  http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService/mex ^
+  /out:ServiceClients ^
+  /namespace:*,HeuristicLab.Clients.OKB ^
+  /targetClientVersion:Version35 ^
+  /async ^
+  /enableDataBinding ^
+  /reference:"C:\Program Files\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll" ^
+  /collectionType:HeuristicLab.Core.ItemCollection`1 ^
+  /config:..\app.config
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/INamedOKBItem.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/INamedOKBItem.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/INamedOKBItem.cs	(revision 4426)
@@ -0,0 +1,28 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+
+namespace HeuristicLab.Clients.OKB {
+  public interface INamedOKBItem : IOKBItem {
+    string Name { get; set; }
+    string Description { get; set; }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/IOKBItem.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/IOKBItem.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/IOKBItem.cs	(revision 4426)
@@ -0,0 +1,29 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.ComponentModel;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Clients.OKB {
+  public interface IOKBItem : IItem, INotifyPropertyChanged {
+    void Store();
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBItem.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBItem.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBItem.cs	(revision 4426)
@@ -0,0 +1,79 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Runtime.Serialization;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.Clients.OKB {
+  [Item("OKBItem", "Base class for all OKB items.")]
+  [DataContract(IsReference = true)]
+  public abstract class OKBItem : IOKBItem {
+    public virtual string ItemName {
+      get { return ItemAttribute.GetName(this.GetType()); }
+    }
+    public virtual string ItemDescription {
+      get { return ItemAttribute.GetDescription(this.GetType()); }
+    }
+    public Version ItemVersion {
+      get { return ItemAttribute.GetVersion(this.GetType()); }
+    }
+    public virtual Image ItemImage {
+      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
+    }
+
+    protected OKBItem() { }
+
+    public object Clone() {
+      return Clone(new Cloner());
+    }
+    public virtual IDeepCloneable Clone(Cloner cloner) {
+      OKBItem clone = (OKBItem)Activator.CreateInstance(this.GetType(), true);
+      cloner.RegisterClonedObject(this, clone);
+      return clone;
+    }
+
+    public override string ToString() {
+      return ItemName;
+    }
+
+    public virtual void Store() { }
+
+    public event PropertyChangedEventHandler PropertyChanged;
+    protected virtual void RaisePropertyChanged(string propertyName) {
+      PropertyChangedEventHandler handler = PropertyChanged;
+      if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
+    }
+    public event EventHandler ItemImageChanged;
+    protected virtual void OnItemImageChanged() {
+      EventHandler handler = ItemImageChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
+    }
+    public event EventHandler ToStringChanged;
+    protected virtual void OnToStringChanged() {
+      EventHandler handler = ToStringChanged;
+      if (handler != null) handler(this, EventArgs.Empty);
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/ServiceClients.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/ServiceClients.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/ServiceClients.cs	(revision 4426)
@@ -0,0 +1,5555 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Clients.OKB {
+
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmClass : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private string NameField;
+
+    private string DescriptionField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> AlgorithmsField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> Algorithms {
+      get {
+        return this.AlgorithmsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmsField, value) != true)) {
+          this.AlgorithmsField = value;
+          this.RaisePropertyChanged("Algorithms");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Algorithm", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Algorithm : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long AlgorithmClassIdField;
+
+    private long PlatformIdField;
+
+    private string NameField;
+
+    private string DescriptionField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> ExperimentsField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParametersField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmData AlgorithmDataField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsersField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> ResultsField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmClass AlgorithmClassField;
+
+    private HeuristicLab.Clients.OKB.Platform PlatformField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long AlgorithmClassId {
+      get {
+        return this.AlgorithmClassIdField;
+      }
+      set {
+        if ((this.AlgorithmClassIdField.Equals(value) != true)) {
+          this.AlgorithmClassIdField = value;
+          this.RaisePropertyChanged("AlgorithmClassId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long PlatformId {
+      get {
+        return this.PlatformIdField;
+      }
+      set {
+        if ((this.PlatformIdField.Equals(value) != true)) {
+          this.PlatformIdField = value;
+          this.RaisePropertyChanged("PlatformId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> Experiments {
+      get {
+        return this.ExperimentsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentsField, value) != true)) {
+          this.ExperimentsField = value;
+          this.RaisePropertyChanged("Experiments");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParameters {
+      get {
+        return this.AlgorithmParametersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParametersField, value) != true)) {
+          this.AlgorithmParametersField = value;
+          this.RaisePropertyChanged("AlgorithmParameters");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Clients.OKB.AlgorithmData AlgorithmData {
+      get {
+        return this.AlgorithmDataField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmDataField, value) != true)) {
+          this.AlgorithmDataField = value;
+          this.RaisePropertyChanged("AlgorithmData");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsers {
+      get {
+        return this.AlgorithmUsersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmUsersField, value) != true)) {
+          this.AlgorithmUsersField = value;
+          this.RaisePropertyChanged("AlgorithmUsers");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> Results {
+      get {
+        return this.ResultsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultsField, value) != true)) {
+          this.ResultsField = value;
+          this.RaisePropertyChanged("Results");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Clients.OKB.AlgorithmClass AlgorithmClass {
+      get {
+        return this.AlgorithmClassField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmClassField, value) != true)) {
+          this.AlgorithmClassField = value;
+          this.RaisePropertyChanged("AlgorithmClass");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Clients.OKB.Platform Platform {
+      get {
+        return this.PlatformField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.PlatformField, value) != true)) {
+          this.PlatformField = value;
+          this.RaisePropertyChanged("Platform");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmData", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmData : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmIdField;
+
+    private HeuristicLab.Clients.OKB.Binary DataField;
+
+    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmId {
+      get {
+        return this.AlgorithmIdField;
+      }
+      set {
+        if ((this.AlgorithmIdField.Equals(value) != true)) {
+          this.AlgorithmIdField = value;
+          this.RaisePropertyChanged("AlgorithmId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public HeuristicLab.Clients.OKB.Binary Data {
+      get {
+        return this.DataField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataField, value) != true)) {
+          this.DataField = value;
+          this.RaisePropertyChanged("Data");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
+    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
+      get {
+        return this.AlgorithmField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
+          this.AlgorithmField = value;
+          this.RaisePropertyChanged("Algorithm");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Platform", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Platform : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private string NameField;
+
+    private string DescriptionField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> AlgorithmsField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> ProblemsField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.DataType> DataTypesField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> Algorithms {
+      get {
+        return this.AlgorithmsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmsField, value) != true)) {
+          this.AlgorithmsField = value;
+          this.RaisePropertyChanged("Algorithms");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> Problems {
+      get {
+        return this.ProblemsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemsField, value) != true)) {
+          this.ProblemsField = value;
+          this.RaisePropertyChanged("Problems");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.DataType> DataTypes {
+      get {
+        return this.DataTypesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypesField, value) != true)) {
+          this.DataTypesField = value;
+          this.RaisePropertyChanged("DataTypes");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Experiment", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Experiment : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long AlgorithmIdField;
+
+    private long ProblemIdField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> RunsField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValuesField;
+
+    private HeuristicLab.Clients.OKB.Problem ProblemField;
+
+    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long AlgorithmId {
+      get {
+        return this.AlgorithmIdField;
+      }
+      set {
+        if ((this.AlgorithmIdField.Equals(value) != true)) {
+          this.AlgorithmIdField = value;
+          this.RaisePropertyChanged("AlgorithmId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long ProblemId {
+      get {
+        return this.ProblemIdField;
+      }
+      set {
+        if ((this.ProblemIdField.Equals(value) != true)) {
+          this.ProblemIdField = value;
+          this.RaisePropertyChanged("ProblemId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> Runs {
+      get {
+        return this.RunsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunsField, value) != true)) {
+          this.RunsField = value;
+          this.RaisePropertyChanged("Runs");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValues {
+      get {
+        return this.AlgorithmParameterBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterBlobValuesField, value) != true)) {
+          this.AlgorithmParameterBlobValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValues {
+      get {
+        return this.AlgorithmParameterBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterBoolValuesField, value) != true)) {
+          this.AlgorithmParameterBoolValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValues {
+      get {
+        return this.AlgorithmParameterFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterFloatValuesField, value) != true)) {
+          this.AlgorithmParameterFloatValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValues {
+      get {
+        return this.AlgorithmParameterIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterIntValuesField, value) != true)) {
+          this.AlgorithmParameterIntValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValues {
+      get {
+        return this.AlgorithmParameterStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterStringValuesField, value) != true)) {
+          this.AlgorithmParameterStringValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValues {
+      get {
+        return this.ProblemParameterBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterBlobValuesField, value) != true)) {
+          this.ProblemParameterBlobValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValues {
+      get {
+        return this.ProblemParameterBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterBoolValuesField, value) != true)) {
+          this.ProblemParameterBoolValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValues {
+      get {
+        return this.ProblemParameterFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterFloatValuesField, value) != true)) {
+          this.ProblemParameterFloatValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValues {
+      get {
+        return this.ProblemParameterIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterIntValuesField, value) != true)) {
+          this.ProblemParameterIntValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 13)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValues {
+      get {
+        return this.ProblemParameterStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterStringValuesField, value) != true)) {
+          this.ProblemParameterStringValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 14)]
+    public HeuristicLab.Clients.OKB.Problem Problem {
+      get {
+        return this.ProblemField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
+          this.ProblemField = value;
+          this.RaisePropertyChanged("Problem");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 15)]
+    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
+      get {
+        return this.AlgorithmField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
+          this.AlgorithmField = value;
+          this.RaisePropertyChanged("Algorithm");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmParameter : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long AlgorithmIdField;
+
+    private string NameField;
+
+    private string AliasField;
+
+    private string DescriptionField;
+
+    private long DataTypeIdField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValuesField;
+
+    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long AlgorithmId {
+      get {
+        return this.AlgorithmIdField;
+      }
+      set {
+        if ((this.AlgorithmIdField.Equals(value) != true)) {
+          this.AlgorithmIdField = value;
+          this.RaisePropertyChanged("AlgorithmId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Alias {
+      get {
+        return this.AliasField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AliasField, value) != true)) {
+          this.AliasField = value;
+          this.RaisePropertyChanged("Alias");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValues {
+      get {
+        return this.AlgorithmParameterBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterBlobValuesField, value) != true)) {
+          this.AlgorithmParameterBlobValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValues {
+      get {
+        return this.AlgorithmParameterBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterBoolValuesField, value) != true)) {
+          this.AlgorithmParameterBoolValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValues {
+      get {
+        return this.AlgorithmParameterFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterFloatValuesField, value) != true)) {
+          this.AlgorithmParameterFloatValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValues {
+      get {
+        return this.AlgorithmParameterIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterIntValuesField, value) != true)) {
+          this.AlgorithmParameterIntValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValues {
+      get {
+        return this.AlgorithmParameterStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterStringValuesField, value) != true)) {
+          this.AlgorithmParameterStringValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
+      get {
+        return this.AlgorithmField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
+          this.AlgorithmField = value;
+          this.RaisePropertyChanged("Algorithm");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmUser", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmUser : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmIdField;
+
+    private System.Guid UserIdField;
+
+    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
+
+    private HeuristicLab.Clients.OKB.User UserField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmId {
+      get {
+        return this.AlgorithmIdField;
+      }
+      set {
+        if ((this.AlgorithmIdField.Equals(value) != true)) {
+          this.AlgorithmIdField = value;
+          this.RaisePropertyChanged("AlgorithmId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Guid UserId {
+      get {
+        return this.UserIdField;
+      }
+      set {
+        if ((this.UserIdField.Equals(value) != true)) {
+          this.UserIdField = value;
+          this.RaisePropertyChanged("UserId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
+    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
+      get {
+        return this.AlgorithmField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
+          this.AlgorithmField = value;
+          this.RaisePropertyChanged("Algorithm");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Clients.OKB.User User {
+      get {
+        return this.UserField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.UserField, value) != true)) {
+          this.UserField = value;
+          this.RaisePropertyChanged("User");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Result", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Result : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long AlgorithmIdField;
+
+    private string NameField;
+
+    private string AliasField;
+
+    private string DescriptionField;
+
+    private long DataTypeIdField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValuesField;
+
+    private HeuristicLab.Clients.OKB.Algorithm AlgorithmField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long AlgorithmId {
+      get {
+        return this.AlgorithmIdField;
+      }
+      set {
+        if ((this.AlgorithmIdField.Equals(value) != true)) {
+          this.AlgorithmIdField = value;
+          this.RaisePropertyChanged("AlgorithmId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Alias {
+      get {
+        return this.AliasField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AliasField, value) != true)) {
+          this.AliasField = value;
+          this.RaisePropertyChanged("Alias");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValues {
+      get {
+        return this.ResultBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultBlobValuesField, value) != true)) {
+          this.ResultBlobValuesField = value;
+          this.RaisePropertyChanged("ResultBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValues {
+      get {
+        return this.ResultBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultBoolValuesField, value) != true)) {
+          this.ResultBoolValuesField = value;
+          this.RaisePropertyChanged("ResultBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValues {
+      get {
+        return this.ResultFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultFloatValuesField, value) != true)) {
+          this.ResultFloatValuesField = value;
+          this.RaisePropertyChanged("ResultFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValues {
+      get {
+        return this.ResultIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultIntValuesField, value) != true)) {
+          this.ResultIntValuesField = value;
+          this.RaisePropertyChanged("ResultIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValues {
+      get {
+        return this.ResultStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultStringValuesField, value) != true)) {
+          this.ResultStringValuesField = value;
+          this.RaisePropertyChanged("ResultStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Clients.OKB.Algorithm Algorithm {
+      get {
+        return this.AlgorithmField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmField, value) != true)) {
+          this.AlgorithmField = value;
+          this.RaisePropertyChanged("Algorithm");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Problem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Problem : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long ProblemClassIdField;
+
+    private long PlatformIdField;
+
+    private long SolutionRepresentationIdField;
+
+    private string NameField;
+
+    private string DescriptionField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> ExperimentsField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParametersField;
+
+    private HeuristicLab.Clients.OKB.ProblemData ProblemDataField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsersField;
+
+    private HeuristicLab.Clients.OKB.ProblemClass ProblemClassField;
+
+    private HeuristicLab.Clients.OKB.Platform PlatformField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemClassId {
+      get {
+        return this.ProblemClassIdField;
+      }
+      set {
+        if ((this.ProblemClassIdField.Equals(value) != true)) {
+          this.ProblemClassIdField = value;
+          this.RaisePropertyChanged("ProblemClassId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long PlatformId {
+      get {
+        return this.PlatformIdField;
+      }
+      set {
+        if ((this.PlatformIdField.Equals(value) != true)) {
+          this.PlatformIdField = value;
+          this.RaisePropertyChanged("PlatformId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public long SolutionRepresentationId {
+      get {
+        return this.SolutionRepresentationIdField;
+      }
+      set {
+        if ((this.SolutionRepresentationIdField.Equals(value) != true)) {
+          this.SolutionRepresentationIdField = value;
+          this.RaisePropertyChanged("SolutionRepresentationId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Experiment> Experiments {
+      get {
+        return this.ExperimentsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentsField, value) != true)) {
+          this.ExperimentsField = value;
+          this.RaisePropertyChanged("Experiments");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParameters {
+      get {
+        return this.ProblemParametersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParametersField, value) != true)) {
+          this.ProblemParametersField = value;
+          this.RaisePropertyChanged("ProblemParameters");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Clients.OKB.ProblemData ProblemData {
+      get {
+        return this.ProblemDataField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemDataField, value) != true)) {
+          this.ProblemDataField = value;
+          this.RaisePropertyChanged("ProblemData");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsers {
+      get {
+        return this.ProblemUsersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemUsersField, value) != true)) {
+          this.ProblemUsersField = value;
+          this.RaisePropertyChanged("ProblemUsers");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Clients.OKB.ProblemClass ProblemClass {
+      get {
+        return this.ProblemClassField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemClassField, value) != true)) {
+          this.ProblemClassField = value;
+          this.RaisePropertyChanged("ProblemClass");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Clients.OKB.Platform Platform {
+      get {
+        return this.PlatformField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.PlatformField, value) != true)) {
+          this.PlatformField = value;
+          this.RaisePropertyChanged("Platform");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Run", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Run : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long ExperimentIdField;
+
+    private int RandomSeedField;
+
+    private System.Nullable<System.DateTime> FinishedDateField;
+
+    private System.Guid UserIdField;
+
+    private System.Guid ClientIdField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValuesField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.User UserField;
+
+    private HeuristicLab.Clients.OKB.Client ClientField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public int RandomSeed {
+      get {
+        return this.RandomSeedField;
+      }
+      set {
+        if ((this.RandomSeedField.Equals(value) != true)) {
+          this.RandomSeedField = value;
+          this.RaisePropertyChanged("RandomSeed");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public System.Nullable<System.DateTime> FinishedDate {
+      get {
+        return this.FinishedDateField;
+      }
+      set {
+        if ((this.FinishedDateField.Equals(value) != true)) {
+          this.FinishedDateField = value;
+          this.RaisePropertyChanged("FinishedDate");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
+    public System.Guid UserId {
+      get {
+        return this.UserIdField;
+      }
+      set {
+        if ((this.UserIdField.Equals(value) != true)) {
+          this.UserIdField = value;
+          this.RaisePropertyChanged("UserId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
+    public System.Guid ClientId {
+      get {
+        return this.ClientIdField;
+      }
+      set {
+        if ((this.ClientIdField.Equals(value) != true)) {
+          this.ClientIdField = value;
+          this.RaisePropertyChanged("ClientId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValues {
+      get {
+        return this.ResultBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultBlobValuesField, value) != true)) {
+          this.ResultBlobValuesField = value;
+          this.RaisePropertyChanged("ResultBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValues {
+      get {
+        return this.ResultBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultBoolValuesField, value) != true)) {
+          this.ResultBoolValuesField = value;
+          this.RaisePropertyChanged("ResultBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValues {
+      get {
+        return this.ResultFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultFloatValuesField, value) != true)) {
+          this.ResultFloatValuesField = value;
+          this.RaisePropertyChanged("ResultFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValues {
+      get {
+        return this.ResultIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultIntValuesField, value) != true)) {
+          this.ResultIntValuesField = value;
+          this.RaisePropertyChanged("ResultIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValues {
+      get {
+        return this.ResultStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultStringValuesField, value) != true)) {
+          this.ResultStringValuesField = value;
+          this.RaisePropertyChanged("ResultStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
+    public HeuristicLab.Clients.OKB.User User {
+      get {
+        return this.UserField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.UserField, value) != true)) {
+          this.UserField = value;
+          this.RaisePropertyChanged("User");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 13)]
+    public HeuristicLab.Clients.OKB.Client Client {
+      get {
+        return this.ClientField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ClientField, value) != true)) {
+          this.ClientField = value;
+          this.RaisePropertyChanged("Client");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmParameterBlobValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private HeuristicLab.Clients.OKB.Binary ValueField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmParameterId {
+      get {
+        return this.AlgorithmParameterIdField;
+      }
+      set {
+        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
+          this.AlgorithmParameterIdField = value;
+          this.RaisePropertyChanged("AlgorithmParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public HeuristicLab.Clients.OKB.Binary Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
+      get {
+        return this.AlgorithmParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
+          this.AlgorithmParameterField = value;
+          this.RaisePropertyChanged("AlgorithmParameter");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmParameterBoolValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private bool ValueField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmParameterId {
+      get {
+        return this.AlgorithmParameterIdField;
+      }
+      set {
+        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
+          this.AlgorithmParameterIdField = value;
+          this.RaisePropertyChanged("AlgorithmParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public bool Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
+      get {
+        return this.AlgorithmParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
+          this.AlgorithmParameterField = value;
+          this.RaisePropertyChanged("AlgorithmParameter");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmParameterFloatValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private double ValueField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmParameterId {
+      get {
+        return this.AlgorithmParameterIdField;
+      }
+      set {
+        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
+          this.AlgorithmParameterIdField = value;
+          this.RaisePropertyChanged("AlgorithmParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public double Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
+      get {
+        return this.AlgorithmParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
+          this.AlgorithmParameterField = value;
+          this.RaisePropertyChanged("AlgorithmParameter");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmParameterIntValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private long ValueField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmParameterId {
+      get {
+        return this.AlgorithmParameterIdField;
+      }
+      set {
+        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
+          this.AlgorithmParameterIdField = value;
+          this.RaisePropertyChanged("AlgorithmParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public long Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
+      get {
+        return this.AlgorithmParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
+          this.AlgorithmParameterField = value;
+          this.RaisePropertyChanged("AlgorithmParameter");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class AlgorithmParameterStringValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long AlgorithmParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private string ValueField;
+
+    private HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameterField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long AlgorithmParameterId {
+      get {
+        return this.AlgorithmParameterIdField;
+      }
+      set {
+        if ((this.AlgorithmParameterIdField.Equals(value) != true)) {
+          this.AlgorithmParameterIdField = value;
+          this.RaisePropertyChanged("AlgorithmParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.AlgorithmParameter AlgorithmParameter {
+      get {
+        return this.AlgorithmParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterField, value) != true)) {
+          this.AlgorithmParameterField = value;
+          this.RaisePropertyChanged("AlgorithmParameter");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemParameterBlobValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private HeuristicLab.Clients.OKB.Binary ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemParameterId {
+      get {
+        return this.ProblemParameterIdField;
+      }
+      set {
+        if ((this.ProblemParameterIdField.Equals(value) != true)) {
+          this.ProblemParameterIdField = value;
+          this.RaisePropertyChanged("ProblemParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public HeuristicLab.Clients.OKB.Binary Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
+      get {
+        return this.ProblemParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
+          this.ProblemParameterField = value;
+          this.RaisePropertyChanged("ProblemParameter");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemParameterBoolValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private bool ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemParameterId {
+      get {
+        return this.ProblemParameterIdField;
+      }
+      set {
+        if ((this.ProblemParameterIdField.Equals(value) != true)) {
+          this.ProblemParameterIdField = value;
+          this.RaisePropertyChanged("ProblemParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public bool Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
+      get {
+        return this.ProblemParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
+          this.ProblemParameterField = value;
+          this.RaisePropertyChanged("ProblemParameter");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemParameterFloatValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private double ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemParameterId {
+      get {
+        return this.ProblemParameterIdField;
+      }
+      set {
+        if ((this.ProblemParameterIdField.Equals(value) != true)) {
+          this.ProblemParameterIdField = value;
+          this.RaisePropertyChanged("ProblemParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public double Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
+      get {
+        return this.ProblemParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
+          this.ProblemParameterField = value;
+          this.RaisePropertyChanged("ProblemParameter");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemParameterIntValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private long ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemParameterId {
+      get {
+        return this.ProblemParameterIdField;
+      }
+      set {
+        if ((this.ProblemParameterIdField.Equals(value) != true)) {
+          this.ProblemParameterIdField = value;
+          this.RaisePropertyChanged("ProblemParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public long Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
+      get {
+        return this.ProblemParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
+          this.ProblemParameterField = value;
+          this.RaisePropertyChanged("ProblemParameter");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemParameterStringValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemParameterIdField;
+
+    private long ExperimentIdField;
+
+    private long DataTypeIdField;
+
+    private string ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Experiment ExperimentField;
+
+    private HeuristicLab.Clients.OKB.ProblemParameter ProblemParameterField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemParameterId {
+      get {
+        return this.ProblemParameterIdField;
+      }
+      set {
+        if ((this.ProblemParameterIdField.Equals(value) != true)) {
+          this.ProblemParameterIdField = value;
+          this.RaisePropertyChanged("ProblemParameterId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public long ExperimentId {
+      get {
+        return this.ExperimentIdField;
+      }
+      set {
+        if ((this.ExperimentIdField.Equals(value) != true)) {
+          this.ExperimentIdField = value;
+          this.RaisePropertyChanged("ExperimentId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Experiment Experiment {
+      get {
+        return this.ExperimentField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ExperimentField, value) != true)) {
+          this.ExperimentField = value;
+          this.RaisePropertyChanged("Experiment");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.ProblemParameter ProblemParameter {
+      get {
+        return this.ProblemParameterField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterField, value) != true)) {
+          this.ProblemParameterField = value;
+          this.RaisePropertyChanged("ProblemParameter");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "User", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class User : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private System.Guid IdField;
+
+    private string NameField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsersField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsersField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> RunsField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Guid Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmUser> AlgorithmUsers {
+      get {
+        return this.AlgorithmUsersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmUsersField, value) != true)) {
+          this.AlgorithmUsersField = value;
+          this.RaisePropertyChanged("AlgorithmUsers");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemUser> ProblemUsers {
+      get {
+        return this.ProblemUsersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemUsersField, value) != true)) {
+          this.ProblemUsersField = value;
+          this.RaisePropertyChanged("ProblemUsers");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> Runs {
+      get {
+        return this.RunsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunsField, value) != true)) {
+          this.RunsField = value;
+          this.RaisePropertyChanged("Runs");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Client", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class Client : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private System.Guid IdField;
+
+    private string NameField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> RunsField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Guid Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Run> Runs {
+      get {
+        return this.RunsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunsField, value) != true)) {
+          this.RunsField = value;
+          this.RaisePropertyChanged("Runs");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ResultBlobValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ResultIdField;
+
+    private long RunIdField;
+
+    private long DataTypeIdField;
+
+    private HeuristicLab.Clients.OKB.Binary ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Result ResultField;
+
+    private HeuristicLab.Clients.OKB.Run RunField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ResultId {
+      get {
+        return this.ResultIdField;
+      }
+      set {
+        if ((this.ResultIdField.Equals(value) != true)) {
+          this.ResultIdField = value;
+          this.RaisePropertyChanged("ResultId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long RunId {
+      get {
+        return this.RunIdField;
+      }
+      set {
+        if ((this.RunIdField.Equals(value) != true)) {
+          this.RunIdField = value;
+          this.RaisePropertyChanged("RunId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public HeuristicLab.Clients.OKB.Binary Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Result Result {
+      get {
+        return this.ResultField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
+          this.ResultField = value;
+          this.RaisePropertyChanged("Result");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Run Run {
+      get {
+        return this.RunField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunField, value) != true)) {
+          this.RunField = value;
+          this.RaisePropertyChanged("Run");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ResultBoolValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ResultIdField;
+
+    private long RunIdField;
+
+    private long DataTypeIdField;
+
+    private bool ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Result ResultField;
+
+    private HeuristicLab.Clients.OKB.Run RunField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ResultId {
+      get {
+        return this.ResultIdField;
+      }
+      set {
+        if ((this.ResultIdField.Equals(value) != true)) {
+          this.ResultIdField = value;
+          this.RaisePropertyChanged("ResultId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long RunId {
+      get {
+        return this.RunIdField;
+      }
+      set {
+        if ((this.RunIdField.Equals(value) != true)) {
+          this.RunIdField = value;
+          this.RaisePropertyChanged("RunId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public bool Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Result Result {
+      get {
+        return this.ResultField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
+          this.ResultField = value;
+          this.RaisePropertyChanged("Result");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Run Run {
+      get {
+        return this.RunField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunField, value) != true)) {
+          this.RunField = value;
+          this.RaisePropertyChanged("Run");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ResultFloatValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ResultIdField;
+
+    private long RunIdField;
+
+    private long DataTypeIdField;
+
+    private double ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Result ResultField;
+
+    private HeuristicLab.Clients.OKB.Run RunField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ResultId {
+      get {
+        return this.ResultIdField;
+      }
+      set {
+        if ((this.ResultIdField.Equals(value) != true)) {
+          this.ResultIdField = value;
+          this.RaisePropertyChanged("ResultId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long RunId {
+      get {
+        return this.RunIdField;
+      }
+      set {
+        if ((this.RunIdField.Equals(value) != true)) {
+          this.RunIdField = value;
+          this.RaisePropertyChanged("RunId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public double Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Result Result {
+      get {
+        return this.ResultField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
+          this.ResultField = value;
+          this.RaisePropertyChanged("Result");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Run Run {
+      get {
+        return this.RunField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunField, value) != true)) {
+          this.RunField = value;
+          this.RaisePropertyChanged("Run");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ResultIntValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ResultIdField;
+
+    private long RunIdField;
+
+    private long DataTypeIdField;
+
+    private long ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Result ResultField;
+
+    private HeuristicLab.Clients.OKB.Run RunField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ResultId {
+      get {
+        return this.ResultIdField;
+      }
+      set {
+        if ((this.ResultIdField.Equals(value) != true)) {
+          this.ResultIdField = value;
+          this.RaisePropertyChanged("ResultId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long RunId {
+      get {
+        return this.RunIdField;
+      }
+      set {
+        if ((this.RunIdField.Equals(value) != true)) {
+          this.RunIdField = value;
+          this.RaisePropertyChanged("RunId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public long Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((this.ValueField.Equals(value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Result Result {
+      get {
+        return this.ResultField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
+          this.ResultField = value;
+          this.RaisePropertyChanged("Result");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Run Run {
+      get {
+        return this.RunField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunField, value) != true)) {
+          this.RunField = value;
+          this.RaisePropertyChanged("Run");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ResultStringValue : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ResultIdField;
+
+    private long RunIdField;
+
+    private long DataTypeIdField;
+
+    private string ValueField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    private HeuristicLab.Clients.OKB.Result ResultField;
+
+    private HeuristicLab.Clients.OKB.Run RunField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ResultId {
+      get {
+        return this.ResultIdField;
+      }
+      set {
+        if ((this.ResultIdField.Equals(value) != true)) {
+          this.ResultIdField = value;
+          this.RaisePropertyChanged("ResultId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long RunId {
+      get {
+        return this.RunIdField;
+      }
+      set {
+        if ((this.RunIdField.Equals(value) != true)) {
+          this.RunIdField = value;
+          this.RaisePropertyChanged("RunId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Value {
+      get {
+        return this.ValueField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
+          this.ValueField = value;
+          this.RaisePropertyChanged("Value");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Clients.OKB.Result Result {
+      get {
+        return this.ResultField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultField, value) != true)) {
+          this.ResultField = value;
+          this.RaisePropertyChanged("Result");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Clients.OKB.Run Run {
+      get {
+        return this.RunField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.RunField, value) != true)) {
+          this.RunField = value;
+          this.RaisePropertyChanged("Run");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "Binary", Namespace = "http://schemas.datacontract.org/2004/07/System.Data.Linq")]
+  public partial class Binary : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private byte[] BytesField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public byte[] Bytes {
+      get {
+        return this.BytesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.BytesField, value) != true)) {
+          this.BytesField = value;
+          this.RaisePropertyChanged("Bytes");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "DataType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class DataType : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long PlatformIdField;
+
+    private string NameField;
+
+    private string SqlNameField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParametersField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParametersField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> ResultsField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValuesField;
+
+    private HeuristicLab.Clients.OKB.Platform PlatformField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long PlatformId {
+      get {
+        return this.PlatformIdField;
+      }
+      set {
+        if ((this.PlatformIdField.Equals(value) != true)) {
+          this.PlatformIdField = value;
+          this.RaisePropertyChanged("PlatformId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string SqlName {
+      get {
+        return this.SqlNameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.SqlNameField, value) != true)) {
+          this.SqlNameField = value;
+          this.RaisePropertyChanged("SqlName");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameter> AlgorithmParameters {
+      get {
+        return this.AlgorithmParametersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParametersField, value) != true)) {
+          this.AlgorithmParametersField = value;
+          this.RaisePropertyChanged("AlgorithmParameters");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameter> ProblemParameters {
+      get {
+        return this.ProblemParametersField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParametersField, value) != true)) {
+          this.ProblemParametersField = value;
+          this.RaisePropertyChanged("ProblemParameters");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Result> Results {
+      get {
+        return this.ResultsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultsField, value) != true)) {
+          this.ResultsField = value;
+          this.RaisePropertyChanged("Results");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue> AlgorithmParameterBlobValues {
+      get {
+        return this.AlgorithmParameterBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterBlobValuesField, value) != true)) {
+          this.AlgorithmParameterBlobValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue> AlgorithmParameterBoolValues {
+      get {
+        return this.AlgorithmParameterBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterBoolValuesField, value) != true)) {
+          this.AlgorithmParameterBoolValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue> AlgorithmParameterFloatValues {
+      get {
+        return this.AlgorithmParameterFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterFloatValuesField, value) != true)) {
+          this.AlgorithmParameterFloatValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterIntValue> AlgorithmParameterIntValues {
+      get {
+        return this.AlgorithmParameterIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterIntValuesField, value) != true)) {
+          this.AlgorithmParameterIntValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmParameterStringValue> AlgorithmParameterStringValues {
+      get {
+        return this.AlgorithmParameterStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AlgorithmParameterStringValuesField, value) != true)) {
+          this.AlgorithmParameterStringValuesField = value;
+          this.RaisePropertyChanged("AlgorithmParameterStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValues {
+      get {
+        return this.ProblemParameterBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterBlobValuesField, value) != true)) {
+          this.ProblemParameterBlobValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 13)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValues {
+      get {
+        return this.ProblemParameterBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterBoolValuesField, value) != true)) {
+          this.ProblemParameterBoolValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 14)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValues {
+      get {
+        return this.ProblemParameterFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterFloatValuesField, value) != true)) {
+          this.ProblemParameterFloatValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 15)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValues {
+      get {
+        return this.ProblemParameterIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterIntValuesField, value) != true)) {
+          this.ProblemParameterIntValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 16)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValues {
+      get {
+        return this.ProblemParameterStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterStringValuesField, value) != true)) {
+          this.ProblemParameterStringValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 17)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBlobValue> ResultBlobValues {
+      get {
+        return this.ResultBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultBlobValuesField, value) != true)) {
+          this.ResultBlobValuesField = value;
+          this.RaisePropertyChanged("ResultBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 18)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultBoolValue> ResultBoolValues {
+      get {
+        return this.ResultBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultBoolValuesField, value) != true)) {
+          this.ResultBoolValuesField = value;
+          this.RaisePropertyChanged("ResultBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 19)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultFloatValue> ResultFloatValues {
+      get {
+        return this.ResultFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultFloatValuesField, value) != true)) {
+          this.ResultFloatValuesField = value;
+          this.RaisePropertyChanged("ResultFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 20)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultIntValue> ResultIntValues {
+      get {
+        return this.ResultIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultIntValuesField, value) != true)) {
+          this.ResultIntValuesField = value;
+          this.RaisePropertyChanged("ResultIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 21)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ResultStringValue> ResultStringValues {
+      get {
+        return this.ResultStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ResultStringValuesField, value) != true)) {
+          this.ResultStringValuesField = value;
+          this.RaisePropertyChanged("ResultStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 22)]
+    public HeuristicLab.Clients.OKB.Platform Platform {
+      get {
+        return this.PlatformField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.PlatformField, value) != true)) {
+          this.PlatformField = value;
+          this.RaisePropertyChanged("Platform");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemParameter : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private long ProblemIdField;
+
+    private string NameField;
+
+    private string AliasField;
+
+    private string DescriptionField;
+
+    private long DataTypeIdField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValuesField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValuesField;
+
+    private HeuristicLab.Clients.OKB.Problem ProblemField;
+
+    private HeuristicLab.Clients.OKB.DataType DataTypeField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemId {
+      get {
+        return this.ProblemIdField;
+      }
+      set {
+        if ((this.ProblemIdField.Equals(value) != true)) {
+          this.ProblemIdField = value;
+          this.RaisePropertyChanged("ProblemId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 3)]
+    public string Alias {
+      get {
+        return this.AliasField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.AliasField, value) != true)) {
+          this.AliasField = value;
+          this.RaisePropertyChanged("Alias");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 5)]
+    public long DataTypeId {
+      get {
+        return this.DataTypeIdField;
+      }
+      set {
+        if ((this.DataTypeIdField.Equals(value) != true)) {
+          this.DataTypeIdField = value;
+          this.RaisePropertyChanged("DataTypeId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 6)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBlobValue> ProblemParameterBlobValues {
+      get {
+        return this.ProblemParameterBlobValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterBlobValuesField, value) != true)) {
+          this.ProblemParameterBlobValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterBlobValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 7)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterBoolValue> ProblemParameterBoolValues {
+      get {
+        return this.ProblemParameterBoolValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterBoolValuesField, value) != true)) {
+          this.ProblemParameterBoolValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterBoolValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 8)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterFloatValue> ProblemParameterFloatValues {
+      get {
+        return this.ProblemParameterFloatValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterFloatValuesField, value) != true)) {
+          this.ProblemParameterFloatValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterFloatValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 9)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterIntValue> ProblemParameterIntValues {
+      get {
+        return this.ProblemParameterIntValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterIntValuesField, value) != true)) {
+          this.ProblemParameterIntValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterIntValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 10)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.ProblemParameterStringValue> ProblemParameterStringValues {
+      get {
+        return this.ProblemParameterStringValuesField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemParameterStringValuesField, value) != true)) {
+          this.ProblemParameterStringValuesField = value;
+          this.RaisePropertyChanged("ProblemParameterStringValues");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 11)]
+    public HeuristicLab.Clients.OKB.Problem Problem {
+      get {
+        return this.ProblemField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
+          this.ProblemField = value;
+          this.RaisePropertyChanged("Problem");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 12)]
+    public HeuristicLab.Clients.OKB.DataType DataType {
+      get {
+        return this.DataTypeField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
+          this.DataTypeField = value;
+          this.RaisePropertyChanged("DataType");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemData", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemData : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemIdField;
+
+    private HeuristicLab.Clients.OKB.Binary DataField;
+
+    private HeuristicLab.Clients.OKB.Problem ProblemField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemId {
+      get {
+        return this.ProblemIdField;
+      }
+      set {
+        if ((this.ProblemIdField.Equals(value) != true)) {
+          this.ProblemIdField = value;
+          this.RaisePropertyChanged("ProblemId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
+    public HeuristicLab.Clients.OKB.Binary Data {
+      get {
+        return this.DataField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DataField, value) != true)) {
+          this.DataField = value;
+          this.RaisePropertyChanged("Data");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
+    public HeuristicLab.Clients.OKB.Problem Problem {
+      get {
+        return this.ProblemField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
+          this.ProblemField = value;
+          this.RaisePropertyChanged("Problem");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemClass : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long IdField;
+
+    private string NameField;
+
+    private string DescriptionField;
+
+    private HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> ProblemsField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long Id {
+      get {
+        return this.IdField;
+      }
+      set {
+        if ((this.IdField.Equals(value) != true)) {
+          this.IdField = value;
+          this.RaisePropertyChanged("Id");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public string Name {
+      get {
+        return this.NameField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.NameField, value) != true)) {
+          this.NameField = value;
+          this.RaisePropertyChanged("Name");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(Order = 2)]
+    public string Description {
+      get {
+        return this.DescriptionField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+          this.DescriptionField = value;
+          this.RaisePropertyChanged("Description");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Problem> Problems {
+      get {
+        return this.ProblemsField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemsField, value) != true)) {
+          this.ProblemsField = value;
+          this.RaisePropertyChanged("Problems");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemUser", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataAccess", IsReference = true)]
+  public partial class ProblemUser : OKBItem, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+
+    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+
+    private long ProblemIdField;
+
+    private System.Guid UserIdField;
+
+    private HeuristicLab.Clients.OKB.Problem ProblemField;
+
+    private HeuristicLab.Clients.OKB.User UserField;
+
+    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+      get {
+        return this.extensionDataField;
+      }
+      set {
+        this.extensionDataField = value;
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public long ProblemId {
+      get {
+        return this.ProblemIdField;
+      }
+      set {
+        if ((this.ProblemIdField.Equals(value) != true)) {
+          this.ProblemIdField = value;
+          this.RaisePropertyChanged("ProblemId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute()]
+    public System.Guid UserId {
+      get {
+        return this.UserIdField;
+      }
+      set {
+        if ((this.UserIdField.Equals(value) != true)) {
+          this.UserIdField = value;
+          this.RaisePropertyChanged("UserId");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
+    public HeuristicLab.Clients.OKB.Problem Problem {
+      get {
+        return this.ProblemField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.ProblemField, value) != true)) {
+          this.ProblemField = value;
+          this.RaisePropertyChanged("Problem");
+        }
+      }
+    }
+
+    [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 3)]
+    public HeuristicLab.Clients.OKB.User User {
+      get {
+        return this.UserField;
+      }
+      set {
+        if ((object.ReferenceEquals(this.UserField, value) != true)) {
+          this.UserField = value;
+          this.RaisePropertyChanged("User");
+        }
+      }
+    }
+
+
+
+  }
+
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "HeuristicLab.Clients.OKB.IAdminService")]
+  public interface IAdminService {
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassResponse")]
+    HeuristicLab.Clients.OKB.AlgorithmClass GetAlgorithmClass(long algorithmClassId);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassResponse")]
+    System.IAsyncResult BeginGetAlgorithmClass(long algorithmClassId, System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Clients.OKB.AlgorithmClass EndGetAlgorithmClass(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassesResponse")]
+    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> GetAlgorithmClasses();
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmClassesResponse")]
+    System.IAsyncResult BeginGetAlgorithmClasses(System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> EndGetAlgorithmClasses(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/StoreAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/StoreAlgorithmClassResponse")]
+    void StoreAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/StoreAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/StoreAlgorithmClassResponse")]
+    System.IAsyncResult BeginStoreAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, System.AsyncCallback callback, object asyncState);
+
+    void EndStoreAlgorithmClass(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmClassResponse")]
+    void DeleteAlgorithmClass(long algorithmClassId);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/DeleteAlgorithmClass", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmClassResponse")]
+    System.IAsyncResult BeginDeleteAlgorithmClass(long algorithmClassId, System.AsyncCallback callback, object asyncState);
+
+    void EndDeleteAlgorithmClass(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmResponse")]
+    HeuristicLab.Clients.OKB.Algorithm GetAlgorithm(long algorithmId);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmResponse")]
+    System.IAsyncResult BeginGetAlgorithm(long algorithmId, System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Clients.OKB.Algorithm EndGetAlgorithm(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetAlgorithms", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmsResponse")]
+    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> GetAlgorithms();
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetAlgorithms", ReplyAction = "http://tempuri.org/IAdminService/GetAlgorithmsResponse")]
+    System.IAsyncResult BeginGetAlgorithms(System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> EndGetAlgorithms(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/StoreAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/StoreAlgorithmResponse")]
+    void StoreAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/StoreAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/StoreAlgorithmResponse")]
+    System.IAsyncResult BeginStoreAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState);
+
+    void EndStoreAlgorithm(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/DeleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmResponse")]
+    void DeleteAlgorithm(long algorithmId);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/DeleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/DeleteAlgorithmResponse")]
+    System.IAsyncResult BeginDeleteAlgorithm(long algorithmId, System.AsyncCallback callback, object asyncState);
+
+    void EndDeleteAlgorithm(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetPlatforms", ReplyAction = "http://tempuri.org/IAdminService/GetPlatformsResponse")]
+    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> GetPlatforms();
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetPlatforms", ReplyAction = "http://tempuri.org/IAdminService/GetPlatformsResponse")]
+    System.IAsyncResult BeginGetPlatforms(System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> EndGetPlatforms(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteAlgorithmResponse")]
+    HeuristicLab.Clients.OKB.Algorithm GetCompleteAlgorithm(int id);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteAlgorithmResponse")]
+    System.IAsyncResult BeginGetCompleteAlgorithm(int id, System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Clients.OKB.Algorithm EndGetCompleteAlgorithm(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/GetCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteProblemResponse")]
+    HeuristicLab.Clients.OKB.Problem GetCompleteProblem(int id);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/GetCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/GetCompleteProblemResponse")]
+    System.IAsyncResult BeginGetCompleteProblem(int id, System.AsyncCallback callback, object asyncState);
+
+    HeuristicLab.Clients.OKB.Problem EndGetCompleteProblem(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithmResponse")]
+    void UpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithm", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteAlgorithmResponse")]
+    System.IAsyncResult BeginUpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState);
+
+    void EndUpdateCompleteAlgorithm(System.IAsyncResult result);
+
+    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdminService/UpdateCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteProblemResponse")]
+    void UpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem);
+
+    [System.ServiceModel.OperationContractAttribute(AsyncPattern = true, Action = "http://tempuri.org/IAdminService/UpdateCompleteProblem", ReplyAction = "http://tempuri.org/IAdminService/UpdateCompleteProblemResponse")]
+    System.IAsyncResult BeginUpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem, System.AsyncCallback callback, object asyncState);
+
+    void EndUpdateCompleteProblem(System.IAsyncResult result);
+  }
+
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public interface IAdminServiceChannel : HeuristicLab.Clients.OKB.IAdminService, System.ServiceModel.IClientChannel {
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetAlgorithmClassCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetAlgorithmClassCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Clients.OKB.AlgorithmClass Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Clients.OKB.AlgorithmClass)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetAlgorithmClassesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetAlgorithmClassesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass>)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetAlgorithmCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetAlgorithmCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Clients.OKB.Algorithm Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Clients.OKB.Algorithm)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetAlgorithmsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetAlgorithmsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm>)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetPlatformsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetPlatformsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform>)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetCompleteAlgorithmCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetCompleteAlgorithmCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Clients.OKB.Algorithm Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Clients.OKB.Algorithm)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class GetCompleteProblemCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+    private object[] results;
+
+    public GetCompleteProblemCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+      base(exception, cancelled, userState) {
+      this.results = results;
+    }
+
+    public HeuristicLab.Clients.OKB.Problem Result {
+      get {
+        base.RaiseExceptionIfNecessary();
+        return ((HeuristicLab.Clients.OKB.Problem)(this.results[0]));
+      }
+    }
+  }
+
+  [System.Diagnostics.DebuggerStepThroughAttribute()]
+  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+  public partial class AdminServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.IAdminService>, HeuristicLab.Clients.OKB.IAdminService {
+
+    private BeginOperationDelegate onBeginGetAlgorithmClassDelegate;
+
+    private EndOperationDelegate onEndGetAlgorithmClassDelegate;
+
+    private System.Threading.SendOrPostCallback onGetAlgorithmClassCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetAlgorithmClassesDelegate;
+
+    private EndOperationDelegate onEndGetAlgorithmClassesDelegate;
+
+    private System.Threading.SendOrPostCallback onGetAlgorithmClassesCompletedDelegate;
+
+    private BeginOperationDelegate onBeginStoreAlgorithmClassDelegate;
+
+    private EndOperationDelegate onEndStoreAlgorithmClassDelegate;
+
+    private System.Threading.SendOrPostCallback onStoreAlgorithmClassCompletedDelegate;
+
+    private BeginOperationDelegate onBeginDeleteAlgorithmClassDelegate;
+
+    private EndOperationDelegate onEndDeleteAlgorithmClassDelegate;
+
+    private System.Threading.SendOrPostCallback onDeleteAlgorithmClassCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetAlgorithmDelegate;
+
+    private EndOperationDelegate onEndGetAlgorithmDelegate;
+
+    private System.Threading.SendOrPostCallback onGetAlgorithmCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetAlgorithmsDelegate;
+
+    private EndOperationDelegate onEndGetAlgorithmsDelegate;
+
+    private System.Threading.SendOrPostCallback onGetAlgorithmsCompletedDelegate;
+
+    private BeginOperationDelegate onBeginStoreAlgorithmDelegate;
+
+    private EndOperationDelegate onEndStoreAlgorithmDelegate;
+
+    private System.Threading.SendOrPostCallback onStoreAlgorithmCompletedDelegate;
+
+    private BeginOperationDelegate onBeginDeleteAlgorithmDelegate;
+
+    private EndOperationDelegate onEndDeleteAlgorithmDelegate;
+
+    private System.Threading.SendOrPostCallback onDeleteAlgorithmCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetPlatformsDelegate;
+
+    private EndOperationDelegate onEndGetPlatformsDelegate;
+
+    private System.Threading.SendOrPostCallback onGetPlatformsCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetCompleteAlgorithmDelegate;
+
+    private EndOperationDelegate onEndGetCompleteAlgorithmDelegate;
+
+    private System.Threading.SendOrPostCallback onGetCompleteAlgorithmCompletedDelegate;
+
+    private BeginOperationDelegate onBeginGetCompleteProblemDelegate;
+
+    private EndOperationDelegate onEndGetCompleteProblemDelegate;
+
+    private System.Threading.SendOrPostCallback onGetCompleteProblemCompletedDelegate;
+
+    private BeginOperationDelegate onBeginUpdateCompleteAlgorithmDelegate;
+
+    private EndOperationDelegate onEndUpdateCompleteAlgorithmDelegate;
+
+    private System.Threading.SendOrPostCallback onUpdateCompleteAlgorithmCompletedDelegate;
+
+    private BeginOperationDelegate onBeginUpdateCompleteProblemDelegate;
+
+    private EndOperationDelegate onEndUpdateCompleteProblemDelegate;
+
+    private System.Threading.SendOrPostCallback onUpdateCompleteProblemCompletedDelegate;
+
+    public AdminServiceClient() {
+    }
+
+    public AdminServiceClient(string endpointConfigurationName) :
+      base(endpointConfigurationName) {
+    }
+
+    public AdminServiceClient(string endpointConfigurationName, string remoteAddress) :
+      base(endpointConfigurationName, remoteAddress) {
+    }
+
+    public AdminServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
+      base(endpointConfigurationName, remoteAddress) {
+    }
+
+    public AdminServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
+      base(binding, remoteAddress) {
+    }
+
+    public event System.EventHandler<GetAlgorithmClassCompletedEventArgs> GetAlgorithmClassCompleted;
+
+    public event System.EventHandler<GetAlgorithmClassesCompletedEventArgs> GetAlgorithmClassesCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> StoreAlgorithmClassCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> DeleteAlgorithmClassCompleted;
+
+    public event System.EventHandler<GetAlgorithmCompletedEventArgs> GetAlgorithmCompleted;
+
+    public event System.EventHandler<GetAlgorithmsCompletedEventArgs> GetAlgorithmsCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> StoreAlgorithmCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> DeleteAlgorithmCompleted;
+
+    public event System.EventHandler<GetPlatformsCompletedEventArgs> GetPlatformsCompleted;
+
+    public event System.EventHandler<GetCompleteAlgorithmCompletedEventArgs> GetCompleteAlgorithmCompleted;
+
+    public event System.EventHandler<GetCompleteProblemCompletedEventArgs> GetCompleteProblemCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> UpdateCompleteAlgorithmCompleted;
+
+    public event System.EventHandler<System.ComponentModel.AsyncCompletedEventArgs> UpdateCompleteProblemCompleted;
+
+    public HeuristicLab.Clients.OKB.AlgorithmClass GetAlgorithmClass(long algorithmClassId) {
+      return base.Channel.GetAlgorithmClass(algorithmClassId);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetAlgorithmClass(long algorithmClassId, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetAlgorithmClass(algorithmClassId, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Clients.OKB.AlgorithmClass EndGetAlgorithmClass(System.IAsyncResult result) {
+      return base.Channel.EndGetAlgorithmClass(result);
+    }
+
+    private System.IAsyncResult OnBeginGetAlgorithmClass(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      long algorithmClassId = ((long)(inValues[0]));
+      return this.BeginGetAlgorithmClass(algorithmClassId, callback, asyncState);
+    }
+
+    private object[] OnEndGetAlgorithmClass(System.IAsyncResult result) {
+      HeuristicLab.Clients.OKB.AlgorithmClass retVal = this.EndGetAlgorithmClass(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetAlgorithmClassCompleted(object state) {
+      if ((this.GetAlgorithmClassCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetAlgorithmClassCompleted(this, new GetAlgorithmClassCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetAlgorithmClassAsync(long algorithmClassId) {
+      this.GetAlgorithmClassAsync(algorithmClassId, null);
+    }
+
+    public void GetAlgorithmClassAsync(long algorithmClassId, object userState) {
+      if ((this.onBeginGetAlgorithmClassDelegate == null)) {
+        this.onBeginGetAlgorithmClassDelegate = new BeginOperationDelegate(this.OnBeginGetAlgorithmClass);
+      }
+      if ((this.onEndGetAlgorithmClassDelegate == null)) {
+        this.onEndGetAlgorithmClassDelegate = new EndOperationDelegate(this.OnEndGetAlgorithmClass);
+      }
+      if ((this.onGetAlgorithmClassCompletedDelegate == null)) {
+        this.onGetAlgorithmClassCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAlgorithmClassCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetAlgorithmClassDelegate, new object[] {
+                        algorithmClassId}, this.onEndGetAlgorithmClassDelegate, this.onGetAlgorithmClassCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> GetAlgorithmClasses() {
+      return base.Channel.GetAlgorithmClasses();
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetAlgorithmClasses(System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetAlgorithmClasses(callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> EndGetAlgorithmClasses(System.IAsyncResult result) {
+      return base.Channel.EndGetAlgorithmClasses(result);
+    }
+
+    private System.IAsyncResult OnBeginGetAlgorithmClasses(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      return this.BeginGetAlgorithmClasses(callback, asyncState);
+    }
+
+    private object[] OnEndGetAlgorithmClasses(System.IAsyncResult result) {
+      HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.AlgorithmClass> retVal = this.EndGetAlgorithmClasses(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetAlgorithmClassesCompleted(object state) {
+      if ((this.GetAlgorithmClassesCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetAlgorithmClassesCompleted(this, new GetAlgorithmClassesCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetAlgorithmClassesAsync() {
+      this.GetAlgorithmClassesAsync(null);
+    }
+
+    public void GetAlgorithmClassesAsync(object userState) {
+      if ((this.onBeginGetAlgorithmClassesDelegate == null)) {
+        this.onBeginGetAlgorithmClassesDelegate = new BeginOperationDelegate(this.OnBeginGetAlgorithmClasses);
+      }
+      if ((this.onEndGetAlgorithmClassesDelegate == null)) {
+        this.onEndGetAlgorithmClassesDelegate = new EndOperationDelegate(this.OnEndGetAlgorithmClasses);
+      }
+      if ((this.onGetAlgorithmClassesCompletedDelegate == null)) {
+        this.onGetAlgorithmClassesCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAlgorithmClassesCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetAlgorithmClassesDelegate, null, this.onEndGetAlgorithmClassesDelegate, this.onGetAlgorithmClassesCompletedDelegate, userState);
+    }
+
+    public void StoreAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass) {
+      base.Channel.StoreAlgorithmClass(algorithmClass);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginStoreAlgorithmClass(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginStoreAlgorithmClass(algorithmClass, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndStoreAlgorithmClass(System.IAsyncResult result) {
+      base.Channel.EndStoreAlgorithmClass(result);
+    }
+
+    private System.IAsyncResult OnBeginStoreAlgorithmClass(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass = ((HeuristicLab.Clients.OKB.AlgorithmClass)(inValues[0]));
+      return this.BeginStoreAlgorithmClass(algorithmClass, callback, asyncState);
+    }
+
+    private object[] OnEndStoreAlgorithmClass(System.IAsyncResult result) {
+      this.EndStoreAlgorithmClass(result);
+      return null;
+    }
+
+    private void OnStoreAlgorithmClassCompleted(object state) {
+      if ((this.StoreAlgorithmClassCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.StoreAlgorithmClassCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void StoreAlgorithmClassAsync(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass) {
+      this.StoreAlgorithmClassAsync(algorithmClass, null);
+    }
+
+    public void StoreAlgorithmClassAsync(HeuristicLab.Clients.OKB.AlgorithmClass algorithmClass, object userState) {
+      if ((this.onBeginStoreAlgorithmClassDelegate == null)) {
+        this.onBeginStoreAlgorithmClassDelegate = new BeginOperationDelegate(this.OnBeginStoreAlgorithmClass);
+      }
+      if ((this.onEndStoreAlgorithmClassDelegate == null)) {
+        this.onEndStoreAlgorithmClassDelegate = new EndOperationDelegate(this.OnEndStoreAlgorithmClass);
+      }
+      if ((this.onStoreAlgorithmClassCompletedDelegate == null)) {
+        this.onStoreAlgorithmClassCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnStoreAlgorithmClassCompleted);
+      }
+      base.InvokeAsync(this.onBeginStoreAlgorithmClassDelegate, new object[] {
+                        algorithmClass}, this.onEndStoreAlgorithmClassDelegate, this.onStoreAlgorithmClassCompletedDelegate, userState);
+    }
+
+    public void DeleteAlgorithmClass(long algorithmClassId) {
+      base.Channel.DeleteAlgorithmClass(algorithmClassId);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginDeleteAlgorithmClass(long algorithmClassId, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginDeleteAlgorithmClass(algorithmClassId, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndDeleteAlgorithmClass(System.IAsyncResult result) {
+      base.Channel.EndDeleteAlgorithmClass(result);
+    }
+
+    private System.IAsyncResult OnBeginDeleteAlgorithmClass(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      long algorithmClassId = ((long)(inValues[0]));
+      return this.BeginDeleteAlgorithmClass(algorithmClassId, callback, asyncState);
+    }
+
+    private object[] OnEndDeleteAlgorithmClass(System.IAsyncResult result) {
+      this.EndDeleteAlgorithmClass(result);
+      return null;
+    }
+
+    private void OnDeleteAlgorithmClassCompleted(object state) {
+      if ((this.DeleteAlgorithmClassCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.DeleteAlgorithmClassCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void DeleteAlgorithmClassAsync(long algorithmClassId) {
+      this.DeleteAlgorithmClassAsync(algorithmClassId, null);
+    }
+
+    public void DeleteAlgorithmClassAsync(long algorithmClassId, object userState) {
+      if ((this.onBeginDeleteAlgorithmClassDelegate == null)) {
+        this.onBeginDeleteAlgorithmClassDelegate = new BeginOperationDelegate(this.OnBeginDeleteAlgorithmClass);
+      }
+      if ((this.onEndDeleteAlgorithmClassDelegate == null)) {
+        this.onEndDeleteAlgorithmClassDelegate = new EndOperationDelegate(this.OnEndDeleteAlgorithmClass);
+      }
+      if ((this.onDeleteAlgorithmClassCompletedDelegate == null)) {
+        this.onDeleteAlgorithmClassCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDeleteAlgorithmClassCompleted);
+      }
+      base.InvokeAsync(this.onBeginDeleteAlgorithmClassDelegate, new object[] {
+                        algorithmClassId}, this.onEndDeleteAlgorithmClassDelegate, this.onDeleteAlgorithmClassCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Clients.OKB.Algorithm GetAlgorithm(long algorithmId) {
+      return base.Channel.GetAlgorithm(algorithmId);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetAlgorithm(long algorithmId, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetAlgorithm(algorithmId, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Clients.OKB.Algorithm EndGetAlgorithm(System.IAsyncResult result) {
+      return base.Channel.EndGetAlgorithm(result);
+    }
+
+    private System.IAsyncResult OnBeginGetAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      long algorithmId = ((long)(inValues[0]));
+      return this.BeginGetAlgorithm(algorithmId, callback, asyncState);
+    }
+
+    private object[] OnEndGetAlgorithm(System.IAsyncResult result) {
+      HeuristicLab.Clients.OKB.Algorithm retVal = this.EndGetAlgorithm(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetAlgorithmCompleted(object state) {
+      if ((this.GetAlgorithmCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetAlgorithmCompleted(this, new GetAlgorithmCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetAlgorithmAsync(long algorithmId) {
+      this.GetAlgorithmAsync(algorithmId, null);
+    }
+
+    public void GetAlgorithmAsync(long algorithmId, object userState) {
+      if ((this.onBeginGetAlgorithmDelegate == null)) {
+        this.onBeginGetAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginGetAlgorithm);
+      }
+      if ((this.onEndGetAlgorithmDelegate == null)) {
+        this.onEndGetAlgorithmDelegate = new EndOperationDelegate(this.OnEndGetAlgorithm);
+      }
+      if ((this.onGetAlgorithmCompletedDelegate == null)) {
+        this.onGetAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAlgorithmCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetAlgorithmDelegate, new object[] {
+                        algorithmId}, this.onEndGetAlgorithmDelegate, this.onGetAlgorithmCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> GetAlgorithms() {
+      return base.Channel.GetAlgorithms();
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetAlgorithms(System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetAlgorithms(callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> EndGetAlgorithms(System.IAsyncResult result) {
+      return base.Channel.EndGetAlgorithms(result);
+    }
+
+    private System.IAsyncResult OnBeginGetAlgorithms(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      return this.BeginGetAlgorithms(callback, asyncState);
+    }
+
+    private object[] OnEndGetAlgorithms(System.IAsyncResult result) {
+      HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Algorithm> retVal = this.EndGetAlgorithms(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetAlgorithmsCompleted(object state) {
+      if ((this.GetAlgorithmsCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetAlgorithmsCompleted(this, new GetAlgorithmsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetAlgorithmsAsync() {
+      this.GetAlgorithmsAsync(null);
+    }
+
+    public void GetAlgorithmsAsync(object userState) {
+      if ((this.onBeginGetAlgorithmsDelegate == null)) {
+        this.onBeginGetAlgorithmsDelegate = new BeginOperationDelegate(this.OnBeginGetAlgorithms);
+      }
+      if ((this.onEndGetAlgorithmsDelegate == null)) {
+        this.onEndGetAlgorithmsDelegate = new EndOperationDelegate(this.OnEndGetAlgorithms);
+      }
+      if ((this.onGetAlgorithmsCompletedDelegate == null)) {
+        this.onGetAlgorithmsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetAlgorithmsCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetAlgorithmsDelegate, null, this.onEndGetAlgorithmsDelegate, this.onGetAlgorithmsCompletedDelegate, userState);
+    }
+
+    public void StoreAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm) {
+      base.Channel.StoreAlgorithm(algorithm);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginStoreAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginStoreAlgorithm(algorithm, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndStoreAlgorithm(System.IAsyncResult result) {
+      base.Channel.EndStoreAlgorithm(result);
+    }
+
+    private System.IAsyncResult OnBeginStoreAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      HeuristicLab.Clients.OKB.Algorithm algorithm = ((HeuristicLab.Clients.OKB.Algorithm)(inValues[0]));
+      return this.BeginStoreAlgorithm(algorithm, callback, asyncState);
+    }
+
+    private object[] OnEndStoreAlgorithm(System.IAsyncResult result) {
+      this.EndStoreAlgorithm(result);
+      return null;
+    }
+
+    private void OnStoreAlgorithmCompleted(object state) {
+      if ((this.StoreAlgorithmCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.StoreAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void StoreAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm) {
+      this.StoreAlgorithmAsync(algorithm, null);
+    }
+
+    public void StoreAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm, object userState) {
+      if ((this.onBeginStoreAlgorithmDelegate == null)) {
+        this.onBeginStoreAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginStoreAlgorithm);
+      }
+      if ((this.onEndStoreAlgorithmDelegate == null)) {
+        this.onEndStoreAlgorithmDelegate = new EndOperationDelegate(this.OnEndStoreAlgorithm);
+      }
+      if ((this.onStoreAlgorithmCompletedDelegate == null)) {
+        this.onStoreAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnStoreAlgorithmCompleted);
+      }
+      base.InvokeAsync(this.onBeginStoreAlgorithmDelegate, new object[] {
+                        algorithm}, this.onEndStoreAlgorithmDelegate, this.onStoreAlgorithmCompletedDelegate, userState);
+    }
+
+    public void DeleteAlgorithm(long algorithmId) {
+      base.Channel.DeleteAlgorithm(algorithmId);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginDeleteAlgorithm(long algorithmId, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginDeleteAlgorithm(algorithmId, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndDeleteAlgorithm(System.IAsyncResult result) {
+      base.Channel.EndDeleteAlgorithm(result);
+    }
+
+    private System.IAsyncResult OnBeginDeleteAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      long algorithmId = ((long)(inValues[0]));
+      return this.BeginDeleteAlgorithm(algorithmId, callback, asyncState);
+    }
+
+    private object[] OnEndDeleteAlgorithm(System.IAsyncResult result) {
+      this.EndDeleteAlgorithm(result);
+      return null;
+    }
+
+    private void OnDeleteAlgorithmCompleted(object state) {
+      if ((this.DeleteAlgorithmCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.DeleteAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void DeleteAlgorithmAsync(long algorithmId) {
+      this.DeleteAlgorithmAsync(algorithmId, null);
+    }
+
+    public void DeleteAlgorithmAsync(long algorithmId, object userState) {
+      if ((this.onBeginDeleteAlgorithmDelegate == null)) {
+        this.onBeginDeleteAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginDeleteAlgorithm);
+      }
+      if ((this.onEndDeleteAlgorithmDelegate == null)) {
+        this.onEndDeleteAlgorithmDelegate = new EndOperationDelegate(this.OnEndDeleteAlgorithm);
+      }
+      if ((this.onDeleteAlgorithmCompletedDelegate == null)) {
+        this.onDeleteAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnDeleteAlgorithmCompleted);
+      }
+      base.InvokeAsync(this.onBeginDeleteAlgorithmDelegate, new object[] {
+                        algorithmId}, this.onEndDeleteAlgorithmDelegate, this.onDeleteAlgorithmCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> GetPlatforms() {
+      return base.Channel.GetPlatforms();
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetPlatforms(System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetPlatforms(callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> EndGetPlatforms(System.IAsyncResult result) {
+      return base.Channel.EndGetPlatforms(result);
+    }
+
+    private System.IAsyncResult OnBeginGetPlatforms(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      return this.BeginGetPlatforms(callback, asyncState);
+    }
+
+    private object[] OnEndGetPlatforms(System.IAsyncResult result) {
+      HeuristicLab.Core.ItemCollection<HeuristicLab.Clients.OKB.Platform> retVal = this.EndGetPlatforms(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetPlatformsCompleted(object state) {
+      if ((this.GetPlatformsCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetPlatformsCompleted(this, new GetPlatformsCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetPlatformsAsync() {
+      this.GetPlatformsAsync(null);
+    }
+
+    public void GetPlatformsAsync(object userState) {
+      if ((this.onBeginGetPlatformsDelegate == null)) {
+        this.onBeginGetPlatformsDelegate = new BeginOperationDelegate(this.OnBeginGetPlatforms);
+      }
+      if ((this.onEndGetPlatformsDelegate == null)) {
+        this.onEndGetPlatformsDelegate = new EndOperationDelegate(this.OnEndGetPlatforms);
+      }
+      if ((this.onGetPlatformsCompletedDelegate == null)) {
+        this.onGetPlatformsCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetPlatformsCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetPlatformsDelegate, null, this.onEndGetPlatformsDelegate, this.onGetPlatformsCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Clients.OKB.Algorithm GetCompleteAlgorithm(int id) {
+      return base.Channel.GetCompleteAlgorithm(id);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetCompleteAlgorithm(int id, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetCompleteAlgorithm(id, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Clients.OKB.Algorithm EndGetCompleteAlgorithm(System.IAsyncResult result) {
+      return base.Channel.EndGetCompleteAlgorithm(result);
+    }
+
+    private System.IAsyncResult OnBeginGetCompleteAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      int id = ((int)(inValues[0]));
+      return this.BeginGetCompleteAlgorithm(id, callback, asyncState);
+    }
+
+    private object[] OnEndGetCompleteAlgorithm(System.IAsyncResult result) {
+      HeuristicLab.Clients.OKB.Algorithm retVal = this.EndGetCompleteAlgorithm(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetCompleteAlgorithmCompleted(object state) {
+      if ((this.GetCompleteAlgorithmCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetCompleteAlgorithmCompleted(this, new GetCompleteAlgorithmCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetCompleteAlgorithmAsync(int id) {
+      this.GetCompleteAlgorithmAsync(id, null);
+    }
+
+    public void GetCompleteAlgorithmAsync(int id, object userState) {
+      if ((this.onBeginGetCompleteAlgorithmDelegate == null)) {
+        this.onBeginGetCompleteAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginGetCompleteAlgorithm);
+      }
+      if ((this.onEndGetCompleteAlgorithmDelegate == null)) {
+        this.onEndGetCompleteAlgorithmDelegate = new EndOperationDelegate(this.OnEndGetCompleteAlgorithm);
+      }
+      if ((this.onGetCompleteAlgorithmCompletedDelegate == null)) {
+        this.onGetCompleteAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetCompleteAlgorithmCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetCompleteAlgorithmDelegate, new object[] {
+                        id}, this.onEndGetCompleteAlgorithmDelegate, this.onGetCompleteAlgorithmCompletedDelegate, userState);
+    }
+
+    public HeuristicLab.Clients.OKB.Problem GetCompleteProblem(int id) {
+      return base.Channel.GetCompleteProblem(id);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginGetCompleteProblem(int id, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginGetCompleteProblem(id, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public HeuristicLab.Clients.OKB.Problem EndGetCompleteProblem(System.IAsyncResult result) {
+      return base.Channel.EndGetCompleteProblem(result);
+    }
+
+    private System.IAsyncResult OnBeginGetCompleteProblem(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      int id = ((int)(inValues[0]));
+      return this.BeginGetCompleteProblem(id, callback, asyncState);
+    }
+
+    private object[] OnEndGetCompleteProblem(System.IAsyncResult result) {
+      HeuristicLab.Clients.OKB.Problem retVal = this.EndGetCompleteProblem(result);
+      return new object[] {
+                    retVal};
+    }
+
+    private void OnGetCompleteProblemCompleted(object state) {
+      if ((this.GetCompleteProblemCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.GetCompleteProblemCompleted(this, new GetCompleteProblemCompletedEventArgs(e.Results, e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void GetCompleteProblemAsync(int id) {
+      this.GetCompleteProblemAsync(id, null);
+    }
+
+    public void GetCompleteProblemAsync(int id, object userState) {
+      if ((this.onBeginGetCompleteProblemDelegate == null)) {
+        this.onBeginGetCompleteProblemDelegate = new BeginOperationDelegate(this.OnBeginGetCompleteProblem);
+      }
+      if ((this.onEndGetCompleteProblemDelegate == null)) {
+        this.onEndGetCompleteProblemDelegate = new EndOperationDelegate(this.OnEndGetCompleteProblem);
+      }
+      if ((this.onGetCompleteProblemCompletedDelegate == null)) {
+        this.onGetCompleteProblemCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnGetCompleteProblemCompleted);
+      }
+      base.InvokeAsync(this.onBeginGetCompleteProblemDelegate, new object[] {
+                        id}, this.onEndGetCompleteProblemDelegate, this.onGetCompleteProblemCompletedDelegate, userState);
+    }
+
+    public void UpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm) {
+      base.Channel.UpdateCompleteAlgorithm(algorithm);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginUpdateCompleteAlgorithm(HeuristicLab.Clients.OKB.Algorithm algorithm, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginUpdateCompleteAlgorithm(algorithm, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndUpdateCompleteAlgorithm(System.IAsyncResult result) {
+      base.Channel.EndUpdateCompleteAlgorithm(result);
+    }
+
+    private System.IAsyncResult OnBeginUpdateCompleteAlgorithm(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      HeuristicLab.Clients.OKB.Algorithm algorithm = ((HeuristicLab.Clients.OKB.Algorithm)(inValues[0]));
+      return this.BeginUpdateCompleteAlgorithm(algorithm, callback, asyncState);
+    }
+
+    private object[] OnEndUpdateCompleteAlgorithm(System.IAsyncResult result) {
+      this.EndUpdateCompleteAlgorithm(result);
+      return null;
+    }
+
+    private void OnUpdateCompleteAlgorithmCompleted(object state) {
+      if ((this.UpdateCompleteAlgorithmCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.UpdateCompleteAlgorithmCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void UpdateCompleteAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm) {
+      this.UpdateCompleteAlgorithmAsync(algorithm, null);
+    }
+
+    public void UpdateCompleteAlgorithmAsync(HeuristicLab.Clients.OKB.Algorithm algorithm, object userState) {
+      if ((this.onBeginUpdateCompleteAlgorithmDelegate == null)) {
+        this.onBeginUpdateCompleteAlgorithmDelegate = new BeginOperationDelegate(this.OnBeginUpdateCompleteAlgorithm);
+      }
+      if ((this.onEndUpdateCompleteAlgorithmDelegate == null)) {
+        this.onEndUpdateCompleteAlgorithmDelegate = new EndOperationDelegate(this.OnEndUpdateCompleteAlgorithm);
+      }
+      if ((this.onUpdateCompleteAlgorithmCompletedDelegate == null)) {
+        this.onUpdateCompleteAlgorithmCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnUpdateCompleteAlgorithmCompleted);
+      }
+      base.InvokeAsync(this.onBeginUpdateCompleteAlgorithmDelegate, new object[] {
+                        algorithm}, this.onEndUpdateCompleteAlgorithmDelegate, this.onUpdateCompleteAlgorithmCompletedDelegate, userState);
+    }
+
+    public void UpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem) {
+      base.Channel.UpdateCompleteProblem(problem);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public System.IAsyncResult BeginUpdateCompleteProblem(HeuristicLab.Clients.OKB.Problem problem, System.AsyncCallback callback, object asyncState) {
+      return base.Channel.BeginUpdateCompleteProblem(problem, callback, asyncState);
+    }
+
+    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+    public void EndUpdateCompleteProblem(System.IAsyncResult result) {
+      base.Channel.EndUpdateCompleteProblem(result);
+    }
+
+    private System.IAsyncResult OnBeginUpdateCompleteProblem(object[] inValues, System.AsyncCallback callback, object asyncState) {
+      HeuristicLab.Clients.OKB.Problem problem = ((HeuristicLab.Clients.OKB.Problem)(inValues[0]));
+      return this.BeginUpdateCompleteProblem(problem, callback, asyncState);
+    }
+
+    private object[] OnEndUpdateCompleteProblem(System.IAsyncResult result) {
+      this.EndUpdateCompleteProblem(result);
+      return null;
+    }
+
+    private void OnUpdateCompleteProblemCompleted(object state) {
+      if ((this.UpdateCompleteProblemCompleted != null)) {
+        InvokeAsyncCompletedEventArgs e = ((InvokeAsyncCompletedEventArgs)(state));
+        this.UpdateCompleteProblemCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(e.Error, e.Cancelled, e.UserState));
+      }
+    }
+
+    public void UpdateCompleteProblemAsync(HeuristicLab.Clients.OKB.Problem problem) {
+      this.UpdateCompleteProblemAsync(problem, null);
+    }
+
+    public void UpdateCompleteProblemAsync(HeuristicLab.Clients.OKB.Problem problem, object userState) {
+      if ((this.onBeginUpdateCompleteProblemDelegate == null)) {
+        this.onBeginUpdateCompleteProblemDelegate = new BeginOperationDelegate(this.OnBeginUpdateCompleteProblem);
+      }
+      if ((this.onEndUpdateCompleteProblemDelegate == null)) {
+        this.onEndUpdateCompleteProblemDelegate = new EndOperationDelegate(this.OnEndUpdateCompleteProblem);
+      }
+      if ((this.onUpdateCompleteProblemCompletedDelegate == null)) {
+        this.onUpdateCompleteProblemCompletedDelegate = new System.Threading.SendOrPostCallback(this.OnUpdateCompleteProblemCompleted);
+      }
+      base.InvokeAsync(this.onBeginUpdateCompleteProblemDelegate, new object[] {
+                        problem}, this.onEndUpdateCompleteProblemDelegate, this.onUpdateCompleteProblemCompletedDelegate, userState);
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AdministratorView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AdministratorView.Designer.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AdministratorView.Designer.cs	(revision 4426)
@@ -0,0 +1,154 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB {
+  partial class AdministratorView {
+    /// <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) {
+        if (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.tabControl = new System.Windows.Forms.TabControl();
+      this.algorithmClassesTabPage = new System.Windows.Forms.TabPage();
+      this.algorithmClassCollectionView = new HeuristicLab.Clients.OKB.AlgorithmClassCollectionView();
+      this.refreshButton = new System.Windows.Forms.Button();
+      this.algorithmsTabPage = new System.Windows.Forms.TabPage();
+      this.algorithmCollectionView = new HeuristicLab.Clients.OKB.AlgorithmCollectionView();
+      this.tabControl.SuspendLayout();
+      this.algorithmClassesTabPage.SuspendLayout();
+      this.algorithmsTabPage.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // 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.algorithmClassesTabPage);
+      this.tabControl.Controls.Add(this.algorithmsTabPage);
+      this.tabControl.Location = new System.Drawing.Point(0, 29);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(727, 406);
+      this.tabControl.TabIndex = 2;
+      // 
+      // algorithmClassesTabPage
+      // 
+      this.algorithmClassesTabPage.Controls.Add(this.algorithmClassCollectionView);
+      this.algorithmClassesTabPage.Location = new System.Drawing.Point(4, 22);
+      this.algorithmClassesTabPage.Name = "algorithmClassesTabPage";
+      this.algorithmClassesTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.algorithmClassesTabPage.Size = new System.Drawing.Size(719, 380);
+      this.algorithmClassesTabPage.TabIndex = 0;
+      this.algorithmClassesTabPage.Text = "Algorithm Classes";
+      this.algorithmClassesTabPage.UseVisualStyleBackColor = true;
+      // 
+      // algorithmClassCollectionView
+      // 
+      this.algorithmClassCollectionView.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.algorithmClassCollectionView.Caption = "AlgorithmClassCollection View";
+      this.algorithmClassCollectionView.Content = null;
+      this.algorithmClassCollectionView.Location = new System.Drawing.Point(6, 6);
+      this.algorithmClassCollectionView.Name = "algorithmClassCollectionView";
+      this.algorithmClassCollectionView.ReadOnly = false;
+      this.algorithmClassCollectionView.Size = new System.Drawing.Size(707, 368);
+      this.algorithmClassCollectionView.TabIndex = 3;
+      // 
+      // refreshButton
+      // 
+      this.refreshButton.Location = new System.Drawing.Point(0, 0);
+      this.refreshButton.Name = "refreshButton";
+      this.refreshButton.Size = new System.Drawing.Size(75, 23);
+      this.refreshButton.TabIndex = 2;
+      this.refreshButton.Text = "&Refresh";
+      this.refreshButton.UseVisualStyleBackColor = true;
+      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
+      // 
+      // algorithmsTabPage
+      // 
+      this.algorithmsTabPage.Controls.Add(this.algorithmCollectionView);
+      this.algorithmsTabPage.Location = new System.Drawing.Point(4, 22);
+      this.algorithmsTabPage.Name = "algorithmsTabPage";
+      this.algorithmsTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.algorithmsTabPage.Size = new System.Drawing.Size(719, 380);
+      this.algorithmsTabPage.TabIndex = 1;
+      this.algorithmsTabPage.Text = "Algorithms";
+      this.algorithmsTabPage.UseVisualStyleBackColor = true;
+      // 
+      // algorithmCollectionView
+      // 
+      this.algorithmCollectionView.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.algorithmCollectionView.Caption = "AlgorithmCollection View";
+      this.algorithmCollectionView.Content = null;
+      this.algorithmCollectionView.Location = new System.Drawing.Point(6, 6);
+      this.algorithmCollectionView.Name = "algorithmCollectionView";
+      this.algorithmCollectionView.ReadOnly = false;
+      this.algorithmCollectionView.Size = new System.Drawing.Size(707, 368);
+      this.algorithmCollectionView.TabIndex = 2;
+      // 
+      // AdministratorView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.tabControl);
+      this.Controls.Add(this.refreshButton);
+      this.Name = "AdministratorView";
+      this.Size = new System.Drawing.Size(727, 435);
+      this.tabControl.ResumeLayout(false);
+      this.algorithmClassesTabPage.ResumeLayout(false);
+      this.algorithmsTabPage.ResumeLayout(false);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.TabPage algorithmClassesTabPage;
+    private System.Windows.Forms.TabPage algorithmsTabPage;
+    private System.Windows.Forms.Button refreshButton;
+    private AlgorithmClassCollectionView algorithmClassCollectionView;
+    private AlgorithmCollectionView algorithmCollectionView;
+
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AdministratorView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AdministratorView.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AdministratorView.cs	(revision 4426)
@@ -0,0 +1,71 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.OKB {
+  [View("OKB Administrator")]
+  [Content(typeof(Administrator), true)]
+  public sealed partial class AdministratorView : AsynchronousContentView {
+    public new Administrator Content {
+      get { return (Administrator)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public AdministratorView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      // ...
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      // ...
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        algorithmClassCollectionView.Content = null;
+        algorithmCollectionView.Content = null;
+      } else {
+        algorithmClassCollectionView.Content = Content.AlgorithmClasses;
+        algorithmCollectionView.Content = Content.Algorithms;
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      refreshButton.Enabled = Content != null;
+      algorithmClassCollectionView.Enabled = Content != null;
+      algorithmCollectionView.Enabled = Content != null;
+    }
+
+    private void refreshButton_Click(object sender, EventArgs e) {
+      Content.Refresh();
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmClassCollectionView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmClassCollectionView.Designer.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmClassCollectionView.Designer.cs	(revision 4426)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB {
+  partial class AlgorithmClassCollectionView {
+    /// <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) {
+        if (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/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmClassCollectionView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmClassCollectionView.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmClassCollectionView.cs	(revision 4426)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.OKB {
+  [View("AlgorithmClassCollection View")]
+  [Content(typeof(IItemCollection<AlgorithmClass>), true)]
+  public partial class AlgorithmClassCollectionView : ItemCollectionView<AlgorithmClass> {
+    public AlgorithmClassCollectionView() {
+      InitializeComponent();
+      itemsGroupBox.Text = "Algorithm Classes";
+    }
+
+    protected override AlgorithmClass CreateItem() {
+      return new AlgorithmClass();
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmCollectionView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmCollectionView.Designer.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmCollectionView.Designer.cs	(revision 4426)
@@ -0,0 +1,53 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB {
+  partial class AlgorithmCollectionView {
+    /// <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) {
+        if (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/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmCollectionView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmCollectionView.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmCollectionView.cs	(revision 4426)
@@ -0,0 +1,40 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Windows.Forms;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+
+namespace HeuristicLab.Clients.OKB {
+  [View("AlgorithmCollection View")]
+  [Content(typeof(IItemCollection<Algorithm>), true)]
+  public partial class AlgorithmCollectionView : ItemCollectionView<Algorithm> {
+    public AlgorithmCollectionView() {
+      InitializeComponent();
+      itemsGroupBox.Text = "Algorithms";
+    }
+
+    protected override Algorithm CreateItem() {
+      return new Algorithm();
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NamedOKBItemView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NamedOKBItemView.Designer.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NamedOKBItemView.Designer.cs	(revision 4426)
@@ -0,0 +1,124 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB {
+  partial class NamedOKBItemView {
+    /// <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) {
+        if (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.components = new System.ComponentModel.Container();
+      this.nameLabel = new System.Windows.Forms.Label();
+      this.nameTextBox = new System.Windows.Forms.TextBox();
+      this.descriptionLabel = new System.Windows.Forms.Label();
+      this.descriptionTextBox = new System.Windows.Forms.TextBox();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
+      this.SuspendLayout();
+      // 
+      // nameLabel
+      // 
+      this.nameLabel.AutoSize = true;
+      this.nameLabel.Location = new System.Drawing.Point(3, 32);
+      this.nameLabel.Name = "nameLabel";
+      this.nameLabel.Size = new System.Drawing.Size(38, 13);
+      this.nameLabel.TabIndex = 1;
+      this.nameLabel.Text = "&Name:";
+      // 
+      // nameTextBox
+      // 
+      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.nameTextBox.Location = new System.Drawing.Point(72, 29);
+      this.nameTextBox.Name = "nameTextBox";
+      this.nameTextBox.Size = new System.Drawing.Size(279, 20);
+      this.nameTextBox.TabIndex = 2;
+      this.nameTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.nameTextBox_KeyDown);
+      this.nameTextBox.Validated += new System.EventHandler(this.nameTextBox_Validated);
+      // 
+      // descriptionLabel
+      // 
+      this.descriptionLabel.AutoSize = true;
+      this.descriptionLabel.Location = new System.Drawing.Point(3, 58);
+      this.descriptionLabel.Name = "descriptionLabel";
+      this.descriptionLabel.Size = new System.Drawing.Size(63, 13);
+      this.descriptionLabel.TabIndex = 3;
+      this.descriptionLabel.Text = "&Description:";
+      // 
+      // descriptionTextBox
+      // 
+      this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.descriptionTextBox.Location = new System.Drawing.Point(72, 55);
+      this.descriptionTextBox.Name = "descriptionTextBox";
+      this.descriptionTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+      this.descriptionTextBox.Size = new System.Drawing.Size(279, 20);
+      this.descriptionTextBox.TabIndex = 4;
+      this.descriptionTextBox.DoubleClick += new System.EventHandler(this.descriptionTextBox_DoubleClick);
+      this.descriptionTextBox.Validated += new System.EventHandler(this.descriptionTextBox_Validated);
+      // 
+      // NamedOKBItemView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.descriptionTextBox);
+      this.Controls.Add(this.descriptionLabel);
+      this.Controls.Add(this.nameLabel);
+      this.Controls.Add(this.nameTextBox);
+      this.Name = "NamedOKBItemView";
+      this.Size = new System.Drawing.Size(351, 80);
+      this.Controls.SetChildIndex(this.storeButton, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      this.Controls.SetChildIndex(this.descriptionLabel, 0);
+      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    protected System.Windows.Forms.TextBox nameTextBox;
+    protected System.Windows.Forms.Label nameLabel;
+    protected System.Windows.Forms.Label descriptionLabel;
+    protected System.Windows.Forms.TextBox descriptionTextBox;
+    protected System.Windows.Forms.ToolTip toolTip;
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NamedOKBItemView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NamedOKBItemView.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NamedOKBItemView.cs	(revision 4426)
@@ -0,0 +1,107 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.OKB {
+  [View("NamedOKBItem View")]
+  [Content(typeof(INamedOKBItem), true)]
+  public partial class NamedOKBItemView : OKBItemView {
+    public new INamedOKBItem Content {
+      get { return (INamedOKBItem)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public NamedOKBItemView() {
+      InitializeComponent();
+    }
+
+    protected override void OnContentChanged() {
+      base.OnContentChanged();
+      if (Content == null) {
+        nameTextBox.Text = string.Empty;
+        descriptionTextBox.Text = string.Empty;
+        toolTip.SetToolTip(descriptionTextBox, string.Empty);
+        if (ViewAttribute.HasViewAttribute(this.GetType()))
+          this.Caption = ViewAttribute.GetViewName(this.GetType());
+        else
+          this.Caption = "NamedEntity View";
+      } else {
+        nameTextBox.Text = Content.Name;
+        descriptionTextBox.Text = Content.Description;
+        toolTip.SetToolTip(descriptionTextBox, Content.Description);
+        Caption = Content.Name;
+      }
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      if (Content == null) {
+        nameTextBox.Enabled = false;
+        descriptionTextBox.Enabled = false;
+      } else {
+        nameTextBox.Enabled = true;
+        nameTextBox.ReadOnly = ReadOnly;
+        descriptionTextBox.Enabled = true;
+        descriptionTextBox.ReadOnly = ReadOnly;
+      }
+    }
+
+    protected override void OnContentPropertyChanged(string propertyName) {
+      switch (propertyName) {
+        case "Name":
+          nameTextBox.Text = Content.Name;
+          Caption = Content.Name;
+          break;
+        case "Description":
+          descriptionTextBox.Text = Content.Description;
+          toolTip.SetToolTip(descriptionTextBox, Content.Description);
+          break;
+      }
+    }
+
+    protected virtual void nameTextBox_KeyDown(object sender, KeyEventArgs e) {
+      if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Return))
+        nameLabel.Focus();  // set focus on label to validate data
+      if (e.KeyCode == Keys.Escape) {
+        nameTextBox.Text = Content.Name;
+        nameLabel.Focus();  // set focus on label to validate data
+      }
+    }
+    protected virtual void nameTextBox_Validated(object sender, EventArgs e) {
+      Content.Name = nameTextBox.Text;
+    }
+    protected virtual void descriptionTextBox_Validated(object sender, EventArgs e) {
+      Content.Description = descriptionTextBox.Text;
+    }
+
+    protected void descriptionTextBox_DoubleClick(object sender, EventArgs e) {
+      using (TextDialog dialog = new TextDialog("Description of " + Content.Name, descriptionTextBox.Text, ReadOnly)) {
+        if (dialog.ShowDialog(this) == DialogResult.OK)
+          Content.Description = dialog.Content;
+      }
+    }
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/OKBItemView.Designer.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/OKBItemView.Designer.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/OKBItemView.Designer.cs	(revision 4426)
@@ -0,0 +1,78 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+namespace HeuristicLab.Clients.OKB {
+  partial class OKBItemView {
+    /// <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) {
+        if (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.storeButton = new System.Windows.Forms.Button();
+      this.SuspendLayout();
+      // 
+      // storeButton
+      // 
+      this.storeButton.Location = new System.Drawing.Point(0, 0);
+      this.storeButton.Name = "storeButton";
+      this.storeButton.Size = new System.Drawing.Size(75, 23);
+      this.storeButton.TabIndex = 0;
+      this.storeButton.Text = "&Store";
+      this.storeButton.UseVisualStyleBackColor = true;
+      this.storeButton.Click += new System.EventHandler(this.storeButton_Click);
+      // 
+      // OKBItemView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.storeButton);
+      this.Name = "OKBItemView";
+      this.Size = new System.Drawing.Size(315, 292);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    protected System.Windows.Forms.Button storeButton;
+
+
+
+  }
+}
Index: branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/OKBItemView.cs
===================================================================
--- branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/OKBItemView.cs	(revision 4426)
+++ branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/OKBItemView.cs	(revision 4426)
@@ -0,0 +1,70 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.ComponentModel;
+using System.Windows.Forms;
+using HeuristicLab.Core.Views;
+using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
+
+namespace HeuristicLab.Clients.OKB {
+  [View("OKBItem View")]
+  [Content(typeof(OKBItem), true)]
+  [Content(typeof(IOKBItem), false)]
+  public partial class OKBItemView : ItemView {
+    public new IOKBItem Content {
+      get { return (IOKBItem)base.Content; }
+      set { base.Content = value; }
+    }
+
+    public OKBItemView() {
+      InitializeComponent();
+    }
+
+    protected override void DeregisterContentEvents() {
+      Content.PropertyChanged -= new PropertyChangedEventHandler(Content_PropertyChanged);
+      base.DeregisterContentEvents();
+    }
+    protected override void RegisterContentEvents() {
+      base.RegisterContentEvents();
+      Content.PropertyChanged += new PropertyChangedEventHandler(Content_PropertyChanged);
+    }
+
+    protected override void SetEnabledStateOfControls() {
+      base.SetEnabledStateOfControls();
+      storeButton.Enabled = Content != null;
+    }
+
+    private void Content_PropertyChanged(object sender, PropertyChangedEventArgs e) {
+      if (InvokeRequired)
+        Invoke(new PropertyChangedEventHandler(Content_PropertyChanged), sender, e);
+      else {
+        OnContentPropertyChanged(e.PropertyName);
+      }
+    }
+    protected virtual void OnContentPropertyChanged(string propertyName) { }
+
+    protected virtual void storeButton_Click(object sender, EventArgs e) {
+      Content.Store();
+    }
+  }
+}
