Index: /branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.Designer.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.Designer.cs	(revision 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.Designer.cs	(revision 4421)
@@ -49,6 +49,4 @@
       this.algorithmsTabPage = new System.Windows.Forms.TabPage();
       this.refreshAlgorithmsButton = new System.Windows.Forms.Button();
-      this.algorithmCollectionView = new HeuristicLab.Clients.OKB.AlgorithmCollectionView();
-      this.algorithmClassCollectionView = new HeuristicLab.Clients.OKB.AlgorithmClassCollectionView();
       this.refreshAlgorithmClassesButton = new System.Windows.Forms.Button();
       this.tabControl.SuspendLayout();
@@ -73,5 +71,4 @@
       // 
       this.algorithmClassesTabPage.Controls.Add(this.refreshAlgorithmClassesButton);
-      this.algorithmClassesTabPage.Controls.Add(this.algorithmClassCollectionView);
       this.algorithmClassesTabPage.Location = new System.Drawing.Point(4, 22);
       this.algorithmClassesTabPage.Name = "algorithmClassesTabPage";
@@ -85,5 +82,4 @@
       // 
       this.algorithmsTabPage.Controls.Add(this.refreshAlgorithmsButton);
-      this.algorithmsTabPage.Controls.Add(this.algorithmCollectionView);
       this.algorithmsTabPage.Location = new System.Drawing.Point(4, 22);
       this.algorithmsTabPage.Name = "algorithmsTabPage";
@@ -104,30 +100,4 @@
       this.refreshAlgorithmsButton.UseVisualStyleBackColor = true;
       this.refreshAlgorithmsButton.Click += new System.EventHandler(this.refreshAlgorithmsButton_Click);
-      // 
-      // 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 = 0;
-      // 
-      // 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 = 0;
       // 
       // refreshAlgorithmClassesButton
@@ -162,7 +132,5 @@
     private System.Windows.Forms.TabPage algorithmsTabPage;
     private System.Windows.Forms.Button refreshAlgorithmsButton;
-    private AlgorithmCollectionView algorithmCollectionView;
     private System.Windows.Forms.Button refreshAlgorithmClassesButton;
-    private AlgorithmClassCollectionView algorithmClassCollectionView;
 
   }
Index: /branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.cs	(revision 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/AdministrationView.cs	(revision 4421)
@@ -23,5 +23,4 @@
 using System.Windows.Forms;
 using HeuristicLab.Clients.Common;
-using HeuristicLab.Clients.OKB.AdminService;
 using HeuristicLab.MainForm;
 using HeuristicLab.PluginInfrastructure;
@@ -37,5 +36,4 @@
       using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
         try {
-          algorithmClassCollectionView.Content = new EntityCollection<AlgorithmClass>(adminService.GetAlgorithmClasses());
         }
         catch (Exception ex) {
@@ -48,5 +46,4 @@
       using (AdminServiceClient adminService = ClientFactory.CreateClient<AdminServiceClient, IAdminService>()) {
         try {
-          algorithmCollectionView.Content = new EntityCollection<Algorithm>(adminService.GetAlgorithms());
         }
         catch (Exception ex) {
Index: anches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.Designer.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.Designer.cs	(revision 4420)
+++ 	(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: anches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmClassCollectionView.cs	(revision 4420)
+++ 	(revision )
@@ -1,39 +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.Clients.OKB.AdminService;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("AlgorithmClassCollection View")]
-  [Content(typeof(IEntityCollection<AlgorithmClass>), false)]
-  public partial class AlgorithmClassCollectionView : EntityCollectionView<AlgorithmClass> {
-    public AlgorithmClassCollectionView() {
-      InitializeComponent();
-      entitiesGroupBox.Text = "Algorithm Classes";
-    }
-
-    protected override AlgorithmClass CreateEntity() {
-      return new AlgorithmClass();
-    }
-  }
-}
Index: anches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.Designer.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.Designer.cs	(revision 4420)
+++ 	(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: anches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/AlgorithmCollectionView.cs	(revision 4420)
+++ 	(revision )
@@ -1,39 +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.Clients.OKB.AdminService;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("AlgorithmCollection View")]
-  [Content(typeof(IEntityCollection<Algorithm>), false)]
-  public partial class AlgorithmCollectionView : EntityCollectionView<Algorithm> {
-    public AlgorithmCollectionView() {
-      InitializeComponent();
-      entitiesGroupBox.Text = "Algorithms";
-    }
-
-    protected override Algorithm CreateEntity() {
-      return new Algorithm();
-    }
-  }
-}
Index: anches/OKB/HeuristicLab.Clients.OKB-3.3/EntityCollection.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/EntityCollection.cs	(revision 4420)
+++ 	(revision )
@@ -1,56 +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.Collections.Generic;
-using System.Drawing;
-using HeuristicLab.Collections;
-
-namespace HeuristicLab.Clients.OKB.AdminService {
-  public class EntityCollection<T> : ObservableCollection<T>, IEntityCollection<T> where T : class, IEntity {
-    public virtual Image EntityImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
-    }
-
-    public EntityCollection() : base() { }
-    public EntityCollection(int capacity) : base(capacity) { }
-    public EntityCollection(IEnumerable<T> collection) : base(collection) { }
-
-    public new ReadOnlyEntityCollection<T> AsReadOnly() {
-      return new ReadOnlyEntityCollection<T>(this);
-    }
-
-    public override string ToString() {
-      return GetType().Name;
-    }
-
-    public event EventHandler EntityImageChanged;
-    protected virtual void OnEntityImageChanged() {
-      EventHandler handler = EntityImageChanged;
-      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: anches/OKB/HeuristicLab.Clients.OKB-3.3/EntityCollectionView.Designer.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/EntityCollectionView.Designer.cs	(revision 4420)
+++ 	(revision )
@@ -1,262 +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;
-
-namespace HeuristicLab.Clients.OKB {
-  partial class EntityCollectionView<T> {
-    /// <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 (typeSelectorDialog != null) typeSelectorDialog.Dispose();
-        foreach (ListViewItem item in entitiesListView.Items) {
-          ((T)item.Tag).EntityImageChanged -= new EventHandler(Entity_EntityImageChanged);
-          ((T)item.Tag).ToStringChanged -= new EventHandler(Entity_ToStringChanged);
-        }
-        if (components != null) components.Dispose();
-      }
-      base.Dispose(disposing);
-    }
-
-    #region Windows Form 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.splitContainer = new System.Windows.Forms.SplitContainer();
-      this.entitiesListView = new System.Windows.Forms.ListView();
-      this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
-      this.imageList = new System.Windows.Forms.ImageList(this.components);
-      this.sortDescendingButton = new System.Windows.Forms.Button();
-      this.sortAscendingButton = new System.Windows.Forms.Button();
-      this.removeButton = new System.Windows.Forms.Button();
-      this.addButton = new System.Windows.Forms.Button();
-      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
-      this.viewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
-      this.entitiesGroupBox = new System.Windows.Forms.GroupBox();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.showDetailsCheckBox = new System.Windows.Forms.CheckBox();
-      this.splitContainer.Panel1.SuspendLayout();
-      this.splitContainer.Panel2.SuspendLayout();
-      this.splitContainer.SuspendLayout();
-      this.detailsGroupBox.SuspendLayout();
-      this.entitiesGroupBox.SuspendLayout();
-      this.SuspendLayout();
-      // 
-      // splitContainer
-      // 
-      this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.splitContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
-      this.splitContainer.Location = new System.Drawing.Point(3, 16);
-      this.splitContainer.Name = "splitContainer";
-      // 
-      // splitContainer.Panel1
-      // 
-      this.splitContainer.Panel1.Controls.Add(this.showDetailsCheckBox);
-      this.splitContainer.Panel1.Controls.Add(this.entitiesListView);
-      this.splitContainer.Panel1.Controls.Add(this.sortDescendingButton);
-      this.splitContainer.Panel1.Controls.Add(this.sortAscendingButton);
-      this.splitContainer.Panel1.Controls.Add(this.removeButton);
-      this.splitContainer.Panel1.Controls.Add(this.addButton);
-      this.splitContainer.Panel1MinSize = 100;
-      // 
-      // splitContainer.Panel2
-      // 
-      this.splitContainer.Panel2.Controls.Add(this.detailsGroupBox);
-      this.splitContainer.Size = new System.Drawing.Size(526, 364);
-      this.splitContainer.SplitterDistance = 250;
-      this.splitContainer.TabIndex = 0;
-      // 
-      // entitiessListView
-      // 
-      this.entitiesListView.AllowDrop = true;
-      this.entitiesListView.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.entitiesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
-            this.columnHeader1});
-      this.entitiesListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
-      this.entitiesListView.HideSelection = false;
-      this.entitiesListView.Location = new System.Drawing.Point(3, 33);
-      this.entitiesListView.Name = "entitiessListView";
-      this.entitiesListView.ShowItemToolTips = true;
-      this.entitiesListView.Size = new System.Drawing.Size(244, 327);
-      this.entitiesListView.SmallImageList = this.imageList;
-      this.entitiesListView.TabIndex = 5;
-      this.entitiesListView.UseCompatibleStateImageBehavior = false;
-      this.entitiesListView.View = System.Windows.Forms.View.Details;
-      this.entitiesListView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.entitiesListView_ItemDrag);
-      this.entitiesListView.SelectedIndexChanged += new System.EventHandler(this.entitiesListView_SelectedIndexChanged);
-      this.entitiesListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.entitiesListView_DragDrop);
-      this.entitiesListView.DragEnter += new System.Windows.Forms.DragEventHandler(this.entitiesListView_DragEnterOver);
-      this.entitiesListView.DragOver += new System.Windows.Forms.DragEventHandler(this.entitiesListView_DragEnterOver);
-      this.entitiesListView.DoubleClick += new System.EventHandler(this.entitiesListView_DoubleClick);
-      this.entitiesListView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.entitiesListView_KeyDown);
-      // 
-      // imageList
-      // 
-      this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
-      this.imageList.ImageSize = new System.Drawing.Size(16, 16);
-      this.imageList.TransparentColor = System.Drawing.Color.Transparent;
-      // 
-      // sortDescendingButton
-      // 
-      this.sortDescendingButton.Enabled = false;
-      this.sortDescendingButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.SortUp;
-      this.sortDescendingButton.Location = new System.Drawing.Point(33, 3);
-      this.sortDescendingButton.Name = "sortDescendingButton";
-      this.sortDescendingButton.Size = new System.Drawing.Size(24, 24);
-      this.sortDescendingButton.TabIndex = 1;
-      this.toolTip.SetToolTip(this.sortDescendingButton, "Sort Descending");
-      this.sortDescendingButton.UseVisualStyleBackColor = true;
-      this.sortDescendingButton.Click += new System.EventHandler(this.sortDescendingButton_Click);
-      // 
-      // sortAscendingButton
-      // 
-      this.sortAscendingButton.Enabled = false;
-      this.sortAscendingButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Sort;
-      this.sortAscendingButton.Location = new System.Drawing.Point(63, 3);
-      this.sortAscendingButton.Name = "sortAscendingButton";
-      this.sortAscendingButton.Size = new System.Drawing.Size(24, 24);
-      this.sortAscendingButton.TabIndex = 2;
-      this.toolTip.SetToolTip(this.sortAscendingButton, "Sort Ascending");
-      this.sortAscendingButton.UseVisualStyleBackColor = true;
-      this.sortAscendingButton.Click += new System.EventHandler(this.sortAscendingButton_Click);
-      // 
-      // removeButton
-      // 
-      this.removeButton.Enabled = false;
-      this.removeButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Remove;
-      this.removeButton.Location = new System.Drawing.Point(93, 3);
-      this.removeButton.Name = "removeButton";
-      this.removeButton.Size = new System.Drawing.Size(24, 24);
-      this.removeButton.TabIndex = 3;
-      this.toolTip.SetToolTip(this.removeButton, "Remove");
-      this.removeButton.UseVisualStyleBackColor = true;
-      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
-      // 
-      // addButton
-      // 
-      this.addButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Add;
-      this.addButton.Location = new System.Drawing.Point(3, 3);
-      this.addButton.Name = "addButton";
-      this.addButton.Size = new System.Drawing.Size(24, 24);
-      this.addButton.TabIndex = 0;
-      this.toolTip.SetToolTip(this.addButton, "Add");
-      this.addButton.UseVisualStyleBackColor = true;
-      this.addButton.Click += new System.EventHandler(this.addButton_Click);
-      // 
-      // detailsGroupBox
-      // 
-      this.detailsGroupBox.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.detailsGroupBox.Controls.Add(this.viewHost);
-      this.detailsGroupBox.Location = new System.Drawing.Point(3, 27);
-      this.detailsGroupBox.Name = "detailsGroupBox";
-      this.detailsGroupBox.Size = new System.Drawing.Size(266, 335);
-      this.detailsGroupBox.TabIndex = 0;
-      this.detailsGroupBox.TabStop = false;
-      this.detailsGroupBox.Text = "Details";
-      // 
-      // viewHost
-      // 
-      this.viewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.viewHost.Caption = "View";
-      this.viewHost.Content = null;
-      this.viewHost.Location = new System.Drawing.Point(6, 19);
-      this.viewHost.Name = "viewHost";
-      this.viewHost.ReadOnly = false;
-      this.viewHost.Size = new System.Drawing.Size(254, 310);
-      this.viewHost.TabIndex = 0;
-      this.viewHost.ViewType = null;
-      // 
-      // entitiesGroupBox
-      // 
-      this.entitiesGroupBox.Controls.Add(this.splitContainer);
-      this.entitiesGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.entitiesGroupBox.Location = new System.Drawing.Point(0, 0);
-      this.entitiesGroupBox.Name = "entitiesGroupBox";
-      this.entitiesGroupBox.Size = new System.Drawing.Size(532, 383);
-      this.entitiesGroupBox.TabIndex = 0;
-      this.entitiesGroupBox.TabStop = false;
-      this.entitiesGroupBox.Text = "Entities";
-      // 
-      // showDetailsCheckBox
-      // 
-      this.showDetailsCheckBox.Appearance = System.Windows.Forms.Appearance.Button;
-      this.showDetailsCheckBox.Checked = true;
-      this.showDetailsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
-      this.showDetailsCheckBox.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Properties;
-      this.showDetailsCheckBox.Location = new System.Drawing.Point(123, 3);
-      this.showDetailsCheckBox.Name = "showDetailsCheckBox";
-      this.showDetailsCheckBox.Size = new System.Drawing.Size(24, 24);
-      this.showDetailsCheckBox.TabIndex = 4;
-      this.toolTip.SetToolTip(this.showDetailsCheckBox, "Show/Hide Details");
-      this.showDetailsCheckBox.UseVisualStyleBackColor = true;
-      this.showDetailsCheckBox.CheckedChanged += new System.EventHandler(this.showDetailsCheckBox_CheckedChanged);
-      // 
-      // EntityCollectionView
-      // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.Controls.Add(this.entitiesGroupBox);
-      this.Name = "EntityCollectionView";
-      this.Size = new System.Drawing.Size(532, 383);
-      this.splitContainer.Panel1.ResumeLayout(false);
-      this.splitContainer.Panel2.ResumeLayout(false);
-      this.splitContainer.ResumeLayout(false);
-      this.detailsGroupBox.ResumeLayout(false);
-      this.entitiesGroupBox.ResumeLayout(false);
-      this.ResumeLayout(false);
-
-    }
-
-    #endregion
-
-    protected System.Windows.Forms.SplitContainer splitContainer;
-    protected System.Windows.Forms.ColumnHeader columnHeader1;
-    protected GroupBox entitiesGroupBox;
-    protected ListView entitiesListView;
-    protected GroupBox detailsGroupBox;
-    protected Button addButton;
-    protected Button removeButton;
-    protected ToolTip toolTip;
-    protected ImageList imageList;
-    protected HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
-    protected Button sortAscendingButton;
-    protected Button sortDescendingButton;
-    protected CheckBox showDetailsCheckBox;
-  }
-}
Index: anches/OKB/HeuristicLab.Clients.OKB-3.3/EntityCollectionView.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/EntityCollectionView.cs	(revision 4420)
+++ 	(revision )
@@ -1,334 +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.Collections.Generic;
-using System.Linq;
-using System.Windows.Forms;
-using HeuristicLab.Clients.OKB.AdminService;
-using HeuristicLab.Collections;
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-using HeuristicLab.MainForm.WindowsForms;
-using HeuristicLab.PluginInfrastructure;
-
-namespace HeuristicLab.Clients.OKB {
-  [View("EntityCollection View")]
-  [Content(typeof(EntityCollection<>), true)]
-  [Content(typeof(IEntityCollection<>), false)]
-  public partial class EntityCollectionView<T> : EntityView where T : class, IEntity {
-    protected TypeSelectorDialog typeSelectorDialog;
-
-    public new IEntityCollection<T> Content {
-      get { return (IEntityCollection<T>)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public ListView EntitiesListView {
-      get { return entitiesListView; }
-    }
-
-    public EntityCollectionView() {
-      InitializeComponent();
-    }
-
-    protected override void DeregisterContentEvents() {
-      Content.ItemsAdded -= new CollectionItemsChangedEventHandler<T>(Content_ItemsAdded);
-      Content.ItemsRemoved -= new CollectionItemsChangedEventHandler<T>(Content_ItemsRemoved);
-      Content.CollectionReset -= new CollectionItemsChangedEventHandler<T>(Content_CollectionReset);
-      base.DeregisterContentEvents();
-    }
-    protected override void RegisterContentEvents() {
-      base.RegisterContentEvents();
-      Content.ItemsAdded += new CollectionItemsChangedEventHandler<T>(Content_ItemsAdded);
-      Content.ItemsRemoved += new CollectionItemsChangedEventHandler<T>(Content_ItemsRemoved);
-      Content.CollectionReset += new CollectionItemsChangedEventHandler<T>(Content_CollectionReset);
-    }
-
-    protected override void OnContentChanged() {
-      base.OnContentChanged();
-      while (entitiesListView.Items.Count > 0) RemoveListViewItem(entitiesListView.Items[0]);
-      viewHost.Content = null;
-      if (Content != null) {
-        Caption += " (" + Content.GetType().Name + ")";
-        foreach (T entity in Content)
-          AddListViewItem(CreateListViewItem(entity));
-        AdjustListViewColumnSizes();
-        SortItemsListView(SortOrder.Ascending);
-      }
-    }
-
-    protected override void SetEnabledStateOfControls() {
-      base.SetEnabledStateOfControls();
-      if (Content == null) {
-        addButton.Enabled = false;
-        sortAscendingButton.Enabled = false;
-        sortDescendingButton.Enabled = false;
-        removeButton.Enabled = false;
-        entitiesListView.Enabled = false;
-        detailsGroupBox.Enabled = false;
-      } else {
-        addButton.Enabled = !Content.IsReadOnly && !ReadOnly;
-        sortAscendingButton.Enabled = entitiesListView.Items.Count > 1;
-        sortDescendingButton.Enabled = entitiesListView.Items.Count > 1;
-        removeButton.Enabled = !Content.IsReadOnly && !ReadOnly && entitiesListView.SelectedItems.Count > 0;
-        entitiesListView.Enabled = true;
-        detailsGroupBox.Enabled = entitiesListView.SelectedItems.Count == 1;
-      }
-    }
-
-    protected virtual T CreateEntity() {
-      if (typeSelectorDialog == null) {
-        typeSelectorDialog = new TypeSelectorDialog();
-        typeSelectorDialog.Caption = "Select Entity";
-        typeSelectorDialog.TypeSelector.Caption = "Available Entities";
-        typeSelectorDialog.TypeSelector.Configure(typeof(T), false, true);
-      }
-
-      if (typeSelectorDialog.ShowDialog(this) == DialogResult.OK) {
-        try {
-          return (T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType();
-        }
-        catch (Exception ex) {
-          ErrorHandling.ShowErrorDialog(this, ex);
-        }
-      }
-      return null;
-    }
-    protected virtual ListViewItem CreateListViewItem(T entity) {
-      ListViewItem listViewItem = new ListViewItem();
-      listViewItem.Text = entity.ToString();
-//TODO      listViewItem.ToolTipText = entity.ItemName + ": " + entity.ItemDescription;
-      listViewItem.Tag = entity;
-      entitiesListView.SmallImageList.Images.Add(entity.EntityImage);
-      listViewItem.ImageIndex = entitiesListView.SmallImageList.Images.Count - 1;
-      return listViewItem;
-    }
-    protected virtual void AddListViewItem(ListViewItem listViewItem) {
-      entitiesListView.Items.Add(listViewItem);
-      ((T)listViewItem.Tag).EntityImageChanged += new EventHandler(Entity_EntityImageChanged);
-      ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Entity_ToStringChanged);
-      sortAscendingButton.Enabled = entitiesListView.Items.Count > 1;
-      sortDescendingButton.Enabled = entitiesListView.Items.Count > 1;
-    }
-    protected virtual void RemoveListViewItem(ListViewItem listViewItem) {
-      ((T)listViewItem.Tag).EntityImageChanged -= new EventHandler(Entity_EntityImageChanged);
-      ((T)listViewItem.Tag).ToStringChanged -= new EventHandler(Entity_ToStringChanged);
-      listViewItem.Remove();
-      foreach (ListViewItem other in entitiesListView.Items)
-        if (other.ImageIndex > listViewItem.ImageIndex) other.ImageIndex--;
-      entitiesListView.SmallImageList.Images.RemoveAt(listViewItem.ImageIndex);
-      sortAscendingButton.Enabled = entitiesListView.Items.Count > 1;
-      sortDescendingButton.Enabled = entitiesListView.Items.Count > 1;
-    }
-    protected virtual void UpdateListViewItemImage(ListViewItem listViewItem) {
-      int i = listViewItem.ImageIndex;
-      listViewItem.ImageList.Images[i] = ((T)listViewItem.Tag).EntityImage;
-      listViewItem.ImageIndex = -1;
-      listViewItem.ImageIndex = i;
-    }
-    protected virtual void UpdateListViewItemText(ListViewItem listViewItem) {
-      if (!listViewItem.Text.Equals(listViewItem.Tag.ToString()))
-        listViewItem.Text = listViewItem.Tag.ToString();
-    }
-    protected virtual IEnumerable<ListViewItem> GetListViewItemsForEntity(T entity) {
-      foreach (ListViewItem listViewItem in entitiesListView.Items) {
-        if (((T)listViewItem.Tag) == entity)
-          yield return listViewItem;
-      }
-    }
-
-    #region ListView Events
-    protected virtual void entitiesListView_SelectedIndexChanged(object sender, EventArgs e) {
-      removeButton.Enabled = (Content != null) && !Content.IsReadOnly && !ReadOnly && entitiesListView.SelectedItems.Count > 0;
-      AdjustListViewColumnSizes();
-      if (showDetailsCheckBox.Checked) {
-        if (entitiesListView.SelectedItems.Count == 1) {
-          T entity = (T)entitiesListView.SelectedItems[0].Tag;
-          detailsGroupBox.Enabled = true;
-          viewHost.Content = entity;
-        } else {
-          viewHost.Content = null;
-          detailsGroupBox.Enabled = false;
-        }
-      }
-    }
-    protected virtual void entitiesListView_KeyDown(object sender, KeyEventArgs e) {
-      if (e.KeyCode == Keys.Delete) {
-        if ((entitiesListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
-          foreach (ListViewItem item in entitiesListView.SelectedItems)
-            Content.Remove((T)item.Tag);
-        }
-      }
-    }
-    protected virtual void entitiesListView_DoubleClick(object sender, EventArgs e) {
-      if (entitiesListView.SelectedItems.Count == 1) {
-        T entity = (T)entitiesListView.SelectedItems[0].Tag;
-        IContentView view = MainFormManager.MainForm.ShowContent(entity);
-        if (view != null) {
-          view.ReadOnly = ReadOnly;
-          view.Locked = Locked;
-        }
-      }
-    }
-    protected virtual void entitiesListView_ItemDrag(object sender, ItemDragEventArgs e) {
-      if (!Locked) {
-        ListViewItem listViewItem = (ListViewItem)e.Item;
-        T entity = (T)listViewItem.Tag;
-        DataObject data = new DataObject();
-        data.SetData("Type", entity.GetType());
-        data.SetData("Value", entity);
-        if (Content.IsReadOnly || ReadOnly) {
-          DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
-        } else {
-          DragDropEffects result = DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link | DragDropEffects.Move);
-          if ((result & DragDropEffects.Move) == DragDropEffects.Move)
-            Content.Remove(entity);
-        }
-      }
-    }
-    protected virtual void entitiesListView_DragEnterOver(object sender, DragEventArgs e) {
-      e.Effect = DragDropEffects.None;
-      Type type = e.Data.GetData("Type") as Type;
-      if (!Content.IsReadOnly && !ReadOnly && (type != null) && (typeof(T).IsAssignableFrom(type))) {
-        if ((e.KeyState & 32) == 32) e.Effect = DragDropEffects.Link;  // ALT key
-        else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
-        else if ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy) e.Effect = DragDropEffects.Copy;
-        else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move) e.Effect = DragDropEffects.Move;
-        else if ((e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link) e.Effect = DragDropEffects.Link;
-      }
-    }
-    protected virtual void entitiesListView_DragDrop(object sender, DragEventArgs e) {
-      if (e.Effect != DragDropEffects.None) {
-        T entity = e.Data.GetData("Value") as T;
-//TODO        if ((e.Effect & DragDropEffects.Copy) == DragDropEffects.Copy) entity = (T)entity.Clone();
-        Content.Add(entity);
-      }
-    }
-    #endregion
-
-    #region Button Events
-    protected virtual void addButton_Click(object sender, EventArgs e) {
-      T entity = CreateEntity();
-      if (entity != null)
-        Content.Add(entity);
-    }
-    protected virtual void sortAscendingButton_Click(object sender, EventArgs e) {
-      SortItemsListView(SortOrder.Ascending);
-    }
-    protected virtual void sortDescendingButton_Click(object sender, EventArgs e) {
-      SortItemsListView(SortOrder.Descending);
-    }
-    protected virtual void removeButton_Click(object sender, EventArgs e) {
-      if (entitiesListView.SelectedItems.Count > 0) {
-        foreach (ListViewItem item in entitiesListView.SelectedItems)
-          Content.Remove((T)item.Tag);
-        entitiesListView.SelectedItems.Clear();
-      }
-    }
-    #endregion
-
-    #region CheckBox Events
-    protected virtual void showDetailsCheckBox_CheckedChanged(object sender, EventArgs e) {
-      if (showDetailsCheckBox.Checked) {
-        splitContainer.Panel2Collapsed = false;
-        detailsGroupBox.Enabled = entitiesListView.SelectedItems.Count == 1;
-        viewHost.Content = entitiesListView.SelectedItems.Count == 1 ? (T)entitiesListView.SelectedItems[0].Tag : null;
-      } else {
-        splitContainer.Panel2Collapsed = true;
-        viewHost.Content = null;
-      }
-    }
-    #endregion
-
-    #region Content Events
-    protected virtual void Content_ItemsAdded(object sender, CollectionItemsChangedEventArgs<T> e) {
-      if (InvokeRequired)
-        Invoke(new CollectionItemsChangedEventHandler<T>(Content_ItemsAdded), sender, e);
-      else {
-        foreach (T item in e.Items)
-          AddListViewItem(CreateListViewItem(item));
-        AdjustListViewColumnSizes();
-      }
-
-    }
-    protected virtual void Content_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<T> e) {
-      if (InvokeRequired)
-        Invoke(new CollectionItemsChangedEventHandler<T>(Content_ItemsRemoved), sender, e);
-      else {
-        foreach (T item in e.Items) {
-          // remove only the first matching ListViewItem, because the IEntity could be contained multiple times in the EntityCollection
-          ListViewItem listviewItem = GetListViewItemsForEntity(item).FirstOrDefault();
-          if (listviewItem != null) RemoveListViewItem(listviewItem);
-        }
-      }
-    }
-    protected virtual void Content_CollectionReset(object sender, CollectionItemsChangedEventArgs<T> e) {
-      if (InvokeRequired)
-        Invoke(new CollectionItemsChangedEventHandler<T>(Content_CollectionReset), sender, e);
-      else {
-        foreach (T item in e.OldItems) {
-          // remove only the first matching ListViewItem, because the IEntity could be contained multiple times in the EntityCollection
-          ListViewItem listviewItem = GetListViewItemsForEntity(item).FirstOrDefault();
-          if (listviewItem != null) RemoveListViewItem(listviewItem);
-        }
-        foreach (T item in e.Items)
-          AddListViewItem(CreateListViewItem(item));
-      }
-    }
-    #endregion
-
-    #region Entity Events
-    protected virtual void Entity_EntityImageChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Entity_EntityImageChanged), sender, e);
-      else {
-        T item = (T)sender;
-        foreach (ListViewItem listViewItem in GetListViewItemsForEntity(item))
-          UpdateListViewItemImage(listViewItem);
-      }
-    }
-    protected virtual void Entity_ToStringChanged(object sender, EventArgs e) {
-      if (InvokeRequired)
-        Invoke(new EventHandler(Entity_ToStringChanged), sender, e);
-      else {
-        T item = (T)sender;
-        foreach (ListViewItem listViewItem in GetListViewItemsForEntity(item))
-          UpdateListViewItemText(listViewItem);
-      }
-    }
-    #endregion
-
-    #region Helpers
-    protected virtual void SortItemsListView(SortOrder sortOrder) {
-      entitiesListView.Sorting = SortOrder.None;
-      entitiesListView.Sorting = sortOrder;
-      entitiesListView.Sorting = SortOrder.None;
-    }
-    protected virtual void AdjustListViewColumnSizes() {
-      if (entitiesListView.Items.Count > 0) {
-        for (int i = 0; i < entitiesListView.Columns.Count; i++)
-          entitiesListView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-      }
-    }
-    #endregion
-  }
-}
Index: anches/OKB/HeuristicLab.Clients.OKB-3.3/EntityView.Designer.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/EntityView.Designer.cs	(revision 4420)
+++ 	(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 EntityView {
-    /// <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: anches/OKB/HeuristicLab.Clients.OKB-3.3/EntityView.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/EntityView.cs	(revision 4420)
+++ 	(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 HeuristicLab.Clients.OKB.AdminService;
-using HeuristicLab.MainForm.WindowsForms;
-
-namespace HeuristicLab.Clients.OKB {
-  public partial class EntityView : AsynchronousContentView {
-    public new IEntity Content {
-      get { return (IEntity)base.Content; }
-      set { base.Content = value; }
-    }
-
-    public EntityView() {
-      InitializeComponent();
-    }
-  }
-}
Index: /branches/OKB/HeuristicLab.Clients.OKB-3.3/Extensions.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/Extensions.cs	(revision 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/Extensions.cs	(revision 4421)
@@ -20,56 +20,17 @@
 #endregion
 
-using System;
 using System.ComponentModel;
-using System.Drawing;
-using HeuristicLab.Collections;
-using HeuristicLab.Common;
+using HeuristicLab.Core;
 
-namespace HeuristicLab.Clients.OKB.AdminService {
-  public interface IEntity : IContent, INotifyPropertyChanged {
-    Image EntityImage { get; }
-
-    event EventHandler EntityImageChanged;
-    event EventHandler ToStringChanged;
-  }
-
-  public interface INamedEntity : IEntity {
+namespace HeuristicLab.Clients.OKB {
+  public interface INamedEntity : IItem, INotifyPropertyChanged {
     string Name { get; set; }
     string Description { get; set; }
   }
 
-  public interface IEntityCollection<T> : IObservableCollection<T>, IEntity where T : class, IEntity { }
-
-  public partial class AlgorithmClass : INamedEntity {
-    public Image EntityImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
-    }
-
-    public event EventHandler EntityImageChanged;
-    protected virtual void OnEntityImageChanged() {
-      EventHandler handler = EntityImageChanged;
-      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);
-    }
+  [Item("AlgorithmClass", "An OKB algorithm class.")]
+  public sealed partial class AlgorithmClass : INamedEntity {
   }
   public partial class Algorithm : INamedEntity {
-    public Image EntityImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
-    }
-
-    public event EventHandler EntityImageChanged;
-    protected virtual void OnEntityImageChanged() {
-      EventHandler handler = EntityImageChanged;
-      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/GenerateServiceClients.cmd
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/GenerateServiceClients.cmd	(revision 4421)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/GenerateServiceClients.cmd	(revision 4421)
@@ -0,0 +1,11 @@
+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 ^
+  /mergeConfig ^
+  /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 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLab.Clients.OKB-3.3.csproj	(revision 4421)
@@ -45,4 +45,5 @@
     <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.2.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Core.Views-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.MainForm-3.3">
@@ -71,10 +72,4 @@
   <ItemGroup>
     <Compile Include="AdministrationMenuItem.cs" />
-    <Compile Include="AlgorithmCollectionView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="AlgorithmCollectionView.Designer.cs">
-      <DependentUpon>AlgorithmCollectionView.cs</DependentUpon>
-    </Compile>
     <Compile Include="Extensions.cs" />
     <Compile Include="HeuristicLabClientsOKBPlugin.cs" />
@@ -85,17 +80,4 @@
       <DependentUpon>AdministrationView.cs</DependentUpon>
     </Compile>
-    <Compile Include="EntityCollection.cs" />
-    <Compile Include="EntityCollectionView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="EntityCollectionView.Designer.cs">
-      <DependentUpon>EntityCollectionView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="EntityView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="EntityView.Designer.cs">
-      <DependentUpon>EntityView.cs</DependentUpon>
-    </Compile>
     <Compile Include="NamedEntityView.cs">
       <SubType>UserControl</SubType>
@@ -104,44 +86,9 @@
       <DependentUpon>NamedEntityView.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="ReadOnlyEntityCollection.cs" />
-    <Compile Include="Service References\AdminService\Reference.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Reference.svcmap</DependentUpon>
-    </Compile>
+    <Compile Include="ServiceClients.cs" />
     <None Include="app.config" />
+    <None Include="GenerateServiceClients.cmd" />
     <None Include="Properties\AssemblyInfo.frame" />
-    <None Include="Service References\AdminService\HeuristicLab.Clients.OKB.AdminService.Algorithm.datasource">
-      <DependentUpon>Reference.svcmap</DependentUpon>
-    </None>
-    <None Include="Service References\AdminService\HeuristicLab.Clients.OKB.AdminService.AlgorithmClass.datasource">
-      <DependentUpon>Reference.svcmap</DependentUpon>
-    </None>
-    <None Include="Service References\AdminService\HeuristicLab.Clients.OKB.AdminService.Platform.datasource">
-      <DependentUpon>Reference.svcmap</DependentUpon>
-    </None>
-    <None Include="Service References\AdminService\HeuristicLab.Clients.OKB.AdminService.Problem.datasource">
-      <DependentUpon>Reference.svcmap</DependentUpon>
-    </None>
-    <None Include="Service References\AdminService\HeuristicLab.Services.OKB.DataAccess.xsd">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="Service References\AdminService\service.wsdl" />
-    <None Include="Service References\AdminService\service.xsd">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="Service References\AdminService\service1.xsd">
-      <SubType>Designer</SubType>
-    </None>
-    <None Include="Service References\AdminService\System.Data.Linq.xsd">
-      <SubType>Designer</SubType>
-    </None>
     <None Include="UpdateLocalInstallation.cmd" />
   </ItemGroup>
@@ -151,25 +98,7 @@
   </ItemGroup>
   <ItemGroup>
-    <WCFMetadata Include="Service References\" />
-  </ItemGroup>
-  <ItemGroup>
     <EmbeddedResource Include="AdministrationView.resx">
       <DependentUpon>AdministrationView.cs</DependentUpon>
     </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <WCFMetadataStorage Include="Service References\AdminService\" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Service References\AdminService\configuration91.svcinfo" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Service References\AdminService\configuration.svcinfo" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Service References\AdminService\Reference.svcmap">
-      <Generator>WCF Proxy Generator</Generator>
-      <LastGenOutput>Reference.cs</LastGenOutput>
-    </None>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLabClientsOKBPlugin.cs.frame
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLabClientsOKBPlugin.cs.frame	(revision 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLabClientsOKBPlugin.cs.frame	(revision 4421)
@@ -32,4 +32,5 @@
   [PluginDependency("HeuristicLab.Common", "3.3")]
   [PluginDependency("HeuristicLab.Common.Resources", "3.3")]
+  [PluginDependency("HeuristicLab.Core", "3.3")]
   [PluginDependency("HeuristicLab.Core.Views", "3.3")]
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
Index: /branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.cs	(revision 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/NamedEntityView.cs	(revision 4421)
@@ -23,5 +23,4 @@
 using System.ComponentModel;
 using System.Windows.Forms;
-using HeuristicLab.Clients.OKB.AdminService;
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
@@ -31,5 +30,5 @@
   [View("NamedEntoty View")]
   [Content(typeof(INamedEntity), false)]
-  public partial class NamedEntityView : EntityView {
+  public partial class NamedEntityView : ItemView {
     public new INamedEntity Content {
       get { return (INamedEntity)base.Content; }
Index: anches/OKB/HeuristicLab.Clients.OKB-3.3/ReadOnlyEntityCollection.cs
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/ReadOnlyEntityCollection.cs	(revision 4420)
+++ 	(revision )
@@ -1,50 +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 HeuristicLab.Collections;
-
-namespace HeuristicLab.Clients.OKB.AdminService {
-  public class ReadOnlyEntityCollection<T> : ReadOnlyObservableCollection<T>, IEntityCollection<T> where T : class, IEntity {
-    public virtual Image EntityImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
-    }
-
-    public ReadOnlyEntityCollection() : base(new EntityCollection<T>()) { }
-    public ReadOnlyEntityCollection(IEntityCollection<T> collection) : base(collection) { }
-
-    public override string ToString() {
-      return GetType().Name;
-    }
-
-    public event EventHandler EntityImageChanged;
-    protected virtual void OnEntityImageChanged() {
-      EventHandler handler = EntityImageChanged;
-      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 4421)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients.cs	(revision 4421)
@@ -0,0 +1,5714 @@
+﻿//------------------------------------------------------------------------------
+// <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 {
+  using HeuristicLab.Core;
+
+
+  [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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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 : Item, 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/app.config
===================================================================
--- /branches/OKB/HeuristicLab.Clients.OKB-3.3/app.config	(revision 4420)
+++ /branches/OKB/HeuristicLab.Clients.OKB-3.3/app.config	(revision 4421)
@@ -1,8 +1,178 @@
-﻿<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
     <system.serviceModel>
         <bindings>
             <wsHttpBinding>
-                <binding name="WSHttpBinding_IAdminService" closeTimeout="00:01:00"
+                <binding name="WSHttpBinding_IAdminService1" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService2" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService3" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService4" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService5" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService6" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService7" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService8" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService9" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService10" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
+                    allowCookies="false">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
+                        enabled="false" />
+                    <security mode="Message">
+                        <transport clientCredentialType="Windows" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" negotiateServiceCredential="true"
+                            algorithmSuite="Default" />
+                    </security>
+                </binding>
+                <binding name="WSHttpBinding_IAdminService11" closeTimeout="00:01:00"
                     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                     bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
@@ -25,6 +195,84 @@
         <client>
             <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
-                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService"
-                contract="AdminService.IAdminService" name="WSHttpBinding_IAdminService">
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService1"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService1">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService2"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService2">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService3"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService3">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService4"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService4">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService5"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService5">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService6"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService6">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService7"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService7">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService8"
+                contract="HeuristicLab.Clients.OKB.Services.IAdminService"
+                name="WSHttpBinding_IAdminService8">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService9"
+                contract="IAdminService" name="WSHttpBinding_IAdminService9">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService10"
+                contract="HeuristicLab.Clients.OKB.IAdminService" name="WSHttpBinding_IAdminService10">
+                <identity>
+                    <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
+                </identity>
+            </endpoint>
+            <endpoint address="http://localhost:8732/Design_Time_Addresses/OKB-3.3/AdminService"
+                binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAdminService11"
+                contract="HeuristicLab.Clients.OKB.IAdminService" name="WSHttpBinding_IAdminService11">
                 <identity>
                     <certificate encodedValue="AwAAAAEAAAAUAAAAD/AlkYJw/OUhl6D/9w8mjJBh39kgAAAAAQAAAPIBAAAwggHuMIIBW6ADAgECAhAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQAwFDESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTEwMDgyMDIyMzIwOFoXDTM5MTIzMTIzNTk1OVowFDESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPkfCSLRX8/4F+Z4ys43yZ4MMzjB44cMakPz4Nri+mEB5n2z/0GFatCYzkI2f/nniWqVrBYjHkjsZy2EZioHu4wa99c1XEGJnFNDuNn6ESkfEyhyF4+OqKGnpK9HNrw7OWMuqn2oOh0iFd9fl6FTAm+Y0p3LP+38BuYzpCniqqdwIDAQABo0kwRzBFBgNVHQEEPjA8gBDvi8Rgio9v+mr58TiAvqF5oRYwFDESMBAGA1UEAxMJbG9jYWxob3N0ghAdEzTisaf2sEZxrqYZfYtCMAkGBSsOAwIdBQADgYEANdGlvHKeUptfNu9I0wgA5qjmVB+JDldOAkrfM0R+4IcVQ06y5K7P07uxQAV7+rhnDLgLyFJunUHgzbfjsjFy7vjwtoieXA5j0AYlm4AHR7dHt4HVgkIMYt8XOCqMw5jjFX91xJ89tC7mM9zYR48N9T5QSeMGo+f+JzybeLWxnNs=" />
